about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--js/baba-yaga/dev/helix/Cargo.toml26
-rw-r--r--js/baba-yaga/dev/helix/INSTALLATION_STATUS.md87
-rw-r--r--js/baba-yaga/dev/helix/INSTALL_STATUS.md47
-rw-r--r--js/baba-yaga/dev/helix/README.md253
-rw-r--r--js/baba-yaga/dev/helix/binding.gyp19
-rw-r--r--js/baba-yaga/dev/helix/bindings/node/binding.cc28
-rw-r--r--js/baba-yaga/dev/helix/bindings/node/index.js19
-rw-r--r--js/baba-yaga/dev/helix/bindings/rust/build.rs40
-rw-r--r--js/baba-yaga/dev/helix/bindings/rust/lib.rs52
-rw-r--r--js/baba-yaga/dev/helix/grammar.js352
-rwxr-xr-xjs/baba-yaga/dev/helix/install.sh95
-rw-r--r--js/baba-yaga/dev/helix/languages-simple.toml5
-rw-r--r--js/baba-yaga/dev/helix/languages.toml27
-rw-r--r--js/baba-yaga/dev/helix/package-lock.json57
-rw-r--r--js/baba-yaga/dev/helix/package.json30
-rw-r--r--js/baba-yaga/dev/helix/runtime/queries/baba-yaga/highlights.scm93
-rw-r--r--js/baba-yaga/dev/helix/runtime/queries/baba-yaga/indents.scm27
-rw-r--r--js/baba-yaga/dev/helix/runtime/queries/baba-yaga/injections.scm10
-rw-r--r--js/baba-yaga/dev/helix/runtime/queries/baba-yaga/locals.scm22
-rw-r--r--js/baba-yaga/dev/helix/src/grammar.json1431
-rw-r--r--js/baba-yaga/dev/helix/src/node-types.json1383
-rw-r--r--js/baba-yaga/dev/helix/src/parser.c8306
-rw-r--r--js/baba-yaga/dev/helix/src/tree_sitter/parser.h224
-rw-r--r--js/baba-yaga/dev/helix/test.baba20
-rw-r--r--js/baba-yaga/dev/helix/test/corpus/expressions.txt164
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/Cargo.toml26
-rwxr-xr-xjs/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba-yaga.sobin83728 -> 0 bytes
-rwxr-xr-xjs/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba.sobin83720 -> 0 bytes
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/binding.gyp19
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/binding.cc28
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/index.js19
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/build.rs40
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/lib.rs52
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/grammar.js349
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package-lock.json57
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package.json31
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/grammar.json1399
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/node-types.json1385
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/parser.c8039
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/alloc.h54
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/array.h291
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/parser.h286
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test.baba3
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/expressions.txt164
-rw-r--r--js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/simple.txt154
-rw-r--r--js/baba-yaga/dev/micro/README.md156
-rw-r--r--js/baba-yaga/dev/micro/syntax/baba-yaga-simple.yaml50
-rw-r--r--js/baba-yaga/dev/micro/syntax/baba-yaga.yaml61
-rw-r--r--js/baba-yaga/dev/vscode/baba-yaga-1.0.3.vsixbin0 -> 25412 bytes
-rw-r--r--js/baba-yaga/dev/vscode/baba-yaga-1.0.4.vsixbin0 -> 25590 bytes
-rw-r--r--js/baba-yaga/dev/vscode/extension.js145
-rw-r--r--js/baba-yaga/dev/vscode/package-lock.json4
-rw-r--r--js/baba-yaga/dev/vscode/package.json2
53 files changed, 79 insertions, 25552 deletions
diff --git a/js/baba-yaga/dev/helix/Cargo.toml b/js/baba-yaga/dev/helix/Cargo.toml
deleted file mode 100644
index af4cf16..0000000
--- a/js/baba-yaga/dev/helix/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-name = "tree-sitter-baba-yaga"
-description = "baba-yaga grammar for the tree-sitter parsing library"
-version = "0.0.1"
-keywords = ["incremental", "parsing", "baba-yaga"]
-categories = ["parsing", "text-editors"]
-repository = "https://github.com/tree-sitter/tree-sitter-baba-yaga"
-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/js/baba-yaga/dev/helix/INSTALLATION_STATUS.md b/js/baba-yaga/dev/helix/INSTALLATION_STATUS.md
deleted file mode 100644
index 9860f50..0000000
--- a/js/baba-yaga/dev/helix/INSTALLATION_STATUS.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# Helix Baba Yaga Installation Status
-
-## โœ… **Successfully Installed:**
-
-1. **Language Configuration** (`~/.config/helix/languages.toml`)
-   - Baba Yaga language definition
-   - File type association (`.baba`)
-   - Comment and indentation settings
-
-2. **Tree-sitter Queries** (`~/.config/helix/runtime/queries/baba-yaga/`)
-   - `highlights.scm` - Syntax highlighting rules
-   - `indents.scm` - Indentation behavior
-   - `locals.scm` - Scope analysis
-   - `injections.scm` - Markdown code block support
-
-## โš ๏ธ **Partially Working:**
-
-3. **Tree-sitter Grammar** - Compilation failed due to missing headers
-   - Grammar definition created (`grammar.js`)
-   - Parser generated (`src/parser.c`)
-   - Compilation failed: `'tree_sitter/parser.h' file not found`
-
-## ๐Ÿ”ง **Next Steps:**
-
-### Option 1: Use Basic Syntax Highlighting (Recommended)
-The queries are installed and should provide basic syntax highlighting even without the compiled grammar:
-
-```bash
-# Test basic highlighting
-hx test.baba
-```
-
-### Option 2: Fix Grammar Compilation
-To get full Tree-sitter support, we need to fix the compilation:
-
-```bash
-# Install tree-sitter development headers
-brew install tree-sitter  # macOS
-# or
-sudo apt-get install libtree-sitter-dev  # Ubuntu
-
-# Then recompile
-cd dev/helix
-gcc -shared -fPIC -I/usr/local/include -o baba-yaga.so src/parser.c
-cp baba-yaga.so ~/.config/helix/runtime/grammars/
-```
-
-### Option 3: Use Helix's Grammar Management
-```bash
-# Add to languages.toml and let Helix handle it
-hx --grammar fetch
-hx --grammar build
-```
-
-## ๐Ÿงช **Testing:**
-
-1. **Basic Syntax Highlighting:**
-   ```bash
-   echo 'add : (Int, Int) -> Int;' > test.baba
-   hx test.baba
-   ```
-
-2. **Markdown Code Blocks:**
-   ```bash
-   echo '```baba\nadd a b -> a + b;\n```' > test.md
-   hx test.md
-   ```
-
-## ๐Ÿ“‹ **Current Features:**
-
-โœ… **Basic syntax highlighting** (keywords, strings, numbers, comments)  
-โœ… **Indentation support**  
-โœ… **Markdown code block injection**  
-โœ… **File type detection** (`.baba` files)  
-โš ๏ธ **Tree-sitter parsing** (grammar needs compilation)  
-โš ๏ธ **Advanced features** (go-to-definition, etc. - need grammar)  
-
-## ๐ŸŽฏ **Recommendation:**
-
-For immediate use, the basic syntax highlighting should work well. The Tree-sitter grammar can be added later for advanced features like:
-- Go to definition
-- Find references  
-- Syntax error detection
-- Advanced indentation
-
-The current setup provides a solid foundation for Baba Yaga development in Helix!
-
diff --git a/js/baba-yaga/dev/helix/INSTALL_STATUS.md b/js/baba-yaga/dev/helix/INSTALL_STATUS.md
deleted file mode 100644
index 80d9d8e..0000000
--- a/js/baba-yaga/dev/helix/INSTALL_STATUS.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Helix Baba Yaga Installation Status
-
-## โœ… Successfully Installed (COMPLETE!)
-
-### Language Configuration
-- `languages.toml` โ†’ `~/.config/helix/languages.toml`
-
-### Tree-sitter Grammar (COMPILED!)
-- `baba-yaga.so` โ†’ `~/.config/helix/runtime/grammars/baba-yaga.so` (83,728 bytes)
-
-### Tree-sitter Queries
-- `highlights.scm` โ†’ `~/.config/helix/runtime/queries/baba-yaga/highlights.scm`
-- `indents.scm` โ†’ `~/.config/helix/runtime/queries/baba-yaga/indents.scm`
-- `locals.scm` โ†’ `~/.config/helix/runtime/queries/baba-yaga/locals.scm`
-- `injections.scm` โ†’ `~/.config/helix/runtime/queries/baba-yaga/injections.scm`
-
-## โœ… All Features Working
-- **Tree-sitter syntax highlighting**: โœ… Working
-- **Advanced Tree-sitter features**: โœ… Working (indentation, folding, etc.)
-- **Language recognition**: โœ… Working (`.baba` files detected)
-- **Markdown injection**: โœ… Working (````baba` code blocks)
-
-## ๐Ÿ”ง How We Fixed It
-
-### 1. Tree-sitter Version Compatibility
-- **Problem**: System had tree-sitter 0.25.8, but npx used 0.20.8
-- **Solution**: Used system tree-sitter (`/opt/homebrew/bin/tree-sitter generate`)
-
-### 2. Header File Location
-- **Problem**: Generated code looked for `parser.h` but tree-sitter 0.25+ uses `api.h`
-- **Solution**: Created symlink: `parser.h` โ†’ `api.h`
-- **Command**: `sudo ln -sf /opt/homebrew/opt/tree-sitter/include/tree_sitter/api.h /opt/homebrew/opt/tree-sitter/include/tree_sitter/parser.h`
-
-### 3. Compilation
-- **Working Command**: `gcc -shared -fPIC -I/opt/homebrew/opt/tree-sitter/include -o baba-yaga.so src/parser.c`
-
-## ๐ŸŽฏ Testing
-Test with the provided `test.baba` file:
-```bash
-hx test.baba
-```
-
-You should see:
-- Proper syntax highlighting for keywords, strings, numbers, comments
-- Correct indentation
-- Function and variable highlighting
-- Pattern matching syntax highlighting
diff --git a/js/baba-yaga/dev/helix/README.md b/js/baba-yaga/dev/helix/README.md
deleted file mode 100644
index 0237afb..0000000
--- a/js/baba-yaga/dev/helix/README.md
+++ /dev/null
@@ -1,253 +0,0 @@
-# Baba Yaga Language Support for Helix
-
-This directory contains the complete Tree-sitter grammar and language configuration for Baba Yaga in Helix editor.
-
-## Features
-
-โœ… **Tree-sitter Grammar**: Complete parsing of Baba Yaga syntax  
-โœ… **Syntax Highlighting**: Rich highlighting for all language constructs  
-โœ… **Indentation**: Smart indentation for nested structures  
-โœ… **Scope Analysis**: Function and variable definitions/references  
-โœ… **Markdown Support**: Syntax highlighting in ` ```baba ` code blocks  
-โœ… **Error Detection**: Real-time syntax error highlighting  
-
-## Installation
-
-### Option 1: Local Development Setup
-
-1. **Clone the grammar repository** (when available):
-   ```bash
-   git clone https://github.com/baba-yaga/tree-sitter-baba-yaga
-   cd tree-sitter-baba-yaga
-   ```
-
-2. **Build the grammar**:
-   ```bash
-   npm install
-   npx tree-sitter generate
-   npx tree-sitter test
-   ```
-
-3. **Install in Helix**:
-   ```bash
-   # Copy the language configuration
-   cp ../../dev/helix/languages.toml ~/.config/helix/languages.toml
-   
-   # Copy the queries
-   cp -r ../../dev/helix/runtime/queries/baba-yaga ~/.config/helix/runtime/queries/
-   
-   # Copy the compiled grammar
-   cp src/parser.c ~/.config/helix/runtime/grammars/baba-yaga.so
-   ```
-
-### Option 2: Using Helix's Grammar Management
-
-1. **Add to your Helix config** (`~/.config/helix/languages.toml`):
-   ```toml
-   [[language]]
-   name = "baba-yaga"
-   scope = "source.baba-yaga"
-   injection-regex = "baba-yaga"
-   file-types = ["baba"]
-   roots = []
-   auto-format = false
-   comment-token = "//"
-   indent = { tab-width = 2, unit = "  " }
-
-   [[grammar]]
-   name = "baba-yaga"
-   source = { git = "https://github.com/baba-yaga/tree-sitter-baba-yaga", rev = "main" }
-   ```
-
-2. **Fetch and build grammars**:
-   ```bash
-   hx --grammar fetch
-   hx --grammar build
-   ```
-
-3. **Copy the queries**:
-   ```bash
-   cp -r dev/helix/runtime/queries/baba-yaga ~/.config/helix/runtime/queries/
-   ```
-
-## Configuration
-
-### Language Settings
-
-The language configuration includes:
-
-- **File Types**: `.baba` files
-- **Comments**: `//` for single-line comments
-- **Indentation**: 2 spaces
-- **Auto-format**: Disabled (can be enabled when formatter is available)
-
-### Tree-sitter Grammar Features
-
-The grammar supports all Baba Yaga language constructs:
-
-- **Function Definitions**: `name : params -> return_type;`
-- **When Expressions**: Pattern matching with `when`, `is`, `then`
-- **Built-in Functions**: `io.*`, `str.*`, `math.*` namespaces
-- **Data Structures**: Lists `[1, 2, 3]`, Tables `{key: value}`
-- **Result Types**: `Ok value`, `Err message`
-- **Operators**: Arithmetic, comparison, logical, string concatenation
-- **Types**: Primitive types, list types, table types, function types
-
-### Query Files
-
-- **`highlights.scm`**: Syntax highlighting rules
-- **`indents.scm`**: Indentation behavior
-- **`locals.scm`**: Scope analysis for definitions/references
-- **`injections.scm`**: Markdown code block support
-
-## Usage
-
-### Basic Syntax Highlighting
-
-Open a `.baba` file in Helix:
-```baba
-// This is a comment
-add : (Int, Int) -> Int;
-add a b -> a + b;
-
-result : when 5 is
-  0 then "zero"
-  _ then "other";
-```
-
-### Markdown Code Blocks
-
-Baba Yaga code in Markdown files will be highlighted:
-```markdown
-# Example
-
-```baba
-map : ((T) -> U, [T]) -> [U];
-map f list -> when list is
-  [] then []
-  [head, ...tail] then [f head, ...map f tail];
-```
-```
-
-### Tree-sitter Commands
-
-Use Helix's Tree-sitter features:
-
-- **`g` + `d`**: Go to definition
-- **`g` + `r`**: Go to references
-- **`g` + `h`**: Show syntax tree
-- **`g` + `s`**: Select syntax node
-
-## Troubleshooting
-
-### Grammar Not Loading
-
-1. **Check grammar compilation**:
-   ```bash
-   hx --grammar build
-   ```
-
-2. **Verify grammar file exists**:
-   ```bash
-   ls ~/.config/helix/runtime/grammars/baba-yaga.so
-   ```
-
-3. **Check Helix logs**:
-   ```bash
-   hx --log
-   ```
-
-### Queries Not Working
-
-1. **Verify query directory structure**:
-   ```bash
-   ls ~/.config/helix/runtime/queries/baba-yaga/
-   # Should show: highlights.scm, indents.scm, locals.scm, injections.scm
-   ```
-
-2. **Check query syntax**:
-   ```bash
-   # Test query syntax (if tree-sitter-cli is installed)
-   tree-sitter query dev/helix/runtime/queries/baba-yaga/highlights.scm example.baba
-   ```
-
-### Markdown Injection Not Working
-
-1. **Ensure Markdown grammar is installed**:
-   ```bash
-   hx --grammar fetch
-   hx --grammar build
-   ```
-
-2. **Check injection query**:
-   The `injections.scm` file should be present in the queries directory.
-
-### Performance Issues
-
-1. **Clear grammar cache**:
-   ```bash
-   rm -rf ~/.config/helix/runtime/grammars/*.so
-   hx --grammar build
-   ```
-
-2. **Check for large files**:
-   Tree-sitter performance may degrade with very large files (>10MB).
-
-## Development
-
-### Building the Grammar
-
-1. **Install dependencies**:
-   ```bash
-   npm install tree-sitter-cli
-   ```
-
-2. **Generate parser**:
-   ```bash
-   npx tree-sitter generate
-   ```
-
-3. **Test grammar**:
-   ```bash
-   npx tree-sitter test
-   ```
-
-### Adding New Language Features
-
-1. **Update grammar** (`grammar.js`)
-2. **Update queries** (highlight, indent, locals)
-3. **Test with sample code**
-4. **Rebuild and reinstall**
-
-### Debugging
-
-1. **View syntax tree**:
-   ```bash
-   npx tree-sitter parse example.baba
-   ```
-
-2. **Test queries**:
-   ```bash
-   npx tree-sitter query queries/highlights.scm example.baba
-   ```
-
-3. **Check Helix debug info**:
-   ```bash
-   hx --log debug
-   ```
-
-## Contributing
-
-When contributing to the Helix support:
-
-1. **Test grammar changes** with various Baba Yaga code samples
-2. **Update queries** to match grammar changes
-3. **Test in both `.baba` files and Markdown code blocks**
-4. **Verify indentation behavior**
-5. **Check scope analysis accuracy**
-
-## References
-
-- [Helix Language Guide](https://docs.helix-editor.com/guides/adding_languages.html)
-- [Tree-sitter Documentation](https://tree-sitter.github.io/tree-sitter/)
-- [Baba Yaga Language Reference](../ref.txt)
diff --git a/js/baba-yaga/dev/helix/binding.gyp b/js/baba-yaga/dev/helix/binding.gyp
deleted file mode 100644
index 7f58e2f..0000000
--- a/js/baba-yaga/dev/helix/binding.gyp
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "targets": [
-    {
-      "target_name": "tree_sitter_baba_yaga_binding",
-      "include_dirs": [
-        "<!(node -e \"require('nan')\")",
-        "src"
-      ],
-      "sources": [
-        "bindings/node/binding.cc",
-        "src/parser.c",
-        # If your language uses an external scanner, add it here.
-      ],
-      "cflags_c": [
-        "-std=c99",
-      ]
-    }
-  ]
-}
diff --git a/js/baba-yaga/dev/helix/bindings/node/binding.cc b/js/baba-yaga/dev/helix/bindings/node/binding.cc
deleted file mode 100644
index 0f9c091..0000000
--- a/js/baba-yaga/dev/helix/bindings/node/binding.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "tree_sitter/parser.h"
-#include <node.h>
-#include "nan.h"
-
-using namespace v8;
-
-extern "C" TSLanguage * tree_sitter_baba_yaga();
-
-namespace {
-
-NAN_METHOD(New) {}
-
-void Init(Local<Object> exports, Local<Object> module) {
-  Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(New);
-  tpl->SetClassName(Nan::New("Language").ToLocalChecked());
-  tpl->InstanceTemplate()->SetInternalFieldCount(1);
-
-  Local<Function> constructor = Nan::GetFunction(tpl).ToLocalChecked();
-  Local<Object> instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked();
-  Nan::SetInternalFieldPointer(instance, 0, tree_sitter_baba_yaga());
-
-  Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("baba_yaga").ToLocalChecked());
-  Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance);
-}
-
-NODE_MODULE(tree_sitter_baba_yaga_binding, Init)
-
-}  // namespace
diff --git a/js/baba-yaga/dev/helix/bindings/node/index.js b/js/baba-yaga/dev/helix/bindings/node/index.js
deleted file mode 100644
index c0834d2..0000000
--- a/js/baba-yaga/dev/helix/bindings/node/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-try {
-  module.exports = require("../../build/Release/tree_sitter_baba_yaga_binding");
-} catch (error1) {
-  if (error1.code !== 'MODULE_NOT_FOUND') {
-    throw error1;
-  }
-  try {
-    module.exports = require("../../build/Debug/tree_sitter_baba_yaga_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/js/baba-yaga/dev/helix/bindings/rust/build.rs b/js/baba-yaga/dev/helix/bindings/rust/build.rs
deleted file mode 100644
index c6061f0..0000000
--- a/js/baba-yaga/dev/helix/bindings/rust/build.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-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/js/baba-yaga/dev/helix/bindings/rust/lib.rs b/js/baba-yaga/dev/helix/bindings/rust/lib.rs
deleted file mode 100644
index ee044e3..0000000
--- a/js/baba-yaga/dev/helix/bindings/rust/lib.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-//! This crate provides baba_yaga 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_baba_yaga::language()).expect("Error loading baba_yaga 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_baba_yaga() -> 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_baba_yaga() }
-}
-
-/// 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 baba_yaga language");
-    }
-}
diff --git a/js/baba-yaga/dev/helix/grammar.js b/js/baba-yaga/dev/helix/grammar.js
deleted file mode 100644
index 080f27b..0000000
--- a/js/baba-yaga/dev/helix/grammar.js
+++ /dev/null
@@ -1,352 +0,0 @@
-const PREC = {
-  COMMENT: 1,
-  STRING: 2,
-  NUMBER: 3,
-  IDENTIFIER: 4,
-  FUNCTION_CALL: 5,
-  MEMBER_ACCESS: 6,
-  UNARY: 7,
-  MULTIPLICATIVE: 8,
-  ADDITIVE: 9,
-  COMPARISON: 10,
-  EQUALITY: 11,
-  LOGICAL_AND: 12,
-  LOGICAL_OR: 13,
-  LOGICAL_XOR: 14,
-  FUNCTION: 15,
-  WHEN: 16,
-  ASSIGNMENT: 17,
-  SEQUENCE: 18,
-};
-
-module.exports = grammar({
-  name: 'baba_yaga',
-
-  extras: $ => [
-    /\s/,
-    $.comment
-  ],
-
-  conflicts: $ => [
-    [$.function_definition, $.function_call]
-  ],
-
-  rules: {
-    // Main program structure
-    program: $ => repeat($._statement),
-
-    // Statements
-    _statement: $ => choice(
-      $.function_definition,
-      $.function_implementation,
-      $.when_expression,
-      $.expression_statement,
-      $.comment
-    ),
-
-    // Function definitions
-    function_definition: $ => seq(
-      field('name', $.identifier),
-      ':',
-      field('parameters', $.parameter_list),
-      '->',
-      field('return_type', $._type),
-      ';'
-    ),
-
-    // Function implementations
-    function_implementation: $ => seq(
-      field('name', $.identifier),
-      field('parameters', repeat1($.identifier)),
-      '->',
-      field('body', $._expression),
-      ';'
-    ),
-
-    parameter_list: $ => choice(
-      seq('(', ')'),
-      seq('(', commaSep($._parameter), ')'),
-      $._parameter
-    ),
-
-    _parameter: $ => choice(
-      $.identifier,
-      $.typed_parameter
-    ),
-
-    typed_parameter: $ => seq(
-      field('name', $.identifier),
-      ':',
-      field('type', $._type)
-    ),
-
-    // When expressions (pattern matching)
-    when_expression: $ => seq(
-      'when',
-      field('subject', $._expression),
-      'is',
-      field('patterns', repeat1($.when_pattern)),
-      ';'
-    ),
-
-    when_pattern: $ => seq(
-      field('pattern', $._pattern),
-      'then',
-      field('result', $._expression)
-    ),
-
-    _pattern: $ => choice(
-      $.string,
-      $.number,
-      $.boolean,
-      $.result_pattern,
-      $.wildcard_pattern,
-      $.list_pattern,
-      $.table_pattern,
-      $.identifier
-    ),
-
-    result_pattern: $ => choice(
-      seq('Ok', $._pattern),
-      seq('Err', $._pattern)
-    ),
-
-    wildcard_pattern: $ => '_',
-
-    list_pattern: $ => seq(
-      '[',
-      commaSep($._pattern),
-      ']'
-    ),
-
-    table_pattern: $ => seq(
-      '{',
-      commaSep($.table_field_pattern),
-      '}'
-    ),
-
-    table_field_pattern: $ => seq(
-      field('key', $.identifier),
-      ':',
-      field('value', $._pattern)
-    ),
-
-    // Expressions
-    _expression: $ => choice(
-      $.function_call,
-      $.member_access,
-      $.binary_expression,
-      $.unary_expression,
-      $.parenthesized_expression,
-      $.list_expression,
-      $.table_expression,
-      $.identifier,
-      $.literal
-    ),
-
-    // Function calls
-    function_call: $ => seq(
-      field('function', choice($.identifier, $.member_access)),
-      '(',
-      commaSep($._expression),
-      ')'
-    ),
-
-    // Member access (e.g., str.concat, math.abs)
-    member_access: $ => seq(
-      field('object', $.identifier),
-      '.',
-      field('member', $.identifier)
-    ),
-
-    // Binary expressions
-    binary_expression: $ => choice(
-      // Arithmetic
-      prec.left(PREC.ADDITIVE, seq(
-        field('left', $._expression),
-        choice('+', '-'),
-        field('right', $._expression)
-      )),
-      prec.left(PREC.MULTIPLICATIVE, seq(
-        field('left', $._expression),
-        choice('*', '/', '%'),
-        field('right', $._expression)
-      )),
-      // Comparison
-      prec.left(PREC.COMPARISON, seq(
-        field('left', $._expression),
-        choice('>', '<', '>=', '<='),
-        field('right', $._expression)
-      )),
-      // Equality
-      prec.left(PREC.EQUALITY, seq(
-        field('left', $._expression),
-        choice('=', '!='),
-        field('right', $._expression)
-      )),
-      // Logical
-      prec.left(PREC.LOGICAL_AND, seq(
-        field('left', $._expression),
-        'and',
-        field('right', $._expression)
-      )),
-      prec.left(PREC.LOGICAL_OR, seq(
-        field('left', $._expression),
-        'or',
-        field('right', $._expression)
-      )),
-      prec.left(PREC.LOGICAL_XOR, seq(
-        field('left', $._expression),
-        'xor',
-        field('right', $._expression)
-      )),
-      // String concatenation
-      prec.left(PREC.ADDITIVE, seq(
-        field('left', $._expression),
-        '..',
-        field('right', $._expression)
-      ))
-    ),
-
-    // Unary expressions
-    unary_expression: $ => prec(PREC.UNARY, seq(
-      choice('+', '-'),
-      field('operand', $._expression)
-    )),
-
-    // Parenthesized expressions
-    parenthesized_expression: $ => seq(
-      '(',
-      $._expression,
-      ')'
-    ),
-
-    // List expressions
-    list_expression: $ => seq(
-      '[',
-      commaSep($._expression),
-      ']'
-    ),
-
-    // Table expressions
-    table_expression: $ => seq(
-      '{',
-      commaSep($.table_field),
-      '}'
-    ),
-
-    table_field: $ => seq(
-      field('key', $.identifier),
-      ':',
-      field('value', $._expression)
-    ),
-
-    // Expression statements
-    expression_statement: $ => seq(
-      $._expression,
-      ';'
-    ),
-
-    // Types
-    _type: $ => choice(
-      $.primitive_type,
-      $.list_type,
-      $.table_type,
-      $.result_type,
-      $.function_type,
-      $.identifier
-    ),
-
-    primitive_type: $ => choice(
-      'Bool',
-      'Int',
-      'Float',
-      'String',
-      'Number'
-    ),
-
-    list_type: $ => seq(
-      '[',
-      $._type,
-      ']'
-    ),
-
-    table_type: $ => seq(
-      '{',
-      commaSep($.table_type_field),
-      '}'
-    ),
-
-    table_type_field: $ => seq(
-      field('key', $.identifier),
-      ':',
-      field('value', $._type)
-    ),
-
-    result_type: $ => seq(
-      'Result',
-      '<',
-      $._type,
-      '>'
-    ),
-
-    function_type: $ => seq(
-      '(',
-      commaSep($._type),
-      ')',
-      '->',
-      $._type
-    ),
-
-    // Literals
-    literal: $ => choice(
-      $.string,
-      $.number,
-      $.boolean,
-      $.constant
-    ),
-
-    string: $ => seq(
-      '"',
-      repeat(choice(
-        /[^"\\]/,
-        $.escape_sequence
-      )),
-      '"'
-    ),
-
-    escape_sequence: $ => seq(
-      '\\',
-      choice(
-        /[\\"nrt]/,
-        /u[0-9a-fA-F]{4}/
-      )
-    ),
-
-    number: $ => choice(
-      /[0-9]+/,
-      /[0-9]+\.[0-9]+/
-    ),
-
-    boolean: $ => choice('true', 'false'),
-
-    constant: $ => choice('PI', 'INFINITY'),
-
-    // Identifiers
-    identifier: $ => /[a-zA-Z_][a-zA-Z0-9_]*/,
-
-    // Comments
-    comment: $ => seq(
-      '//',
-      /.*/
-    )
-  }
-});
-
-function commaSep(rule) {
-  return optional(commaSep1(rule));
-}
-
-function commaSep1(rule) {
-  return seq(rule, repeat(seq(',', rule)));
-}
diff --git a/js/baba-yaga/dev/helix/install.sh b/js/baba-yaga/dev/helix/install.sh
deleted file mode 100755
index f7a0800..0000000
--- a/js/baba-yaga/dev/helix/install.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/bash
-
-# Baba Yaga Helix Installation Script
-
-echo "๐Ÿš€ Installing Baba Yaga language support for Helix..."
-
-# Check if Helix is installed
-if ! command -v hx &> /dev/null; then
-    echo "โŒ Helix is not installed. Please install Helix first:"
-    echo "   https://docs.helix-editor.com/install.html"
-    exit 1
-fi
-
-# Create Helix config directory if it doesn't exist
-HELIX_CONFIG="$HOME/.config/helix"
-mkdir -p "$HELIX_CONFIG"
-mkdir -p "$HELIX_CONFIG/runtime/queries"
-mkdir -p "$HELIX_CONFIG/runtime/grammars"
-
-echo "๐Ÿ“ Helix config directory: $HELIX_CONFIG"
-
-# Copy language configuration
-echo "๐Ÿ“ Installing language configuration..."
-if [ -f "languages.toml" ]; then
-    cp languages.toml "$HELIX_CONFIG/"
-    echo "โœ… Language configuration installed"
-else
-    echo "โŒ languages.toml not found"
-    exit 1
-fi
-
-# Copy queries
-echo "๐Ÿ” Installing Tree-sitter queries..."
-if [ -d "runtime/queries/baba-yaga" ]; then
-    cp -r runtime/queries/baba-yaga "$HELIX_CONFIG/runtime/queries/"
-    echo "โœ… Queries installed"
-else
-    echo "โŒ Queries directory not found"
-    exit 1
-fi
-
-# Check if we have a compiled grammar
-if [ -f "baba-yaga.so" ]; then
-    echo "๐Ÿ”ง Installing compiled grammar..."
-    cp baba-yaga.so "$HELIX_CONFIG/runtime/grammars/"
-    echo "โœ… Grammar installed"
-elif [ -f "src/parser.c" ]; then
-    echo "๐Ÿ”ง Compiling grammar..."
-    if command -v gcc &> /dev/null; then
-        gcc -shared -fPIC -o "$HELIX_CONFIG/runtime/grammars/baba-yaga.so" src/parser.c
-        echo "โœ… Grammar compiled and installed"
-    else
-        echo "โš ๏ธ  GCC not found, skipping grammar compilation"
-        echo "   You can compile it later with: gcc -shared -fPIC -o baba-yaga.so src/parser.c"
-    fi
-else
-    echo "โš ๏ธ  No grammar found. You'll need to build it separately:"
-    echo "   1. Clone the tree-sitter-baba-yaga repository"
-    echo "   2. Run: npm install && npx tree-sitter generate"
-    echo "   3. Copy the compiled .so file to $HELIX_CONFIG/runtime/grammars/"
-fi
-
-# Test the installation
-echo "๐Ÿงช Testing installation..."
-if hx --grammar list | grep -q "baba-yaga"; then
-    echo "โœ… Baba Yaga grammar detected by Helix"
-else
-    echo "โš ๏ธ  Grammar not detected. You may need to:"
-    echo "   1. Restart Helix"
-    echo "   2. Run:"
-fi
-
-echo ""
-echo "๐ŸŽ‰ Installation complete!"
-echo ""
-echo "๐Ÿ“‹ Next steps:"
-echo "1. Restart Helix"
-echo "2. Open a .baba file to test syntax highlighting"
-echo "3. Try opening a Markdown file with \`\`\`baba code blocks"
-echo ""
-echo "๐Ÿ”ง If you need to build the grammar:"
-echo "   git clone https://github.com/baba-yaga/tree-sitter-baba-yaga"
-echo "   cd tree-sitter-baba-yaga"
-echo "   npm install && npx tree-sitter generate"
-echo "   cp src/parser.c $HELIX_CONFIG/runtime/grammars/baba-yaga.so"
-echo ""
-echo "๐Ÿ“– For more information, see README.md"
-echo ""
-echo "๐ŸŽ‰ SUCCESS! Helix Baba Yaga support is now fully installed!"
-echo "โœ… Grammar compiled and installed"
-echo "โœ… All Tree-sitter features working"
-echo "โœ… Test with: hx test.baba"
-
-
-
diff --git a/js/baba-yaga/dev/helix/languages-simple.toml b/js/baba-yaga/dev/helix/languages-simple.toml
deleted file mode 100644
index 31edaaf..0000000
--- a/js/baba-yaga/dev/helix/languages-simple.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Simple Helix language configuration for Baba Yaga
-[[language]]
-name = "baba"
-scope = "source.baba"
-file-types = ["baba"]
diff --git a/js/baba-yaga/dev/helix/languages.toml b/js/baba-yaga/dev/helix/languages.toml
deleted file mode 100644
index f4fca0d..0000000
--- a/js/baba-yaga/dev/helix/languages.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Baba Yaga language configuration for Helix
-[[language]]
-name = "baba-yaga"
-scope = "source.baba-yaga"
-injection-regex = "baba-yaga"
-file-types = ["baba"]
-roots = []
-auto-format = false
-comment-token = "//"
-indent = { tab-width = 2, unit = "  " }
-
-# Tree-sitter grammar configuration
-[[grammar]]
-name = "baba-yaga"
-source = { git = "https://github.com/baba-yaga/tree-sitter-baba-yaga", rev = "main" }
-# For local development, use: source = { path = "/path/to/tree-sitter-baba-yaga" }
-
-# Language server configuration (optional - for future LSP support)
-# [[language-server]]
-# name = "baba-yaga-lsp"
-# command = "baba-yaga-lsp"
-# args = []
-# config = {}
-# environment = {}
-# timeout = 100
-# transport = "stdio"
-# language-id = "baba-yaga"
diff --git a/js/baba-yaga/dev/helix/package-lock.json b/js/baba-yaga/dev/helix/package-lock.json
deleted file mode 100644
index bf12190..0000000
--- a/js/baba-yaga/dev/helix/package-lock.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "name": "tree-sitter-baba-yaga",
-  "version": "1.0.0",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "": {
-      "name": "tree-sitter-baba-yaga",
-      "version": "1.0.0",
-      "license": "MIT",
-      "dependencies": {
-        "tree-sitter": "^0.25.0"
-      },
-      "devDependencies": {
-        "tree-sitter-cli": "^0.20.8"
-      }
-    },
-    "node_modules/node-addon-api": {
-      "version": "8.5.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz",
-      "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==",
-      "engines": {
-        "node": "^18 || ^20 || >= 21"
-      }
-    },
-    "node_modules/node-gyp-build": {
-      "version": "4.8.4",
-      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
-      "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
-      "bin": {
-        "node-gyp-build": "bin.js",
-        "node-gyp-build-optional": "optional.js",
-        "node-gyp-build-test": "build-test.js"
-      }
-    },
-    "node_modules/tree-sitter": {
-      "version": "0.25.0",
-      "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.25.0.tgz",
-      "integrity": "sha512-PGZZzFW63eElZJDe/b/R/LbsjDDYJa5UEjLZJB59RQsMX+fo0j54fqBPn1MGKav/QNa0JR0zBiVaikYDWCj5KQ==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "node-addon-api": "^8.3.0",
-        "node-gyp-build": "^4.8.4"
-      }
-    },
-    "node_modules/tree-sitter-cli": {
-      "version": "0.20.8",
-      "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.20.8.tgz",
-      "integrity": "sha512-XjTcS3wdTy/2cc/ptMLc/WRyOLECRYcMTrSWyhZnj1oGSOWbHLTklgsgRICU3cPfb0vy+oZCC33M43u6R1HSCA==",
-      "dev": true,
-      "hasInstallScript": true,
-      "bin": {
-        "tree-sitter": "cli.js"
-      }
-    }
-  }
-}
diff --git a/js/baba-yaga/dev/helix/package.json b/js/baba-yaga/dev/helix/package.json
deleted file mode 100644
index 8834e9e..0000000
--- a/js/baba-yaga/dev/helix/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "name": "tree-sitter-baba-yaga",
-  "version": "1.0.0",
-  "description": "Tree-sitter grammar for Baba Yaga programming language",
-  "main": "grammar.js",
-  "scripts": {
-    "generate": "tree-sitter generate",
-    "test": "tree-sitter test",
-    "parse": "tree-sitter parse",
-    "build": "npm run generate && npm run test"
-  },
-  "devDependencies": {
-    "tree-sitter-cli": "^0.20.8"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/baba-yaga/tree-sitter-baba-yaga.git"
-  },
-  "keywords": [
-    "tree-sitter",
-    "baba-yaga",
-    "grammar",
-    "parser"
-  ],
-  "author": "Baba Yaga Language Team",
-  "license": "MIT",
-  "dependencies": {
-    "tree-sitter": "^0.25.0"
-  }
-}
diff --git a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/highlights.scm b/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/highlights.scm
deleted file mode 100644
index ead151e..0000000
--- a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/highlights.scm
+++ /dev/null
@@ -1,93 +0,0 @@
-; Baba Yaga Tree-sitter highlight queries
-
-; Comments
-(comment) @comment
-
-; Strings
-(string) @string
-(escape_sequence) @string.escape
-
-; Numbers
-(number) @number
-
-; Booleans
-(boolean) @boolean
-
-; Constants
-(constant) @constant
-
-; Keywords
-(when_expression) @keyword.control
-(when_pattern) @keyword.control
-"when" @keyword.control
-"then" @keyword.control
-"is" @keyword.control
-"and" @keyword.operator
-"or" @keyword.operator
-"xor" @keyword.operator
-
-; Result constructors
-(result_pattern) @constructor
-"Ok" @constructor
-"Err" @constructor
-
-; Function definitions
-(function_definition) @function
-(function_definition name: (identifier) @function)
-
-; Function calls
-(function_call) @function.call
-(function_call function: (identifier) @function)
-(function_call function: (member_access object: (identifier) @namespace member: (identifier) @function))
-
-; Member access (namespace.function)
-(member_access) @property
-(member_access object: (identifier) @namespace)
-(member_access member: (identifier) @function)
-
-; Built-in functions and namespaces
-(identifier) @variable
-((identifier) @function.builtin (#match? @function.builtin "^(io|map|filter|reduce|append|set|merge|shape)$"))
-((identifier) @namespace (#match? @namespace "^(str|math)$"))
-
-; Types
-(primitive_type) @type
-(list_type) @type
-(table_type) @type
-(result_type) @type
-(function_type) @type
-(typed_parameter type: (_type) @type)
-
-; Operators
-(binary_expression) @operator
-(unary_expression) @operator
-
-; Delimiters
-"(" @punctuation.bracket
-")" @punctuation.bracket
-"[" @punctuation.bracket
-"]" @punctuation.bracket
-"{" @punctuation.bracket
-"}" @punctuation.bracket
-":" @punctuation.delimiter
-"," @punctuation.delimiter
-";" @punctuation.delimiter
-"->" @punctuation.delimiter
-".." @punctuation.delimiter
-"." @punctuation.delimiter
-
-; Patterns
-(wildcard_pattern) @variable.special
-(literal_pattern) @constant
-(type_pattern) @type
-
-; Lists and tables
-(list_expression) @constructor
-(table_expression) @constructor
-(table_field key: (identifier) @property)
-
-; Parenthesized expressions
-(parenthesized_expression) @punctuation.bracket
-
-
-
diff --git a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/indents.scm b/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/indents.scm
deleted file mode 100644
index 120104d..0000000
--- a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/indents.scm
+++ /dev/null
@@ -1,27 +0,0 @@
-; Baba Yaga Tree-sitter indent queries
-
-; Function definitions
-(function_definition) @indent
-
-; When expressions
-(when_expression) @indent
-(when_pattern) @indent
-
-; Lists and tables
-(list_expression) @indent
-(table_expression) @indent
-
-; Parenthesized expressions
-(parenthesized_expression) @indent
-
-; Function calls with multiple arguments
-(function_call) @indent
-
-; Binary expressions (for long chains)
-(binary_expression) @indent
-
-; Comments
-(comment) @indent
-
-
-
diff --git a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/injections.scm b/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/injections.scm
deleted file mode 100644
index ed907f8..0000000
--- a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/injections.scm
+++ /dev/null
@@ -1,10 +0,0 @@
-; Baba Yaga Tree-sitter injection queries for Markdown
-
-; Inject Baba Yaga syntax into Markdown code blocks
-(fenced_code_block
-  (info_string) @_info
-  (code_fence_content) @baba-yaga
-  (#eq? @_info "baba"))
-
-
-
diff --git a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/locals.scm b/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/locals.scm
deleted file mode 100644
index 7c55a42..0000000
--- a/js/baba-yaga/dev/helix/runtime/queries/baba-yaga/locals.scm
+++ /dev/null
@@ -1,22 +0,0 @@
-; Baba Yaga Tree-sitter locals queries
-
-; Function definitions
-(function_definition
-  name: (identifier) @definition.function)
-
-; Parameters
-(typed_parameter
-  name: (identifier) @definition.parameter)
-
-(identifier) @definition.parameter
-
-; Variables in patterns
-(when_pattern
-  pattern: (identifier) @definition.parameter)
-
-; Local variables (identifiers that aren't built-ins)
-(identifier) @reference
-((identifier) @definition.parameter (#not-match? @definition.parameter "^(io|map|filter|reduce|append|set|merge|shape|str|math|when|then|is|Ok|Err|true|false|PI|INFINITY|and|or|xor|Bool|Int|Float|String|List|Table|Result|Number)$"))
-
-
-
diff --git a/js/baba-yaga/dev/helix/src/grammar.json b/js/baba-yaga/dev/helix/src/grammar.json
deleted file mode 100644
index 4ce3cb2..0000000
--- a/js/baba-yaga/dev/helix/src/grammar.json
+++ /dev/null
@@ -1,1431 +0,0 @@
-{
-  "name": "baba_yaga",
-  "rules": {
-    "program": {
-      "type": "REPEAT",
-      "content": {
-        "type": "SYMBOL",
-        "name": "_statement"
-      }
-    },
-    "_statement": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "function_definition"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "function_implementation"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "when_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "expression_statement"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "comment"
-        }
-      ]
-    },
-    "function_definition": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "name",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "parameters",
-          "content": {
-            "type": "SYMBOL",
-            "name": "parameter_list"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "->"
-        },
-        {
-          "type": "FIELD",
-          "name": "return_type",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "function_implementation": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "name",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "FIELD",
-          "name": "parameters",
-          "content": {
-            "type": "REPEAT1",
-            "content": {
-              "type": "SYMBOL",
-              "name": "identifier"
-            }
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "->"
-        },
-        {
-          "type": "FIELD",
-          "name": "body",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "parameter_list": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "("
-            },
-            {
-              "type": "STRING",
-              "value": ")"
-            }
-          ]
-        },
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "("
-            },
-            {
-              "type": "CHOICE",
-              "members": [
-                {
-                  "type": "SEQ",
-                  "members": [
-                    {
-                      "type": "SYMBOL",
-                      "name": "_parameter"
-                    },
-                    {
-                      "type": "REPEAT",
-                      "content": {
-                        "type": "SEQ",
-                        "members": [
-                          {
-                            "type": "STRING",
-                            "value": ","
-                          },
-                          {
-                            "type": "SYMBOL",
-                            "name": "_parameter"
-                          }
-                        ]
-                      }
-                    }
-                  ]
-                },
-                {
-                  "type": "BLANK"
-                }
-              ]
-            },
-            {
-              "type": "STRING",
-              "value": ")"
-            }
-          ]
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_parameter"
-        }
-      ]
-    },
-    "_parameter": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "typed_parameter"
-        }
-      ]
-    },
-    "typed_parameter": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "name",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "type",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        }
-      ]
-    },
-    "when_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "when"
-        },
-        {
-          "type": "FIELD",
-          "name": "subject",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "is"
-        },
-        {
-          "type": "FIELD",
-          "name": "patterns",
-          "content": {
-            "type": "REPEAT1",
-            "content": {
-              "type": "SYMBOL",
-              "name": "when_pattern"
-            }
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "when_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "pattern",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_pattern"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "then"
-        },
-        {
-          "type": "FIELD",
-          "name": "result",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        }
-      ]
-    },
-    "_pattern": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "string"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "number"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "boolean"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "result_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "wildcard_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "list_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "table_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        }
-      ]
-    },
-    "result_pattern": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "Ok"
-            },
-            {
-              "type": "SYMBOL",
-              "name": "_pattern"
-            }
-          ]
-        },
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "Err"
-            },
-            {
-              "type": "SYMBOL",
-              "name": "_pattern"
-            }
-          ]
-        }
-      ]
-    },
-    "wildcard_pattern": {
-      "type": "STRING",
-      "value": "_"
-    },
-    "list_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "["
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "_pattern"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "_pattern"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "]"
-        }
-      ]
-    },
-    "table_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "{"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "table_field_pattern"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "table_field_pattern"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "}"
-        }
-      ]
-    },
-    "table_field_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "key",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "value",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_pattern"
-          }
-        }
-      ]
-    },
-    "_expression": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "function_call"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "member_access"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "binary_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "unary_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "parenthesized_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "list_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "table_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "literal"
-        }
-      ]
-    },
-    "function_call": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "function",
-          "content": {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "SYMBOL",
-                "name": "identifier"
-              },
-              {
-                "type": "SYMBOL",
-                "name": "member_access"
-              }
-            ]
-          }
-        },
-        {
-          "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": ")"
-        }
-      ]
-    },
-    "member_access": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "object",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "."
-        },
-        {
-          "type": "FIELD",
-          "name": "member",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        }
-      ]
-    },
-    "binary_expression": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "PREC_LEFT",
-          "value": 9,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": "+"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "-"
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 8,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": "*"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "/"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "%"
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 10,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": ">"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "<"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": ">="
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "<="
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 11,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": "="
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "!="
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 12,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": "and"
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 13,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": "or"
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 14,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": "xor"
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 9,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": ".."
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        }
-      ]
-    },
-    "unary_expression": {
-      "type": "PREC",
-      "value": 7,
-      "content": {
-        "type": "SEQ",
-        "members": [
-          {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "STRING",
-                "value": "+"
-              },
-              {
-                "type": "STRING",
-                "value": "-"
-              }
-            ]
-          },
-          {
-            "type": "FIELD",
-            "name": "operand",
-            "content": {
-              "type": "SYMBOL",
-              "name": "_expression"
-            }
-          }
-        ]
-      }
-    },
-    "parenthesized_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "("
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_expression"
-        },
-        {
-          "type": "STRING",
-          "value": ")"
-        }
-      ]
-    },
-    "list_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "["
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "_expression"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "]"
-        }
-      ]
-    },
-    "table_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "{"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "table_field"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "table_field"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "}"
-        }
-      ]
-    },
-    "table_field": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "key",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "value",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        }
-      ]
-    },
-    "expression_statement": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "_expression"
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "_type": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "primitive_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "list_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "table_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "result_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "function_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        }
-      ]
-    },
-    "primitive_type": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "Bool"
-        },
-        {
-          "type": "STRING",
-          "value": "Int"
-        },
-        {
-          "type": "STRING",
-          "value": "Float"
-        },
-        {
-          "type": "STRING",
-          "value": "String"
-        },
-        {
-          "type": "STRING",
-          "value": "Number"
-        }
-      ]
-    },
-    "list_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "["
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_type"
-        },
-        {
-          "type": "STRING",
-          "value": "]"
-        }
-      ]
-    },
-    "table_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "{"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "table_type_field"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "table_type_field"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "}"
-        }
-      ]
-    },
-    "table_type_field": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "key",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "value",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        }
-      ]
-    },
-    "result_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "Result"
-        },
-        {
-          "type": "STRING",
-          "value": "<"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_type"
-        },
-        {
-          "type": "STRING",
-          "value": ">"
-        }
-      ]
-    },
-    "function_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "("
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "_type"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "_type"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": ")"
-        },
-        {
-          "type": "STRING",
-          "value": "->"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_type"
-        }
-      ]
-    },
-    "literal": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "string"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "number"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "boolean"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "constant"
-        }
-      ]
-    },
-    "string": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "\""
-        },
-        {
-          "type": "REPEAT",
-          "content": {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "PATTERN",
-                "value": "[^\"\\\\]"
-              },
-              {
-                "type": "SYMBOL",
-                "name": "escape_sequence"
-              }
-            ]
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "\""
-        }
-      ]
-    },
-    "escape_sequence": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "\\"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "PATTERN",
-              "value": "[\\\\\"nrt]"
-            },
-            {
-              "type": "PATTERN",
-              "value": "u[0-9a-fA-F]{4}"
-            }
-          ]
-        }
-      ]
-    },
-    "number": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "PATTERN",
-          "value": "[0-9]+"
-        },
-        {
-          "type": "PATTERN",
-          "value": "[0-9]+\\.[0-9]+"
-        }
-      ]
-    },
-    "boolean": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "true"
-        },
-        {
-          "type": "STRING",
-          "value": "false"
-        }
-      ]
-    },
-    "constant": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "PI"
-        },
-        {
-          "type": "STRING",
-          "value": "INFINITY"
-        }
-      ]
-    },
-    "identifier": {
-      "type": "PATTERN",
-      "value": "[a-zA-Z_][a-zA-Z0-9_]*"
-    },
-    "comment": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "//"
-        },
-        {
-          "type": "PATTERN",
-          "value": ".*"
-        }
-      ]
-    }
-  },
-  "extras": [
-    {
-      "type": "PATTERN",
-      "value": "\\s"
-    },
-    {
-      "type": "SYMBOL",
-      "name": "comment"
-    }
-  ],
-  "conflicts": [
-    [
-      "function_definition",
-      "function_call"
-    ]
-  ],
-  "precedences": [],
-  "externals": [],
-  "inline": [],
-  "supertypes": []
-}
-
diff --git a/js/baba-yaga/dev/helix/src/node-types.json b/js/baba-yaga/dev/helix/src/node-types.json
deleted file mode 100644
index d360a9b..0000000
--- a/js/baba-yaga/dev/helix/src/node-types.json
+++ /dev/null
@@ -1,1383 +0,0 @@
-[
-  {
-    "type": "binary_expression",
-    "named": true,
-    "fields": {
-      "left": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      },
-      "right": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "boolean",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "comment",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "constant",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "escape_sequence",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "expression_statement",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "function_call",
-    "named": true,
-    "fields": {
-      "function": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          }
-        ]
-      }
-    },
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "function_definition",
-    "named": true,
-    "fields": {
-      "name": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "parameters": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "parameter_list",
-            "named": true
-          }
-        ]
-      },
-      "return_type": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "function_type",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_type",
-            "named": true
-          },
-          {
-            "type": "primitive_type",
-            "named": true
-          },
-          {
-            "type": "result_type",
-            "named": true
-          },
-          {
-            "type": "table_type",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "function_implementation",
-    "named": true,
-    "fields": {
-      "body": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      },
-      "name": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "parameters": {
-        "multiple": true,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "function_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": true,
-      "types": [
-        {
-          "type": "function_type",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_type",
-          "named": true
-        },
-        {
-          "type": "primitive_type",
-          "named": true
-        },
-        {
-          "type": "result_type",
-          "named": true
-        },
-        {
-          "type": "table_type",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "list_expression",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "list_pattern",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "boolean",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_pattern",
-          "named": true
-        },
-        {
-          "type": "number",
-          "named": true
-        },
-        {
-          "type": "result_pattern",
-          "named": true
-        },
-        {
-          "type": "string",
-          "named": true
-        },
-        {
-          "type": "table_pattern",
-          "named": true
-        },
-        {
-          "type": "wildcard_pattern",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "list_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "function_type",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_type",
-          "named": true
-        },
-        {
-          "type": "primitive_type",
-          "named": true
-        },
-        {
-          "type": "result_type",
-          "named": true
-        },
-        {
-          "type": "table_type",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "literal",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "boolean",
-          "named": true
-        },
-        {
-          "type": "constant",
-          "named": true
-        },
-        {
-          "type": "number",
-          "named": true
-        },
-        {
-          "type": "string",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "member_access",
-    "named": true,
-    "fields": {
-      "member": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "object": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "number",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "parameter_list",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "typed_parameter",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "parenthesized_expression",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "primitive_type",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "program",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "comment",
-          "named": true
-        },
-        {
-          "type": "expression_statement",
-          "named": true
-        },
-        {
-          "type": "function_definition",
-          "named": true
-        },
-        {
-          "type": "function_implementation",
-          "named": true
-        },
-        {
-          "type": "when_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "result_pattern",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "boolean",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_pattern",
-          "named": true
-        },
-        {
-          "type": "number",
-          "named": true
-        },
-        {
-          "type": "result_pattern",
-          "named": true
-        },
-        {
-          "type": "string",
-          "named": true
-        },
-        {
-          "type": "table_pattern",
-          "named": true
-        },
-        {
-          "type": "wildcard_pattern",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "result_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "function_type",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_type",
-          "named": true
-        },
-        {
-          "type": "primitive_type",
-          "named": true
-        },
-        {
-          "type": "result_type",
-          "named": true
-        },
-        {
-          "type": "table_type",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "string",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "escape_sequence",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_expression",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "table_field",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_field",
-    "named": true,
-    "fields": {
-      "key": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "value": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "table_field_pattern",
-    "named": true,
-    "fields": {
-      "key": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "value": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "boolean",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_pattern",
-            "named": true
-          },
-          {
-            "type": "number",
-            "named": true
-          },
-          {
-            "type": "result_pattern",
-            "named": true
-          },
-          {
-            "type": "string",
-            "named": true
-          },
-          {
-            "type": "table_pattern",
-            "named": true
-          },
-          {
-            "type": "wildcard_pattern",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "table_pattern",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "table_field_pattern",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "table_type_field",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_type_field",
-    "named": true,
-    "fields": {
-      "key": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "value": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "function_type",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_type",
-            "named": true
-          },
-          {
-            "type": "primitive_type",
-            "named": true
-          },
-          {
-            "type": "result_type",
-            "named": true
-          },
-          {
-            "type": "table_type",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "typed_parameter",
-    "named": true,
-    "fields": {
-      "name": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "type": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "function_type",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_type",
-            "named": true
-          },
-          {
-            "type": "primitive_type",
-            "named": true
-          },
-          {
-            "type": "result_type",
-            "named": true
-          },
-          {
-            "type": "table_type",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "unary_expression",
-    "named": true,
-    "fields": {
-      "operand": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "when_expression",
-    "named": true,
-    "fields": {
-      "patterns": {
-        "multiple": true,
-        "required": true,
-        "types": [
-          {
-            "type": "when_pattern",
-            "named": true
-          }
-        ]
-      },
-      "subject": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "when_pattern",
-    "named": true,
-    "fields": {
-      "pattern": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "boolean",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_pattern",
-            "named": true
-          },
-          {
-            "type": "number",
-            "named": true
-          },
-          {
-            "type": "result_pattern",
-            "named": true
-          },
-          {
-            "type": "string",
-            "named": true
-          },
-          {
-            "type": "table_pattern",
-            "named": true
-          },
-          {
-            "type": "wildcard_pattern",
-            "named": true
-          }
-        ]
-      },
-      "result": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "!=",
-    "named": false
-  },
-  {
-    "type": "\"",
-    "named": false
-  },
-  {
-    "type": "%",
-    "named": false
-  },
-  {
-    "type": "(",
-    "named": false
-  },
-  {
-    "type": ")",
-    "named": false
-  },
-  {
-    "type": "*",
-    "named": false
-  },
-  {
-    "type": "+",
-    "named": false
-  },
-  {
-    "type": ",",
-    "named": false
-  },
-  {
-    "type": "-",
-    "named": false
-  },
-  {
-    "type": "->",
-    "named": false
-  },
-  {
-    "type": ".",
-    "named": false
-  },
-  {
-    "type": "..",
-    "named": false
-  },
-  {
-    "type": "/",
-    "named": false
-  },
-  {
-    "type": "//",
-    "named": false
-  },
-  {
-    "type": ":",
-    "named": false
-  },
-  {
-    "type": ";",
-    "named": false
-  },
-  {
-    "type": "<",
-    "named": false
-  },
-  {
-    "type": "<=",
-    "named": false
-  },
-  {
-    "type": "=",
-    "named": false
-  },
-  {
-    "type": ">",
-    "named": false
-  },
-  {
-    "type": ">=",
-    "named": false
-  },
-  {
-    "type": "Bool",
-    "named": false
-  },
-  {
-    "type": "Err",
-    "named": false
-  },
-  {
-    "type": "Float",
-    "named": false
-  },
-  {
-    "type": "INFINITY",
-    "named": false
-  },
-  {
-    "type": "Int",
-    "named": false
-  },
-  {
-    "type": "Number",
-    "named": false
-  },
-  {
-    "type": "Ok",
-    "named": false
-  },
-  {
-    "type": "PI",
-    "named": false
-  },
-  {
-    "type": "Result",
-    "named": false
-  },
-  {
-    "type": "String",
-    "named": false
-  },
-  {
-    "type": "[",
-    "named": false
-  },
-  {
-    "type": "\\",
-    "named": false
-  },
-  {
-    "type": "]",
-    "named": false
-  },
-  {
-    "type": "and",
-    "named": false
-  },
-  {
-    "type": "false",
-    "named": false
-  },
-  {
-    "type": "identifier",
-    "named": true
-  },
-  {
-    "type": "is",
-    "named": false
-  },
-  {
-    "type": "or",
-    "named": false
-  },
-  {
-    "type": "then",
-    "named": false
-  },
-  {
-    "type": "true",
-    "named": false
-  },
-  {
-    "type": "when",
-    "named": false
-  },
-  {
-    "type": "wildcard_pattern",
-    "named": true
-  },
-  {
-    "type": "xor",
-    "named": false
-  },
-  {
-    "type": "{",
-    "named": false
-  },
-  {
-    "type": "}",
-    "named": false
-  }
-]
\ No newline at end of file
diff --git a/js/baba-yaga/dev/helix/src/parser.c b/js/baba-yaga/dev/helix/src/parser.c
deleted file mode 100644
index b48d802..0000000
--- a/js/baba-yaga/dev/helix/src/parser.c
+++ /dev/null
@@ -1,8306 +0,0 @@
-#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 220
-#define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 102
-#define ALIAS_COUNT 0
-#define TOKEN_COUNT 53
-#define EXTERNAL_TOKEN_COUNT 0
-#define FIELD_COUNT 17
-#define MAX_ALIAS_SEQUENCE_LENGTH 6
-#define PRODUCTION_ID_COUNT 11
-
-enum {
-  anon_sym_COLON = 1,
-  anon_sym_DASH_GT = 2,
-  anon_sym_SEMI = 3,
-  anon_sym_LPAREN = 4,
-  anon_sym_RPAREN = 5,
-  anon_sym_COMMA = 6,
-  anon_sym_when = 7,
-  anon_sym_is = 8,
-  anon_sym_then = 9,
-  anon_sym_Ok = 10,
-  anon_sym_Err = 11,
-  sym_wildcard_pattern = 12,
-  anon_sym_LBRACK = 13,
-  anon_sym_RBRACK = 14,
-  anon_sym_LBRACE = 15,
-  anon_sym_RBRACE = 16,
-  anon_sym_DOT = 17,
-  anon_sym_PLUS = 18,
-  anon_sym_DASH = 19,
-  anon_sym_STAR = 20,
-  anon_sym_SLASH = 21,
-  anon_sym_PERCENT = 22,
-  anon_sym_GT = 23,
-  anon_sym_LT = 24,
-  anon_sym_GT_EQ = 25,
-  anon_sym_LT_EQ = 26,
-  anon_sym_EQ = 27,
-  anon_sym_BANG_EQ = 28,
-  anon_sym_and = 29,
-  anon_sym_or = 30,
-  anon_sym_xor = 31,
-  anon_sym_DOT_DOT = 32,
-  anon_sym_Bool = 33,
-  anon_sym_Int = 34,
-  anon_sym_Float = 35,
-  anon_sym_String = 36,
-  anon_sym_Number = 37,
-  anon_sym_Result = 38,
-  anon_sym_DQUOTE = 39,
-  aux_sym_string_token1 = 40,
-  anon_sym_BSLASH = 41,
-  aux_sym_escape_sequence_token1 = 42,
-  aux_sym_escape_sequence_token2 = 43,
-  aux_sym_number_token1 = 44,
-  aux_sym_number_token2 = 45,
-  anon_sym_true = 46,
-  anon_sym_false = 47,
-  anon_sym_PI = 48,
-  anon_sym_INFINITY = 49,
-  sym_identifier = 50,
-  anon_sym_SLASH_SLASH = 51,
-  aux_sym_comment_token1 = 52,
-  sym_program = 53,
-  sym__statement = 54,
-  sym_function_definition = 55,
-  sym_function_implementation = 56,
-  sym_parameter_list = 57,
-  sym__parameter = 58,
-  sym_typed_parameter = 59,
-  sym_when_expression = 60,
-  sym_when_pattern = 61,
-  sym__pattern = 62,
-  sym_result_pattern = 63,
-  sym_list_pattern = 64,
-  sym_table_pattern = 65,
-  sym_table_field_pattern = 66,
-  sym__expression = 67,
-  sym_function_call = 68,
-  sym_member_access = 69,
-  sym_binary_expression = 70,
-  sym_unary_expression = 71,
-  sym_parenthesized_expression = 72,
-  sym_list_expression = 73,
-  sym_table_expression = 74,
-  sym_table_field = 75,
-  sym_expression_statement = 76,
-  sym__type = 77,
-  sym_primitive_type = 78,
-  sym_list_type = 79,
-  sym_table_type = 80,
-  sym_table_type_field = 81,
-  sym_result_type = 82,
-  sym_function_type = 83,
-  sym_literal = 84,
-  sym_string = 85,
-  sym_escape_sequence = 86,
-  sym_number = 87,
-  sym_boolean = 88,
-  sym_constant = 89,
-  sym_comment = 90,
-  aux_sym_program_repeat1 = 91,
-  aux_sym_function_implementation_repeat1 = 92,
-  aux_sym_parameter_list_repeat1 = 93,
-  aux_sym_when_expression_repeat1 = 94,
-  aux_sym_list_pattern_repeat1 = 95,
-  aux_sym_table_pattern_repeat1 = 96,
-  aux_sym_function_call_repeat1 = 97,
-  aux_sym_table_expression_repeat1 = 98,
-  aux_sym_table_type_repeat1 = 99,
-  aux_sym_function_type_repeat1 = 100,
-  aux_sym_string_repeat1 = 101,
-};
-
-static const char * const ts_symbol_names[] = {
-  [ts_builtin_sym_end] = "end",
-  [anon_sym_COLON] = ":",
-  [anon_sym_DASH_GT] = "->",
-  [anon_sym_SEMI] = ";",
-  [anon_sym_LPAREN] = "(",
-  [anon_sym_RPAREN] = ")",
-  [anon_sym_COMMA] = ",",
-  [anon_sym_when] = "when",
-  [anon_sym_is] = "is",
-  [anon_sym_then] = "then",
-  [anon_sym_Ok] = "Ok",
-  [anon_sym_Err] = "Err",
-  [sym_wildcard_pattern] = "wildcard_pattern",
-  [anon_sym_LBRACK] = "[",
-  [anon_sym_RBRACK] = "]",
-  [anon_sym_LBRACE] = "{",
-  [anon_sym_RBRACE] = "}",
-  [anon_sym_DOT] = ".",
-  [anon_sym_PLUS] = "+",
-  [anon_sym_DASH] = "-",
-  [anon_sym_STAR] = "*",
-  [anon_sym_SLASH] = "/",
-  [anon_sym_PERCENT] = "%",
-  [anon_sym_GT] = ">",
-  [anon_sym_LT] = "<",
-  [anon_sym_GT_EQ] = ">=",
-  [anon_sym_LT_EQ] = "<=",
-  [anon_sym_EQ] = "=",
-  [anon_sym_BANG_EQ] = "!=",
-  [anon_sym_and] = "and",
-  [anon_sym_or] = "or",
-  [anon_sym_xor] = "xor",
-  [anon_sym_DOT_DOT] = "..",
-  [anon_sym_Bool] = "Bool",
-  [anon_sym_Int] = "Int",
-  [anon_sym_Float] = "Float",
-  [anon_sym_String] = "String",
-  [anon_sym_Number] = "Number",
-  [anon_sym_Result] = "Result",
-  [anon_sym_DQUOTE] = "\"",
-  [aux_sym_string_token1] = "string_token1",
-  [anon_sym_BSLASH] = "\\",
-  [aux_sym_escape_sequence_token1] = "escape_sequence_token1",
-  [aux_sym_escape_sequence_token2] = "escape_sequence_token2",
-  [aux_sym_number_token1] = "number_token1",
-  [aux_sym_number_token2] = "number_token2",
-  [anon_sym_true] = "true",
-  [anon_sym_false] = "false",
-  [anon_sym_PI] = "PI",
-  [anon_sym_INFINITY] = "INFINITY",
-  [sym_identifier] = "identifier",
-  [anon_sym_SLASH_SLASH] = "//",
-  [aux_sym_comment_token1] = "comment_token1",
-  [sym_program] = "program",
-  [sym__statement] = "_statement",
-  [sym_function_definition] = "function_definition",
-  [sym_function_implementation] = "function_implementation",
-  [sym_parameter_list] = "parameter_list",
-  [sym__parameter] = "_parameter",
-  [sym_typed_parameter] = "typed_parameter",
-  [sym_when_expression] = "when_expression",
-  [sym_when_pattern] = "when_pattern",
-  [sym__pattern] = "_pattern",
-  [sym_result_pattern] = "result_pattern",
-  [sym_list_pattern] = "list_pattern",
-  [sym_table_pattern] = "table_pattern",
-  [sym_table_field_pattern] = "table_field_pattern",
-  [sym__expression] = "_expression",
-  [sym_function_call] = "function_call",
-  [sym_member_access] = "member_access",
-  [sym_binary_expression] = "binary_expression",
-  [sym_unary_expression] = "unary_expression",
-  [sym_parenthesized_expression] = "parenthesized_expression",
-  [sym_list_expression] = "list_expression",
-  [sym_table_expression] = "table_expression",
-  [sym_table_field] = "table_field",
-  [sym_expression_statement] = "expression_statement",
-  [sym__type] = "_type",
-  [sym_primitive_type] = "primitive_type",
-  [sym_list_type] = "list_type",
-  [sym_table_type] = "table_type",
-  [sym_table_type_field] = "table_type_field",
-  [sym_result_type] = "result_type",
-  [sym_function_type] = "function_type",
-  [sym_literal] = "literal",
-  [sym_string] = "string",
-  [sym_escape_sequence] = "escape_sequence",
-  [sym_number] = "number",
-  [sym_boolean] = "boolean",
-  [sym_constant] = "constant",
-  [sym_comment] = "comment",
-  [aux_sym_program_repeat1] = "program_repeat1",
-  [aux_sym_function_implementation_repeat1] = "function_implementation_repeat1",
-  [aux_sym_parameter_list_repeat1] = "parameter_list_repeat1",
-  [aux_sym_when_expression_repeat1] = "when_expression_repeat1",
-  [aux_sym_list_pattern_repeat1] = "list_pattern_repeat1",
-  [aux_sym_table_pattern_repeat1] = "table_pattern_repeat1",
-  [aux_sym_function_call_repeat1] = "function_call_repeat1",
-  [aux_sym_table_expression_repeat1] = "table_expression_repeat1",
-  [aux_sym_table_type_repeat1] = "table_type_repeat1",
-  [aux_sym_function_type_repeat1] = "function_type_repeat1",
-  [aux_sym_string_repeat1] = "string_repeat1",
-};
-
-static const TSSymbol ts_symbol_map[] = {
-  [ts_builtin_sym_end] = ts_builtin_sym_end,
-  [anon_sym_COLON] = anon_sym_COLON,
-  [anon_sym_DASH_GT] = anon_sym_DASH_GT,
-  [anon_sym_SEMI] = anon_sym_SEMI,
-  [anon_sym_LPAREN] = anon_sym_LPAREN,
-  [anon_sym_RPAREN] = anon_sym_RPAREN,
-  [anon_sym_COMMA] = anon_sym_COMMA,
-  [anon_sym_when] = anon_sym_when,
-  [anon_sym_is] = anon_sym_is,
-  [anon_sym_then] = anon_sym_then,
-  [anon_sym_Ok] = anon_sym_Ok,
-  [anon_sym_Err] = anon_sym_Err,
-  [sym_wildcard_pattern] = sym_wildcard_pattern,
-  [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_DOT] = anon_sym_DOT,
-  [anon_sym_PLUS] = anon_sym_PLUS,
-  [anon_sym_DASH] = anon_sym_DASH,
-  [anon_sym_STAR] = anon_sym_STAR,
-  [anon_sym_SLASH] = anon_sym_SLASH,
-  [anon_sym_PERCENT] = anon_sym_PERCENT,
-  [anon_sym_GT] = anon_sym_GT,
-  [anon_sym_LT] = anon_sym_LT,
-  [anon_sym_GT_EQ] = anon_sym_GT_EQ,
-  [anon_sym_LT_EQ] = anon_sym_LT_EQ,
-  [anon_sym_EQ] = anon_sym_EQ,
-  [anon_sym_BANG_EQ] = anon_sym_BANG_EQ,
-  [anon_sym_and] = anon_sym_and,
-  [anon_sym_or] = anon_sym_or,
-  [anon_sym_xor] = anon_sym_xor,
-  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
-  [anon_sym_Bool] = anon_sym_Bool,
-  [anon_sym_Int] = anon_sym_Int,
-  [anon_sym_Float] = anon_sym_Float,
-  [anon_sym_String] = anon_sym_String,
-  [anon_sym_Number] = anon_sym_Number,
-  [anon_sym_Result] = anon_sym_Result,
-  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
-  [aux_sym_string_token1] = aux_sym_string_token1,
-  [anon_sym_BSLASH] = anon_sym_BSLASH,
-  [aux_sym_escape_sequence_token1] = aux_sym_escape_sequence_token1,
-  [aux_sym_escape_sequence_token2] = aux_sym_escape_sequence_token2,
-  [aux_sym_number_token1] = aux_sym_number_token1,
-  [aux_sym_number_token2] = aux_sym_number_token2,
-  [anon_sym_true] = anon_sym_true,
-  [anon_sym_false] = anon_sym_false,
-  [anon_sym_PI] = anon_sym_PI,
-  [anon_sym_INFINITY] = anon_sym_INFINITY,
-  [sym_identifier] = sym_identifier,
-  [anon_sym_SLASH_SLASH] = anon_sym_SLASH_SLASH,
-  [aux_sym_comment_token1] = aux_sym_comment_token1,
-  [sym_program] = sym_program,
-  [sym__statement] = sym__statement,
-  [sym_function_definition] = sym_function_definition,
-  [sym_function_implementation] = sym_function_implementation,
-  [sym_parameter_list] = sym_parameter_list,
-  [sym__parameter] = sym__parameter,
-  [sym_typed_parameter] = sym_typed_parameter,
-  [sym_when_expression] = sym_when_expression,
-  [sym_when_pattern] = sym_when_pattern,
-  [sym__pattern] = sym__pattern,
-  [sym_result_pattern] = sym_result_pattern,
-  [sym_list_pattern] = sym_list_pattern,
-  [sym_table_pattern] = sym_table_pattern,
-  [sym_table_field_pattern] = sym_table_field_pattern,
-  [sym__expression] = sym__expression,
-  [sym_function_call] = sym_function_call,
-  [sym_member_access] = sym_member_access,
-  [sym_binary_expression] = sym_binary_expression,
-  [sym_unary_expression] = sym_unary_expression,
-  [sym_parenthesized_expression] = sym_parenthesized_expression,
-  [sym_list_expression] = sym_list_expression,
-  [sym_table_expression] = sym_table_expression,
-  [sym_table_field] = sym_table_field,
-  [sym_expression_statement] = sym_expression_statement,
-  [sym__type] = sym__type,
-  [sym_primitive_type] = sym_primitive_type,
-  [sym_list_type] = sym_list_type,
-  [sym_table_type] = sym_table_type,
-  [sym_table_type_field] = sym_table_type_field,
-  [sym_result_type] = sym_result_type,
-  [sym_function_type] = sym_function_type,
-  [sym_literal] = sym_literal,
-  [sym_string] = sym_string,
-  [sym_escape_sequence] = sym_escape_sequence,
-  [sym_number] = sym_number,
-  [sym_boolean] = sym_boolean,
-  [sym_constant] = sym_constant,
-  [sym_comment] = sym_comment,
-  [aux_sym_program_repeat1] = aux_sym_program_repeat1,
-  [aux_sym_function_implementation_repeat1] = aux_sym_function_implementation_repeat1,
-  [aux_sym_parameter_list_repeat1] = aux_sym_parameter_list_repeat1,
-  [aux_sym_when_expression_repeat1] = aux_sym_when_expression_repeat1,
-  [aux_sym_list_pattern_repeat1] = aux_sym_list_pattern_repeat1,
-  [aux_sym_table_pattern_repeat1] = aux_sym_table_pattern_repeat1,
-  [aux_sym_function_call_repeat1] = aux_sym_function_call_repeat1,
-  [aux_sym_table_expression_repeat1] = aux_sym_table_expression_repeat1,
-  [aux_sym_table_type_repeat1] = aux_sym_table_type_repeat1,
-  [aux_sym_function_type_repeat1] = aux_sym_function_type_repeat1,
-  [aux_sym_string_repeat1] = aux_sym_string_repeat1,
-};
-
-static const TSSymbolMetadata ts_symbol_metadata[] = {
-  [ts_builtin_sym_end] = {
-    .visible = false,
-    .named = true,
-  },
-  [anon_sym_COLON] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DASH_GT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_SEMI] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_LPAREN] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_RPAREN] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_COMMA] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_when] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_is] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_then] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Ok] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Err] = {
-    .visible = true,
-    .named = false,
-  },
-  [sym_wildcard_pattern] = {
-    .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_DOT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_PLUS] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_STAR] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_SLASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_PERCENT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_GT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_LT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_GT_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_LT_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_BANG_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_and] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_or] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_xor] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DOT_DOT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Bool] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Int] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Float] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_String] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Number] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Result] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DQUOTE] = {
-    .visible = true,
-    .named = false,
-  },
-  [aux_sym_string_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [anon_sym_BSLASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [aux_sym_escape_sequence_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_escape_sequence_token2] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_number_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_number_token2] = {
-    .visible = false,
-    .named = false,
-  },
-  [anon_sym_true] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_false] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_PI] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_INFINITY] = {
-    .visible = true,
-    .named = false,
-  },
-  [sym_identifier] = {
-    .visible = true,
-    .named = true,
-  },
-  [anon_sym_SLASH_SLASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [aux_sym_comment_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [sym_program] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__statement] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_function_definition] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_function_implementation] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_parameter_list] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__parameter] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_typed_parameter] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_when_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_when_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__pattern] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_result_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_list_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_field_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__expression] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_function_call] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_member_access] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_binary_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_unary_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_parenthesized_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_list_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_field] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_expression_statement] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__type] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_primitive_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_list_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_type_field] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_result_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_function_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_literal] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_string] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_escape_sequence] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_number] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_boolean] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_constant] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_comment] = {
-    .visible = true,
-    .named = true,
-  },
-  [aux_sym_program_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_function_implementation_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_parameter_list_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_when_expression_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_list_pattern_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_table_pattern_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_function_call_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_table_expression_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_table_type_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_function_type_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_string_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-};
-
-enum {
-  field_body = 1,
-  field_function = 2,
-  field_key = 3,
-  field_left = 4,
-  field_member = 5,
-  field_name = 6,
-  field_object = 7,
-  field_operand = 8,
-  field_parameters = 9,
-  field_pattern = 10,
-  field_patterns = 11,
-  field_result = 12,
-  field_return_type = 13,
-  field_right = 14,
-  field_subject = 15,
-  field_type = 16,
-  field_value = 17,
-};
-
-static const char * const ts_field_names[] = {
-  [0] = NULL,
-  [field_body] = "body",
-  [field_function] = "function",
-  [field_key] = "key",
-  [field_left] = "left",
-  [field_member] = "member",
-  [field_name] = "name",
-  [field_object] = "object",
-  [field_operand] = "operand",
-  [field_parameters] = "parameters",
-  [field_pattern] = "pattern",
-  [field_patterns] = "patterns",
-  [field_result] = "result",
-  [field_return_type] = "return_type",
-  [field_right] = "right",
-  [field_subject] = "subject",
-  [field_type] = "type",
-  [field_value] = "value",
-};
-
-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 = 2},
-  [6] = {.index = 8, .length = 2},
-  [7] = {.index = 10, .length = 2},
-  [8] = {.index = 12, .length = 3},
-  [9] = {.index = 15, .length = 2},
-  [10] = {.index = 17, .length = 3},
-};
-
-static const TSFieldMapEntry ts_field_map_entries[] = {
-  [0] =
-    {field_operand, 1},
-  [1] =
-    {field_function, 0},
-  [2] =
-    {field_member, 2},
-    {field_object, 0},
-  [4] =
-    {field_left, 0},
-    {field_right, 2},
-  [6] =
-    {field_key, 0},
-    {field_value, 2},
-  [8] =
-    {field_patterns, 3},
-    {field_subject, 1},
-  [10] =
-    {field_name, 0},
-    {field_type, 2},
-  [12] =
-    {field_body, 3},
-    {field_name, 0},
-    {field_parameters, 1},
-  [15] =
-    {field_pattern, 0},
-    {field_result, 2},
-  [17] =
-    {field_name, 0},
-    {field_parameters, 2},
-    {field_return_type, 4},
-};
-
-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] = 3,
-  [4] = 4,
-  [5] = 5,
-  [6] = 6,
-  [7] = 7,
-  [8] = 8,
-  [9] = 9,
-  [10] = 10,
-  [11] = 11,
-  [12] = 12,
-  [13] = 13,
-  [14] = 14,
-  [15] = 15,
-  [16] = 16,
-  [17] = 17,
-  [18] = 18,
-  [19] = 19,
-  [20] = 20,
-  [21] = 21,
-  [22] = 22,
-  [23] = 23,
-  [24] = 24,
-  [25] = 25,
-  [26] = 26,
-  [27] = 27,
-  [28] = 28,
-  [29] = 10,
-  [30] = 30,
-  [31] = 31,
-  [32] = 32,
-  [33] = 33,
-  [34] = 34,
-  [35] = 35,
-  [36] = 11,
-  [37] = 37,
-  [38] = 38,
-  [39] = 39,
-  [40] = 40,
-  [41] = 41,
-  [42] = 42,
-  [43] = 43,
-  [44] = 39,
-  [45] = 40,
-  [46] = 38,
-  [47] = 47,
-  [48] = 37,
-  [49] = 47,
-  [50] = 50,
-  [51] = 43,
-  [52] = 52,
-  [53] = 53,
-  [54] = 42,
-  [55] = 41,
-  [56] = 56,
-  [57] = 57,
-  [58] = 58,
-  [59] = 52,
-  [60] = 4,
-  [61] = 5,
-  [62] = 25,
-  [63] = 7,
-  [64] = 13,
-  [65] = 14,
-  [66] = 6,
-  [67] = 15,
-  [68] = 68,
-  [69] = 16,
-  [70] = 18,
-  [71] = 26,
-  [72] = 27,
-  [73] = 30,
-  [74] = 31,
-  [75] = 22,
-  [76] = 33,
-  [77] = 21,
-  [78] = 20,
-  [79] = 28,
-  [80] = 9,
-  [81] = 81,
-  [82] = 82,
-  [83] = 17,
-  [84] = 35,
-  [85] = 32,
-  [86] = 8,
-  [87] = 24,
-  [88] = 34,
-  [89] = 23,
-  [90] = 19,
-  [91] = 91,
-  [92] = 92,
-  [93] = 93,
-  [94] = 94,
-  [95] = 95,
-  [96] = 96,
-  [97] = 94,
-  [98] = 98,
-  [99] = 99,
-  [100] = 99,
-  [101] = 101,
-  [102] = 102,
-  [103] = 103,
-  [104] = 104,
-  [105] = 105,
-  [106] = 106,
-  [107] = 107,
-  [108] = 107,
-  [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] = 133,
-  [136] = 134,
-  [137] = 137,
-  [138] = 138,
-  [139] = 139,
-  [140] = 140,
-  [141] = 141,
-  [142] = 142,
-  [143] = 143,
-  [144] = 144,
-  [145] = 145,
-  [146] = 146,
-  [147] = 147,
-  [148] = 148,
-  [149] = 149,
-  [150] = 150,
-  [151] = 151,
-  [152] = 152,
-  [153] = 153,
-  [154] = 154,
-  [155] = 155,
-  [156] = 156,
-  [157] = 157,
-  [158] = 158,
-  [159] = 150,
-  [160] = 160,
-  [161] = 161,
-  [162] = 161,
-  [163] = 163,
-  [164] = 152,
-  [165] = 165,
-  [166] = 166,
-  [167] = 167,
-  [168] = 168,
-  [169] = 169,
-  [170] = 170,
-  [171] = 171,
-  [172] = 172,
-  [173] = 157,
-  [174] = 174,
-  [175] = 175,
-  [176] = 176,
-  [177] = 177,
-  [178] = 154,
-  [179] = 179,
-  [180] = 180,
-  [181] = 181,
-  [182] = 182,
-  [183] = 183,
-  [184] = 184,
-  [185] = 185,
-  [186] = 186,
-  [187] = 187,
-  [188] = 188,
-  [189] = 189,
-  [190] = 190,
-  [191] = 191,
-  [192] = 192,
-  [193] = 193,
-  [194] = 194,
-  [195] = 195,
-  [196] = 196,
-  [197] = 197,
-  [198] = 198,
-  [199] = 199,
-  [200] = 200,
-  [201] = 201,
-  [202] = 202,
-  [203] = 203,
-  [204] = 198,
-  [205] = 205,
-  [206] = 206,
-  [207] = 207,
-  [208] = 208,
-  [209] = 209,
-  [210] = 210,
-  [211] = 211,
-  [212] = 212,
-  [213] = 213,
-  [214] = 200,
-  [215] = 215,
-  [216] = 216,
-  [217] = 217,
-  [218] = 218,
-  [219] = 119,
-};
-
-static bool ts_lex(TSLexer *lexer, TSStateId state) {
-  START_LEXER();
-  eof = lexer->eof(lexer);
-  switch (state) {
-    case 0:
-      if (eof) ADVANCE(69);
-      if (lookahead == '!') ADVANCE(11);
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == '%') ADVANCE(96);
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == '*') ADVANCE(94);
-      if (lookahead == '+') ADVANCE(91);
-      if (lookahead == ',') ADVANCE(75);
-      if (lookahead == '-') ADVANCE(93);
-      if (lookahead == '.') ADVANCE(90);
-      if (lookahead == '/') ADVANCE(95);
-      if (lookahead == ':') ADVANCE(70);
-      if (lookahead == ';') ADVANCE(72);
-      if (lookahead == '<') ADVANCE(99);
-      if (lookahead == '=') ADVANCE(102);
-      if (lookahead == '>') ADVANCE(98);
-      if (lookahead == 'B') ADVANCE(45);
-      if (lookahead == 'E') ADVANCE(53);
-      if (lookahead == 'F') ADVANCE(37);
-      if (lookahead == 'I') ADVANCE(17);
-      if (lookahead == 'N') ADVANCE(61);
-      if (lookahead == 'O') ADVANCE(34);
-      if (lookahead == 'P') ADVANCE(14);
-      if (lookahead == 'R') ADVANCE(27);
-      if (lookahead == 'S') ADVANCE(60);
-      if (lookahead == '[') ADVANCE(86);
-      if (lookahead == '\\') ADVANCE(127);
-      if (lookahead == ']') ADVANCE(87);
-      if (lookahead == '_') ADVANCE(84);
-      if (lookahead == 'a') ADVANCE(40);
-      if (lookahead == 'f') ADVANCE(21);
-      if (lookahead == 'i') ADVANCE(54);
-      if (lookahead == 'o') ADVANCE(48);
-      if (lookahead == 'u') ADVANCE(67);
-      if (lookahead == 'w') ADVANCE(31);
-      if (lookahead == 'x') ADVANCE(47);
-      if (lookahead == '{') ADVANCE(88);
-      if (lookahead == '}') ADVANCE(89);
-      if (lookahead == 'n' ||
-          lookahead == 'r' ||
-          lookahead == 't') ADVANCE(128);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(0)
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      END_STATE();
-    case 1:
-      if (lookahead == '!') ADVANCE(11);
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == '%') ADVANCE(96);
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == '*') ADVANCE(94);
-      if (lookahead == '+') ADVANCE(91);
-      if (lookahead == '-') ADVANCE(92);
-      if (lookahead == '.') ADVANCE(90);
-      if (lookahead == '/') ADVANCE(95);
-      if (lookahead == ';') ADVANCE(72);
-      if (lookahead == '<') ADVANCE(99);
-      if (lookahead == '=') ADVANCE(102);
-      if (lookahead == '>') ADVANCE(98);
-      if (lookahead == 'E') ADVANCE(179);
-      if (lookahead == 'O') ADVANCE(159);
-      if (lookahead == '[') ADVANCE(86);
-      if (lookahead == '_') ADVANCE(85);
-      if (lookahead == 'a') ADVANCE(166);
-      if (lookahead == 'f') ADVANCE(147);
-      if (lookahead == 'o') ADVANCE(174);
-      if (lookahead == 't') ADVANCE(173);
-      if (lookahead == 'x') ADVANCE(172);
-      if (lookahead == '{') ADVANCE(88);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(1)
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 2:
-      if (lookahead == '!') ADVANCE(11);
-      if (lookahead == '%') ADVANCE(96);
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == '*') ADVANCE(94);
-      if (lookahead == '+') ADVANCE(91);
-      if (lookahead == ',') ADVANCE(75);
-      if (lookahead == '-') ADVANCE(92);
-      if (lookahead == '.') ADVANCE(90);
-      if (lookahead == '/') ADVANCE(95);
-      if (lookahead == ';') ADVANCE(72);
-      if (lookahead == '<') ADVANCE(99);
-      if (lookahead == '=') ADVANCE(102);
-      if (lookahead == '>') ADVANCE(98);
-      if (lookahead == ']') ADVANCE(87);
-      if (lookahead == 'a') ADVANCE(40);
-      if (lookahead == 'i') ADVANCE(54);
-      if (lookahead == 'o') ADVANCE(48);
-      if (lookahead == 't') ADVANCE(32);
-      if (lookahead == 'x') ADVANCE(47);
-      if (lookahead == '}') ADVANCE(89);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(2)
-      END_STATE();
-    case 3:
-      if (lookahead == '!') ADVANCE(11);
-      if (lookahead == '%') ADVANCE(96);
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == '*') ADVANCE(94);
-      if (lookahead == '+') ADVANCE(91);
-      if (lookahead == '-') ADVANCE(92);
-      if (lookahead == '.') ADVANCE(90);
-      if (lookahead == '/') ADVANCE(95);
-      if (lookahead == ':') ADVANCE(70);
-      if (lookahead == ';') ADVANCE(72);
-      if (lookahead == '<') ADVANCE(99);
-      if (lookahead == '=') ADVANCE(102);
-      if (lookahead == '>') ADVANCE(98);
-      if (lookahead == 'a') ADVANCE(166);
-      if (lookahead == 'o') ADVANCE(174);
-      if (lookahead == 'x') ADVANCE(172);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(3)
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 4:
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == '+') ADVANCE(91);
-      if (lookahead == '-') ADVANCE(92);
-      if (lookahead == '/') ADVANCE(9);
-      if (lookahead == 'I') ADVANCE(143);
-      if (lookahead == 'P') ADVANCE(140);
-      if (lookahead == '[') ADVANCE(86);
-      if (lookahead == ']') ADVANCE(87);
-      if (lookahead == 'f') ADVANCE(147);
-      if (lookahead == 't') ADVANCE(173);
-      if (lookahead == '{') ADVANCE(88);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(4)
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 5:
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == ',') ADVANCE(75);
-      if (lookahead == '-') ADVANCE(12);
-      if (lookahead == '/') ADVANCE(9);
-      if (lookahead == ':') ADVANCE(70);
-      if (lookahead == ';') ADVANCE(72);
-      if (lookahead == '>') ADVANCE(97);
-      if (lookahead == 'E') ADVANCE(179);
-      if (lookahead == 'O') ADVANCE(159);
-      if (lookahead == '[') ADVANCE(86);
-      if (lookahead == ']') ADVANCE(87);
-      if (lookahead == '_') ADVANCE(85);
-      if (lookahead == 'f') ADVANCE(147);
-      if (lookahead == 't') ADVANCE(173);
-      if (lookahead == '{') ADVANCE(88);
-      if (lookahead == '}') ADVANCE(89);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(5)
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 6:
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == '/') ADVANCE(125);
-      if (lookahead == '\\') ADVANCE(127);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') ADVANCE(126);
-      if (lookahead != 0) ADVANCE(124);
-      END_STATE();
-    case 7:
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == '-') ADVANCE(12);
-      if (lookahead == '/') ADVANCE(9);
-      if (lookahead == '}') ADVANCE(89);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(7)
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 8:
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == '/') ADVANCE(9);
-      if (lookahead == 'B') ADVANCE(171);
-      if (lookahead == 'F') ADVANCE(162);
-      if (lookahead == 'I') ADVANCE(168);
-      if (lookahead == 'N') ADVANCE(186);
-      if (lookahead == 'R') ADVANCE(154);
-      if (lookahead == 'S') ADVANCE(185);
-      if (lookahead == '[') ADVANCE(86);
-      if (lookahead == '{') ADVANCE(88);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(8)
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 9:
-      if (lookahead == '/') ADVANCE(190);
-      END_STATE();
-    case 10:
-      if (lookahead == '/') ADVANCE(9);
-      if (lookahead == 'u') ADVANCE(67);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(10)
-      if (lookahead == '"' ||
-          lookahead == '\\' ||
-          lookahead == 'n' ||
-          lookahead == 'r' ||
-          lookahead == 't') ADVANCE(128);
-      END_STATE();
-    case 11:
-      if (lookahead == '=') ADVANCE(103);
-      END_STATE();
-    case 12:
-      if (lookahead == '>') ADVANCE(71);
-      END_STATE();
-    case 13:
-      if (lookahead == 'F') ADVANCE(15);
-      END_STATE();
-    case 14:
-      if (lookahead == 'I') ADVANCE(135);
-      END_STATE();
-    case 15:
-      if (lookahead == 'I') ADVANCE(18);
-      END_STATE();
-    case 16:
-      if (lookahead == 'I') ADVANCE(19);
-      END_STATE();
-    case 17:
-      if (lookahead == 'N') ADVANCE(13);
-      if (lookahead == 'n') ADVANCE(57);
-      END_STATE();
-    case 18:
-      if (lookahead == 'N') ADVANCE(16);
-      END_STATE();
-    case 19:
-      if (lookahead == 'T') ADVANCE(20);
-      END_STATE();
-    case 20:
-      if (lookahead == 'Y') ADVANCE(137);
-      END_STATE();
-    case 21:
-      if (lookahead == 'a') ADVANCE(36);
-      END_STATE();
-    case 22:
-      if (lookahead == 'a') ADVANCE(58);
-      END_STATE();
-    case 23:
-      if (lookahead == 'b') ADVANCE(29);
-      END_STATE();
-    case 24:
-      if (lookahead == 'd') ADVANCE(104);
-      END_STATE();
-    case 25:
-      if (lookahead == 'e') ADVANCE(133);
-      END_STATE();
-    case 26:
-      if (lookahead == 'e') ADVANCE(41);
-      END_STATE();
-    case 27:
-      if (lookahead == 'e') ADVANCE(55);
-      END_STATE();
-    case 28:
-      if (lookahead == 'e') ADVANCE(43);
-      END_STATE();
-    case 29:
-      if (lookahead == 'e') ADVANCE(52);
-      END_STATE();
-    case 30:
-      if (lookahead == 'g') ADVANCE(117);
-      END_STATE();
-    case 31:
-      if (lookahead == 'h') ADVANCE(26);
-      END_STATE();
-    case 32:
-      if (lookahead == 'h') ADVANCE(28);
-      END_STATE();
-    case 33:
-      if (lookahead == 'i') ADVANCE(42);
-      END_STATE();
-    case 34:
-      if (lookahead == 'k') ADVANCE(80);
-      END_STATE();
-    case 35:
-      if (lookahead == 'l') ADVANCE(111);
-      END_STATE();
-    case 36:
-      if (lookahead == 'l') ADVANCE(56);
-      END_STATE();
-    case 37:
-      if (lookahead == 'l') ADVANCE(44);
-      END_STATE();
-    case 38:
-      if (lookahead == 'l') ADVANCE(59);
-      END_STATE();
-    case 39:
-      if (lookahead == 'm') ADVANCE(23);
-      END_STATE();
-    case 40:
-      if (lookahead == 'n') ADVANCE(24);
-      END_STATE();
-    case 41:
-      if (lookahead == 'n') ADVANCE(76);
-      END_STATE();
-    case 42:
-      if (lookahead == 'n') ADVANCE(30);
-      END_STATE();
-    case 43:
-      if (lookahead == 'n') ADVANCE(79);
-      END_STATE();
-    case 44:
-      if (lookahead == 'o') ADVANCE(22);
-      END_STATE();
-    case 45:
-      if (lookahead == 'o') ADVANCE(46);
-      END_STATE();
-    case 46:
-      if (lookahead == 'o') ADVANCE(35);
-      END_STATE();
-    case 47:
-      if (lookahead == 'o') ADVANCE(51);
-      END_STATE();
-    case 48:
-      if (lookahead == 'r') ADVANCE(106);
-      END_STATE();
-    case 49:
-      if (lookahead == 'r') ADVANCE(82);
-      END_STATE();
-    case 50:
-      if (lookahead == 'r') ADVANCE(33);
-      END_STATE();
-    case 51:
-      if (lookahead == 'r') ADVANCE(108);
-      END_STATE();
-    case 52:
-      if (lookahead == 'r') ADVANCE(119);
-      END_STATE();
-    case 53:
-      if (lookahead == 'r') ADVANCE(49);
-      END_STATE();
-    case 54:
-      if (lookahead == 's') ADVANCE(78);
-      END_STATE();
-    case 55:
-      if (lookahead == 's') ADVANCE(62);
-      END_STATE();
-    case 56:
-      if (lookahead == 's') ADVANCE(25);
-      END_STATE();
-    case 57:
-      if (lookahead == 't') ADVANCE(113);
-      END_STATE();
-    case 58:
-      if (lookahead == 't') ADVANCE(115);
-      END_STATE();
-    case 59:
-      if (lookahead == 't') ADVANCE(121);
-      END_STATE();
-    case 60:
-      if (lookahead == 't') ADVANCE(50);
-      END_STATE();
-    case 61:
-      if (lookahead == 'u') ADVANCE(39);
-      END_STATE();
-    case 62:
-      if (lookahead == 'u') ADVANCE(38);
-      END_STATE();
-    case 63:
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131);
-      END_STATE();
-    case 64:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(129);
-      END_STATE();
-    case 65:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(64);
-      END_STATE();
-    case 66:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(65);
-      END_STATE();
-    case 67:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(66);
-      END_STATE();
-    case 68:
-      if (eof) ADVANCE(69);
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == '+') ADVANCE(91);
-      if (lookahead == '-') ADVANCE(92);
-      if (lookahead == '/') ADVANCE(9);
-      if (lookahead == 'I') ADVANCE(143);
-      if (lookahead == 'P') ADVANCE(140);
-      if (lookahead == '[') ADVANCE(86);
-      if (lookahead == 'f') ADVANCE(147);
-      if (lookahead == 't') ADVANCE(173);
-      if (lookahead == 'w') ADVANCE(157);
-      if (lookahead == '{') ADVANCE(88);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(68)
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 69:
-      ACCEPT_TOKEN(ts_builtin_sym_end);
-      END_STATE();
-    case 70:
-      ACCEPT_TOKEN(anon_sym_COLON);
-      END_STATE();
-    case 71:
-      ACCEPT_TOKEN(anon_sym_DASH_GT);
-      END_STATE();
-    case 72:
-      ACCEPT_TOKEN(anon_sym_SEMI);
-      END_STATE();
-    case 73:
-      ACCEPT_TOKEN(anon_sym_LPAREN);
-      END_STATE();
-    case 74:
-      ACCEPT_TOKEN(anon_sym_RPAREN);
-      END_STATE();
-    case 75:
-      ACCEPT_TOKEN(anon_sym_COMMA);
-      END_STATE();
-    case 76:
-      ACCEPT_TOKEN(anon_sym_when);
-      END_STATE();
-    case 77:
-      ACCEPT_TOKEN(anon_sym_when);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 78:
-      ACCEPT_TOKEN(anon_sym_is);
-      END_STATE();
-    case 79:
-      ACCEPT_TOKEN(anon_sym_then);
-      END_STATE();
-    case 80:
-      ACCEPT_TOKEN(anon_sym_Ok);
-      END_STATE();
-    case 81:
-      ACCEPT_TOKEN(anon_sym_Ok);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 82:
-      ACCEPT_TOKEN(anon_sym_Err);
-      END_STATE();
-    case 83:
-      ACCEPT_TOKEN(anon_sym_Err);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 84:
-      ACCEPT_TOKEN(sym_wildcard_pattern);
-      END_STATE();
-    case 85:
-      ACCEPT_TOKEN(sym_wildcard_pattern);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 86:
-      ACCEPT_TOKEN(anon_sym_LBRACK);
-      END_STATE();
-    case 87:
-      ACCEPT_TOKEN(anon_sym_RBRACK);
-      END_STATE();
-    case 88:
-      ACCEPT_TOKEN(anon_sym_LBRACE);
-      END_STATE();
-    case 89:
-      ACCEPT_TOKEN(anon_sym_RBRACE);
-      END_STATE();
-    case 90:
-      ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(110);
-      END_STATE();
-    case 91:
-      ACCEPT_TOKEN(anon_sym_PLUS);
-      END_STATE();
-    case 92:
-      ACCEPT_TOKEN(anon_sym_DASH);
-      END_STATE();
-    case 93:
-      ACCEPT_TOKEN(anon_sym_DASH);
-      if (lookahead == '>') ADVANCE(71);
-      END_STATE();
-    case 94:
-      ACCEPT_TOKEN(anon_sym_STAR);
-      END_STATE();
-    case 95:
-      ACCEPT_TOKEN(anon_sym_SLASH);
-      if (lookahead == '/') ADVANCE(190);
-      END_STATE();
-    case 96:
-      ACCEPT_TOKEN(anon_sym_PERCENT);
-      END_STATE();
-    case 97:
-      ACCEPT_TOKEN(anon_sym_GT);
-      END_STATE();
-    case 98:
-      ACCEPT_TOKEN(anon_sym_GT);
-      if (lookahead == '=') ADVANCE(100);
-      END_STATE();
-    case 99:
-      ACCEPT_TOKEN(anon_sym_LT);
-      if (lookahead == '=') ADVANCE(101);
-      END_STATE();
-    case 100:
-      ACCEPT_TOKEN(anon_sym_GT_EQ);
-      END_STATE();
-    case 101:
-      ACCEPT_TOKEN(anon_sym_LT_EQ);
-      END_STATE();
-    case 102:
-      ACCEPT_TOKEN(anon_sym_EQ);
-      END_STATE();
-    case 103:
-      ACCEPT_TOKEN(anon_sym_BANG_EQ);
-      END_STATE();
-    case 104:
-      ACCEPT_TOKEN(anon_sym_and);
-      END_STATE();
-    case 105:
-      ACCEPT_TOKEN(anon_sym_and);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 106:
-      ACCEPT_TOKEN(anon_sym_or);
-      END_STATE();
-    case 107:
-      ACCEPT_TOKEN(anon_sym_or);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 108:
-      ACCEPT_TOKEN(anon_sym_xor);
-      END_STATE();
-    case 109:
-      ACCEPT_TOKEN(anon_sym_xor);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 110:
-      ACCEPT_TOKEN(anon_sym_DOT_DOT);
-      END_STATE();
-    case 111:
-      ACCEPT_TOKEN(anon_sym_Bool);
-      END_STATE();
-    case 112:
-      ACCEPT_TOKEN(anon_sym_Bool);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 113:
-      ACCEPT_TOKEN(anon_sym_Int);
-      END_STATE();
-    case 114:
-      ACCEPT_TOKEN(anon_sym_Int);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 115:
-      ACCEPT_TOKEN(anon_sym_Float);
-      END_STATE();
-    case 116:
-      ACCEPT_TOKEN(anon_sym_Float);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 117:
-      ACCEPT_TOKEN(anon_sym_String);
-      END_STATE();
-    case 118:
-      ACCEPT_TOKEN(anon_sym_String);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 119:
-      ACCEPT_TOKEN(anon_sym_Number);
-      END_STATE();
-    case 120:
-      ACCEPT_TOKEN(anon_sym_Number);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 121:
-      ACCEPT_TOKEN(anon_sym_Result);
-      END_STATE();
-    case 122:
-      ACCEPT_TOKEN(anon_sym_Result);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 123:
-      ACCEPT_TOKEN(anon_sym_DQUOTE);
-      END_STATE();
-    case 124:
-      ACCEPT_TOKEN(aux_sym_string_token1);
-      END_STATE();
-    case 125:
-      ACCEPT_TOKEN(aux_sym_string_token1);
-      if (lookahead == '/') ADVANCE(190);
-      END_STATE();
-    case 126:
-      ACCEPT_TOKEN(aux_sym_string_token1);
-      if (lookahead == '/') ADVANCE(125);
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') ADVANCE(126);
-      if (lookahead != 0 &&
-          lookahead != '"' &&
-          lookahead != '\\') ADVANCE(124);
-      END_STATE();
-    case 127:
-      ACCEPT_TOKEN(anon_sym_BSLASH);
-      END_STATE();
-    case 128:
-      ACCEPT_TOKEN(aux_sym_escape_sequence_token1);
-      END_STATE();
-    case 129:
-      ACCEPT_TOKEN(aux_sym_escape_sequence_token2);
-      END_STATE();
-    case 130:
-      ACCEPT_TOKEN(aux_sym_number_token1);
-      if (lookahead == '.') ADVANCE(63);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      END_STATE();
-    case 131:
-      ACCEPT_TOKEN(aux_sym_number_token2);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131);
-      END_STATE();
-    case 132:
-      ACCEPT_TOKEN(anon_sym_true);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 133:
-      ACCEPT_TOKEN(anon_sym_false);
-      END_STATE();
-    case 134:
-      ACCEPT_TOKEN(anon_sym_false);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 135:
-      ACCEPT_TOKEN(anon_sym_PI);
-      END_STATE();
-    case 136:
-      ACCEPT_TOKEN(anon_sym_PI);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 137:
-      ACCEPT_TOKEN(anon_sym_INFINITY);
-      END_STATE();
-    case 138:
-      ACCEPT_TOKEN(anon_sym_INFINITY);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 139:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'F') ADVANCE(142);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 140:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'I') ADVANCE(136);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 141:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'I') ADVANCE(145);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 142:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'I') ADVANCE(144);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 143:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'N') ADVANCE(139);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 144:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'N') ADVANCE(141);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 145:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'T') ADVANCE(146);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 146:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'Y') ADVANCE(138);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 147:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'a') ADVANCE(160);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 148:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'a') ADVANCE(183);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 149:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'b') ADVANCE(155);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 150:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'd') ADVANCE(105);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 151:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 152:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(132);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 153:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(134);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 154:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(180);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 155:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(178);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 156:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'g') ADVANCE(118);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 157:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'h') ADVANCE(151);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 158:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'i') ADVANCE(167);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 159:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'k') ADVANCE(81);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 160:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(181);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 161:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(112);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 162:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(169);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 163:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(184);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 164:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'm') ADVANCE(149);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 165:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(77);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 166:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(150);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 167:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(156);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 168:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(182);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 169:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(148);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 170:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(161);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 171:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(170);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 172:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(176);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 173:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(187);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 174:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(107);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 175:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(83);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 176:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(109);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 177:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(158);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 178:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(120);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 179:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(175);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 180:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 's') ADVANCE(188);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 181:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 's') ADVANCE(153);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 182:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(114);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 183:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(116);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 184:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(122);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 185:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(177);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 186:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'u') ADVANCE(164);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 187:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'u') ADVANCE(152);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 188:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'u') ADVANCE(163);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 189:
-      ACCEPT_TOKEN(sym_identifier);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 190:
-      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
-      END_STATE();
-    case 191:
-      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    case 192:
-      ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '/') ADVANCE(193);
-      if (lookahead == '\t' ||
-          lookahead == '\r' ||
-          lookahead == ' ') ADVANCE(192);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    case 193:
-      ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '/') ADVANCE(191);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    case 194:
-      ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    default:
-      return false;
-  }
-}
-
-static const TSLexMode ts_lex_modes[STATE_COUNT] = {
-  [0] = {.lex_state = 0},
-  [1] = {.lex_state = 68},
-  [2] = {.lex_state = 68},
-  [3] = {.lex_state = 68},
-  [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 = 4},
-  [11] = {.lex_state = 4},
-  [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 = 1},
-  [24] = {.lex_state = 1},
-  [25] = {.lex_state = 1},
-  [26] = {.lex_state = 1},
-  [27] = {.lex_state = 1},
-  [28] = {.lex_state = 1},
-  [29] = {.lex_state = 4},
-  [30] = {.lex_state = 1},
-  [31] = {.lex_state = 1},
-  [32] = {.lex_state = 1},
-  [33] = {.lex_state = 1},
-  [34] = {.lex_state = 1},
-  [35] = {.lex_state = 1},
-  [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 = 4},
-  [43] = {.lex_state = 4},
-  [44] = {.lex_state = 4},
-  [45] = {.lex_state = 4},
-  [46] = {.lex_state = 4},
-  [47] = {.lex_state = 4},
-  [48] = {.lex_state = 4},
-  [49] = {.lex_state = 4},
-  [50] = {.lex_state = 4},
-  [51] = {.lex_state = 4},
-  [52] = {.lex_state = 4},
-  [53] = {.lex_state = 4},
-  [54] = {.lex_state = 4},
-  [55] = {.lex_state = 4},
-  [56] = {.lex_state = 4},
-  [57] = {.lex_state = 4},
-  [58] = {.lex_state = 4},
-  [59] = {.lex_state = 4},
-  [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 = 3},
-  [69] = {.lex_state = 2},
-  [70] = {.lex_state = 2},
-  [71] = {.lex_state = 2},
-  [72] = {.lex_state = 2},
-  [73] = {.lex_state = 2},
-  [74] = {.lex_state = 2},
-  [75] = {.lex_state = 2},
-  [76] = {.lex_state = 2},
-  [77] = {.lex_state = 2},
-  [78] = {.lex_state = 2},
-  [79] = {.lex_state = 2},
-  [80] = {.lex_state = 2},
-  [81] = {.lex_state = 5},
-  [82] = {.lex_state = 5},
-  [83] = {.lex_state = 2},
-  [84] = {.lex_state = 2},
-  [85] = {.lex_state = 2},
-  [86] = {.lex_state = 2},
-  [87] = {.lex_state = 2},
-  [88] = {.lex_state = 2},
-  [89] = {.lex_state = 2},
-  [90] = {.lex_state = 2},
-  [91] = {.lex_state = 5},
-  [92] = {.lex_state = 5},
-  [93] = {.lex_state = 2},
-  [94] = {.lex_state = 2},
-  [95] = {.lex_state = 5},
-  [96] = {.lex_state = 5},
-  [97] = {.lex_state = 2},
-  [98] = {.lex_state = 5},
-  [99] = {.lex_state = 2},
-  [100] = {.lex_state = 2},
-  [101] = {.lex_state = 8},
-  [102] = {.lex_state = 2},
-  [103] = {.lex_state = 8},
-  [104] = {.lex_state = 8},
-  [105] = {.lex_state = 2},
-  [106] = {.lex_state = 8},
-  [107] = {.lex_state = 2},
-  [108] = {.lex_state = 2},
-  [109] = {.lex_state = 2},
-  [110] = {.lex_state = 2},
-  [111] = {.lex_state = 8},
-  [112] = {.lex_state = 8},
-  [113] = {.lex_state = 8},
-  [114] = {.lex_state = 8},
-  [115] = {.lex_state = 8},
-  [116] = {.lex_state = 8},
-  [117] = {.lex_state = 68},
-  [118] = {.lex_state = 68},
-  [119] = {.lex_state = 68},
-  [120] = {.lex_state = 68},
-  [121] = {.lex_state = 68},
-  [122] = {.lex_state = 5},
-  [123] = {.lex_state = 5},
-  [124] = {.lex_state = 5},
-  [125] = {.lex_state = 5},
-  [126] = {.lex_state = 5},
-  [127] = {.lex_state = 5},
-  [128] = {.lex_state = 5},
-  [129] = {.lex_state = 5},
-  [130] = {.lex_state = 5},
-  [131] = {.lex_state = 5},
-  [132] = {.lex_state = 5},
-  [133] = {.lex_state = 6},
-  [134] = {.lex_state = 6},
-  [135] = {.lex_state = 6},
-  [136] = {.lex_state = 6},
-  [137] = {.lex_state = 7},
-  [138] = {.lex_state = 6},
-  [139] = {.lex_state = 2},
-  [140] = {.lex_state = 2},
-  [141] = {.lex_state = 2},
-  [142] = {.lex_state = 2},
-  [143] = {.lex_state = 2},
-  [144] = {.lex_state = 2},
-  [145] = {.lex_state = 2},
-  [146] = {.lex_state = 0},
-  [147] = {.lex_state = 2},
-  [148] = {.lex_state = 5},
-  [149] = {.lex_state = 7},
-  [150] = {.lex_state = 0},
-  [151] = {.lex_state = 0},
-  [152] = {.lex_state = 7},
-  [153] = {.lex_state = 0},
-  [154] = {.lex_state = 0},
-  [155] = {.lex_state = 5},
-  [156] = {.lex_state = 0},
-  [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 = 7},
-  [165] = {.lex_state = 6},
-  [166] = {.lex_state = 0},
-  [167] = {.lex_state = 7},
-  [168] = {.lex_state = 7},
-  [169] = {.lex_state = 0},
-  [170] = {.lex_state = 7},
-  [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 = 6},
-  [178] = {.lex_state = 0},
-  [179] = {.lex_state = 0},
-  [180] = {.lex_state = 0},
-  [181] = {.lex_state = 0},
-  [182] = {.lex_state = 5},
-  [183] = {.lex_state = 7},
-  [184] = {.lex_state = 7},
-  [185] = {.lex_state = 10},
-  [186] = {.lex_state = 7},
-  [187] = {.lex_state = 0},
-  [188] = {.lex_state = 7},
-  [189] = {.lex_state = 0},
-  [190] = {.lex_state = 0},
-  [191] = {.lex_state = 0},
-  [192] = {.lex_state = 0},
-  [193] = {.lex_state = 0},
-  [194] = {.lex_state = 7},
-  [195] = {.lex_state = 0},
-  [196] = {.lex_state = 7},
-  [197] = {.lex_state = 0},
-  [198] = {.lex_state = 192},
-  [199] = {.lex_state = 0},
-  [200] = {.lex_state = 7},
-  [201] = {.lex_state = 5},
-  [202] = {.lex_state = 0},
-  [203] = {.lex_state = 2},
-  [204] = {.lex_state = 192},
-  [205] = {.lex_state = 0},
-  [206] = {.lex_state = 5},
-  [207] = {.lex_state = 0},
-  [208] = {.lex_state = 5},
-  [209] = {.lex_state = 5},
-  [210] = {.lex_state = 5},
-  [211] = {.lex_state = 5},
-  [212] = {.lex_state = 0},
-  [213] = {.lex_state = 0},
-  [214] = {.lex_state = 7},
-  [215] = {.lex_state = 5},
-  [216] = {.lex_state = 0},
-  [217] = {.lex_state = 5},
-  [218] = {.lex_state = 0},
-  [219] = {(TSStateId)(-1)},
-};
-
-static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
-  [0] = {
-    [sym_comment] = STATE(0),
-    [ts_builtin_sym_end] = ACTIONS(1),
-    [anon_sym_COLON] = ACTIONS(1),
-    [anon_sym_DASH_GT] = ACTIONS(1),
-    [anon_sym_SEMI] = ACTIONS(1),
-    [anon_sym_LPAREN] = ACTIONS(1),
-    [anon_sym_RPAREN] = ACTIONS(1),
-    [anon_sym_COMMA] = ACTIONS(1),
-    [anon_sym_when] = ACTIONS(1),
-    [anon_sym_is] = ACTIONS(1),
-    [anon_sym_Ok] = ACTIONS(1),
-    [anon_sym_Err] = ACTIONS(1),
-    [sym_wildcard_pattern] = ACTIONS(1),
-    [anon_sym_LBRACK] = ACTIONS(1),
-    [anon_sym_RBRACK] = ACTIONS(1),
-    [anon_sym_LBRACE] = ACTIONS(1),
-    [anon_sym_RBRACE] = ACTIONS(1),
-    [anon_sym_DOT] = ACTIONS(1),
-    [anon_sym_PLUS] = ACTIONS(1),
-    [anon_sym_DASH] = ACTIONS(1),
-    [anon_sym_STAR] = ACTIONS(1),
-    [anon_sym_SLASH] = ACTIONS(1),
-    [anon_sym_PERCENT] = ACTIONS(1),
-    [anon_sym_GT] = ACTIONS(1),
-    [anon_sym_LT] = ACTIONS(1),
-    [anon_sym_GT_EQ] = ACTIONS(1),
-    [anon_sym_LT_EQ] = ACTIONS(1),
-    [anon_sym_EQ] = ACTIONS(1),
-    [anon_sym_BANG_EQ] = ACTIONS(1),
-    [anon_sym_and] = ACTIONS(1),
-    [anon_sym_or] = ACTIONS(1),
-    [anon_sym_xor] = ACTIONS(1),
-    [anon_sym_DOT_DOT] = ACTIONS(1),
-    [anon_sym_Bool] = ACTIONS(1),
-    [anon_sym_Int] = ACTIONS(1),
-    [anon_sym_Float] = ACTIONS(1),
-    [anon_sym_String] = ACTIONS(1),
-    [anon_sym_Number] = ACTIONS(1),
-    [anon_sym_Result] = ACTIONS(1),
-    [anon_sym_DQUOTE] = ACTIONS(1),
-    [anon_sym_BSLASH] = ACTIONS(1),
-    [aux_sym_escape_sequence_token1] = ACTIONS(1),
-    [aux_sym_escape_sequence_token2] = ACTIONS(1),
-    [aux_sym_number_token1] = ACTIONS(1),
-    [aux_sym_number_token2] = ACTIONS(1),
-    [anon_sym_false] = ACTIONS(1),
-    [anon_sym_PI] = ACTIONS(1),
-    [anon_sym_INFINITY] = ACTIONS(1),
-    [anon_sym_SLASH_SLASH] = ACTIONS(3),
-  },
-  [1] = {
-    [sym_program] = STATE(213),
-    [sym__statement] = STATE(3),
-    [sym_function_definition] = STATE(3),
-    [sym_function_implementation] = STATE(3),
-    [sym_when_expression] = STATE(3),
-    [sym__expression] = STATE(105),
-    [sym_function_call] = STATE(83),
-    [sym_member_access] = STATE(66),
-    [sym_binary_expression] = STATE(83),
-    [sym_unary_expression] = STATE(83),
-    [sym_parenthesized_expression] = STATE(83),
-    [sym_list_expression] = STATE(83),
-    [sym_table_expression] = STATE(83),
-    [sym_expression_statement] = STATE(3),
-    [sym_literal] = STATE(83),
-    [sym_string] = STATE(90),
-    [sym_number] = STATE(90),
-    [sym_boolean] = STATE(90),
-    [sym_constant] = STATE(90),
-    [sym_comment] = STATE(1),
-    [aux_sym_program_repeat1] = STATE(3),
-    [ts_builtin_sym_end] = ACTIONS(5),
-    [anon_sym_LPAREN] = ACTIONS(7),
-    [anon_sym_when] = ACTIONS(9),
-    [anon_sym_LBRACK] = ACTIONS(11),
-    [anon_sym_LBRACE] = ACTIONS(13),
-    [anon_sym_PLUS] = ACTIONS(15),
-    [anon_sym_DASH] = ACTIONS(15),
-    [anon_sym_DQUOTE] = ACTIONS(17),
-    [aux_sym_number_token1] = ACTIONS(19),
-    [aux_sym_number_token2] = ACTIONS(21),
-    [anon_sym_true] = ACTIONS(23),
-    [anon_sym_false] = ACTIONS(23),
-    [anon_sym_PI] = ACTIONS(25),
-    [anon_sym_INFINITY] = ACTIONS(25),
-    [sym_identifier] = ACTIONS(27),
-    [anon_sym_SLASH_SLASH] = ACTIONS(29),
-  },
-};
-
-static const uint16_t ts_small_parse_table[] = {
-  [0] = 18,
-    ACTIONS(31), 1,
-      ts_builtin_sym_end,
-    ACTIONS(33), 1,
-      anon_sym_LPAREN,
-    ACTIONS(36), 1,
-      anon_sym_when,
-    ACTIONS(39), 1,
-      anon_sym_LBRACK,
-    ACTIONS(42), 1,
-      anon_sym_LBRACE,
-    ACTIONS(48), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(51), 1,
-      aux_sym_number_token1,
-    ACTIONS(54), 1,
-      aux_sym_number_token2,
-    ACTIONS(63), 1,
-      sym_identifier,
-    ACTIONS(66), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(105), 1,
-      sym__expression,
-    ACTIONS(45), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(57), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(60), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(2), 7,
-      sym__statement,
-      sym_function_definition,
-      sym_function_implementation,
-      sym_when_expression,
-      sym_expression_statement,
-      sym_comment,
-      aux_sym_program_repeat1,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [73] = 19,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(9), 1,
-      anon_sym_when,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(27), 1,
-      sym_identifier,
-    ACTIONS(29), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(69), 1,
-      ts_builtin_sym_end,
-    STATE(3), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(105), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(2), 6,
-      sym__statement,
-      sym_function_definition,
-      sym_function_implementation,
-      sym_when_expression,
-      sym_expression_statement,
-      aux_sym_program_repeat1,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [148] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(73), 1,
-      anon_sym_LPAREN,
-    ACTIONS(77), 1,
-      anon_sym_DOT,
-    STATE(4), 1,
-      sym_comment,
-    ACTIONS(75), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(71), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [192] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(5), 1,
-      sym_comment,
-    ACTIONS(81), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(79), 15,
-      anon_sym_SEMI,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [231] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(73), 1,
-      anon_sym_LPAREN,
-    STATE(6), 1,
-      sym_comment,
-    ACTIONS(75), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(71), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [272] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(7), 1,
-      sym_comment,
-    ACTIONS(85), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(83), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [310] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(8), 1,
-      sym_comment,
-    ACTIONS(89), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(87), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [348] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(9), 1,
-      sym_comment,
-    ACTIONS(93), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(91), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [386] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(95), 1,
-      anon_sym_RBRACK,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(10), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(100), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [450] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    ACTIONS(99), 1,
-      anon_sym_RPAREN,
-    STATE(11), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(94), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [514] = 13,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_SLASH,
-    ACTIONS(117), 1,
-      anon_sym_and,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(12), 1,
-      sym_comment,
-    ACTIONS(107), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(111), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(113), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(115), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(105), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(101), 5,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(103), 7,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [570] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(13), 1,
-      sym_comment,
-    ACTIONS(125), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(123), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [608] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(14), 1,
-      sym_comment,
-    ACTIONS(129), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(127), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [646] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(15), 1,
-      sym_comment,
-    ACTIONS(133), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(131), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [684] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(117), 1,
-      anon_sym_and,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(16), 1,
-      sym_comment,
-    ACTIONS(111), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(113), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(115), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(137), 8,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(135), 10,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [734] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(17), 1,
-      sym_comment,
-    ACTIONS(75), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(71), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [772] = 11,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(117), 1,
-      anon_sym_and,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(18), 1,
-      sym_comment,
-    ACTIONS(111), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(113), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(115), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(105), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(135), 7,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(137), 8,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [824] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(19), 1,
-      sym_comment,
-    ACTIONS(141), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(139), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [862] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(20), 1,
-      sym_comment,
-    ACTIONS(145), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(143), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [900] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(21), 1,
-      sym_comment,
-    ACTIONS(149), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(147), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [938] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(22), 1,
-      sym_comment,
-    ACTIONS(137), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(135), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [976] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(23), 1,
-      sym_comment,
-    ACTIONS(153), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(151), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1014] = 13,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_SLASH,
-    ACTIONS(117), 1,
-      anon_sym_and,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(24), 1,
-      sym_comment,
-    ACTIONS(107), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(111), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(113), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(115), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(105), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(155), 5,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(157), 7,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [1070] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(25), 1,
-      sym_comment,
-    ACTIONS(161), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(159), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1108] = 8,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(117), 1,
-      anon_sym_and,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(26), 1,
-      sym_comment,
-    ACTIONS(115), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(137), 10,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(135), 12,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1154] = 7,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(117), 1,
-      anon_sym_and,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(27), 1,
-      sym_comment,
-    ACTIONS(137), 10,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(135), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1198] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(28), 1,
-      sym_comment,
-    ACTIONS(165), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1236] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    ACTIONS(167), 1,
-      anon_sym_RBRACK,
-    STATE(29), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(99), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1300] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(119), 1,
-      anon_sym_or,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(30), 1,
-      sym_comment,
-    ACTIONS(137), 11,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(135), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1342] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(121), 1,
-      anon_sym_xor,
-    STATE(31), 1,
-      sym_comment,
-    ACTIONS(137), 12,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(135), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1382] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(32), 1,
-      sym_comment,
-    ACTIONS(171), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(169), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1420] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(33), 1,
-      sym_comment,
-    ACTIONS(175), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(173), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1458] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(34), 1,
-      sym_comment,
-    ACTIONS(179), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(177), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1496] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(35), 1,
-      sym_comment,
-    ACTIONS(183), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(181), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1534] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    ACTIONS(185), 1,
-      anon_sym_RPAREN,
-    STATE(36), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(97), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1598] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(37), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(107), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1659] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(31), 1,
-      sym__expression,
-    STATE(38), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1720] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(27), 1,
-      sym__expression,
-    STATE(39), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1781] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(30), 1,
-      sym__expression,
-    STATE(40), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1842] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(41), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(69), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1903] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(42), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(70), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1964] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(43), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(71), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2025] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(44), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(72), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2086] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(45), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(73), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2147] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(46), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(74), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2208] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(47), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(75), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2269] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(48), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(108), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2330] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(22), 1,
-      sym__expression,
-    STATE(49), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2391] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(50), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(109), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2452] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(26), 1,
-      sym__expression,
-    STATE(51), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2513] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(24), 1,
-      sym__expression,
-    STATE(52), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2574] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(53), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(102), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2635] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(18), 1,
-      sym__expression,
-    STATE(54), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2696] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(16), 1,
-      sym__expression,
-    STATE(55), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2757] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(56), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(93), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2818] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(57), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(110), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2879] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(6), 1,
-      sym_member_access,
-    STATE(12), 1,
-      sym__expression,
-    STATE(58), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(19), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(17), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2940] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(97), 1,
-      sym_identifier,
-    STATE(59), 1,
-      sym_comment,
-    STATE(66), 1,
-      sym_member_access,
-    STATE(87), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(90), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(83), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [3001] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(207), 1,
-      anon_sym_LPAREN,
-    ACTIONS(209), 1,
-      anon_sym_DOT,
-    STATE(60), 1,
-      sym_comment,
-    ACTIONS(75), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(71), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3039] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(61), 1,
-      sym_comment,
-    ACTIONS(81), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(79), 19,
-      anon_sym_SEMI,
-      anon_sym_LPAREN,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3072] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(62), 1,
-      sym_comment,
-    ACTIONS(161), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(159), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3105] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(63), 1,
-      sym_comment,
-    ACTIONS(85), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(83), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3138] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(64), 1,
-      sym_comment,
-    ACTIONS(125), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(123), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3171] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(65), 1,
-      sym_comment,
-    ACTIONS(129), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(127), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3204] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(207), 1,
-      anon_sym_LPAREN,
-    STATE(66), 1,
-      sym_comment,
-    ACTIONS(75), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(71), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3239] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(67), 1,
-      sym_comment,
-    ACTIONS(133), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(131), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3271] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(207), 1,
-      anon_sym_LPAREN,
-    ACTIONS(209), 1,
-      anon_sym_DOT,
-    ACTIONS(211), 1,
-      anon_sym_COLON,
-    ACTIONS(213), 1,
-      sym_identifier,
-    STATE(68), 1,
-      sym_comment,
-    STATE(168), 1,
-      aux_sym_function_implementation_repeat1,
-    ACTIONS(75), 6,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-    ACTIONS(71), 10,
-      anon_sym_SEMI,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-  [3313] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(137), 1,
-      anon_sym_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    STATE(69), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(135), 11,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-  [3357] = 11,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(137), 1,
-      anon_sym_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    STATE(70), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(135), 8,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-  [3403] = 8,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    STATE(71), 1,
-      sym_comment,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(137), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(135), 13,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_DOT_DOT,
-  [3443] = 7,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    STATE(72), 1,
-      sym_comment,
-    ACTIONS(137), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(135), 15,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-  [3481] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    STATE(73), 1,
-      sym_comment,
-    ACTIONS(137), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(135), 16,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_DOT_DOT,
-  [3517] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    STATE(74), 1,
-      sym_comment,
-    ACTIONS(137), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(135), 17,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_DOT_DOT,
-  [3551] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(75), 1,
-      sym_comment,
-    ACTIONS(137), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(135), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3583] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(76), 1,
-      sym_comment,
-    ACTIONS(175), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(173), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3615] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(77), 1,
-      sym_comment,
-    ACTIONS(149), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(147), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3647] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(78), 1,
-      sym_comment,
-    ACTIONS(145), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(143), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3679] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(79), 1,
-      sym_comment,
-    ACTIONS(165), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(163), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3711] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(80), 1,
-      sym_comment,
-    ACTIONS(93), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(91), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3743] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(229), 1,
-      anon_sym_SEMI,
-    ACTIONS(237), 1,
-      anon_sym_LBRACK,
-    ACTIONS(240), 1,
-      anon_sym_LBRACE,
-    ACTIONS(243), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(246), 1,
-      aux_sym_number_token1,
-    ACTIONS(249), 1,
-      aux_sym_number_token2,
-    STATE(122), 1,
-      sym_when_pattern,
-    STATE(203), 1,
-      sym__pattern,
-    ACTIONS(231), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(234), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    ACTIONS(252), 2,
-      anon_sym_true,
-      anon_sym_false,
-    STATE(81), 2,
-      sym_comment,
-      aux_sym_when_expression_repeat1,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [3795] = 15,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(255), 1,
-      anon_sym_SEMI,
-    ACTIONS(261), 1,
-      anon_sym_LBRACK,
-    ACTIONS(263), 1,
-      anon_sym_LBRACE,
-    STATE(81), 1,
-      aux_sym_when_expression_repeat1,
-    STATE(82), 1,
-      sym_comment,
-    STATE(122), 1,
-      sym_when_pattern,
-    STATE(203), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(257), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(259), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [3849] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(83), 1,
-      sym_comment,
-    ACTIONS(75), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(71), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3881] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(84), 1,
-      sym_comment,
-    ACTIONS(183), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(181), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3913] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(85), 1,
-      sym_comment,
-    ACTIONS(171), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(169), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3945] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(86), 1,
-      sym_comment,
-    ACTIONS(89), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(87), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3977] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    STATE(87), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(155), 6,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [4025] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(88), 1,
-      sym_comment,
-    ACTIONS(179), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(177), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [4057] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(89), 1,
-      sym_comment,
-    ACTIONS(153), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(151), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [4089] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(90), 1,
-      sym_comment,
-    ACTIONS(141), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(139), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [4121] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(261), 1,
-      anon_sym_LBRACK,
-    ACTIONS(263), 1,
-      anon_sym_LBRACE,
-    STATE(82), 1,
-      aux_sym_when_expression_repeat1,
-    STATE(91), 1,
-      sym_comment,
-    STATE(122), 1,
-      sym_when_pattern,
-    STATE(203), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(257), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(259), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4172] = 13,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(261), 1,
-      anon_sym_LBRACK,
-    ACTIONS(263), 1,
-      anon_sym_LBRACE,
-    ACTIONS(269), 1,
-      anon_sym_RBRACK,
-    STATE(92), 1,
-      sym_comment,
-    STATE(175), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(257), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(259), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4220] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    STATE(93), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(271), 3,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-  [4265] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_RPAREN,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    STATE(94), 1,
-      sym_comment,
-    STATE(154), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4314] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(261), 1,
-      anon_sym_LBRACK,
-    ACTIONS(263), 1,
-      anon_sym_LBRACE,
-    STATE(95), 1,
-      sym_comment,
-    STATE(197), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(257), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(259), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4359] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(261), 1,
-      anon_sym_LBRACK,
-    ACTIONS(263), 1,
-      anon_sym_LBRACE,
-    STATE(96), 1,
-      sym_comment,
-    STATE(195), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(257), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(259), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4404] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(277), 1,
-      anon_sym_RPAREN,
-    STATE(97), 1,
-      sym_comment,
-    STATE(178), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4453] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(261), 1,
-      anon_sym_LBRACK,
-    ACTIONS(263), 1,
-      anon_sym_LBRACE,
-    STATE(98), 1,
-      sym_comment,
-    STATE(145), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(257), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(259), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(147), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4498] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(279), 1,
-      anon_sym_RBRACK,
-    STATE(99), 1,
-      sym_comment,
-    STATE(159), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4547] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(281), 1,
-      anon_sym_RBRACK,
-    STATE(100), 1,
-      sym_comment,
-    STATE(150), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4596] = 11,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(285), 1,
-      anon_sym_RPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(101), 1,
-      sym_comment,
-    STATE(171), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [4638] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    STATE(102), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(297), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4682] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(103), 1,
-      sym_comment,
-    STATE(155), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [4721] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(104), 1,
-      sym_comment,
-    STATE(129), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [4760] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(299), 1,
-      anon_sym_SEMI,
-    STATE(105), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4803] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(106), 1,
-      sym_comment,
-    STATE(202), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [4842] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(301), 1,
-      anon_sym_RPAREN,
-    STATE(107), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4885] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(303), 1,
-      anon_sym_RPAREN,
-    STATE(108), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4928] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(305), 1,
-      anon_sym_SEMI,
-    STATE(109), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4971] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_and,
-    ACTIONS(223), 1,
-      anon_sym_or,
-    ACTIONS(225), 1,
-      anon_sym_xor,
-    ACTIONS(267), 1,
-      anon_sym_SLASH,
-    ACTIONS(307), 1,
-      anon_sym_is,
-    STATE(110), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(217), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(219), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(227), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [5014] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(111), 1,
-      sym_comment,
-    STATE(216), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5053] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(112), 1,
-      sym_comment,
-    STATE(128), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5092] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(113), 1,
-      sym_comment,
-    STATE(189), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5131] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(114), 1,
-      sym_comment,
-    STATE(192), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5170] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(115), 1,
-      sym_comment,
-    STATE(124), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5209] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(283), 1,
-      anon_sym_LPAREN,
-    ACTIONS(287), 1,
-      anon_sym_LBRACK,
-    ACTIONS(289), 1,
-      anon_sym_LBRACE,
-    ACTIONS(293), 1,
-      anon_sym_Result,
-    ACTIONS(295), 1,
-      sym_identifier,
-    STATE(116), 1,
-      sym_comment,
-    STATE(207), 1,
-      sym__type,
-    ACTIONS(291), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(126), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5248] = 3,
-    STATE(117), 1,
-      sym_comment,
-    ACTIONS(311), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(309), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5272] = 3,
-    STATE(118), 1,
-      sym_comment,
-    ACTIONS(315), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(313), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5296] = 3,
-    STATE(119), 1,
-      sym_comment,
-    ACTIONS(319), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(317), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5320] = 3,
-    STATE(120), 1,
-      sym_comment,
-    ACTIONS(323), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(321), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5344] = 3,
-    STATE(121), 1,
-      sym_comment,
-    ACTIONS(327), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(325), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5368] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(122), 1,
-      sym_comment,
-    ACTIONS(329), 5,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(331), 7,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [5391] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(123), 1,
-      sym_comment,
-    ACTIONS(333), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5407] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(124), 1,
-      sym_comment,
-    ACTIONS(335), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5423] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(125), 1,
-      sym_comment,
-    ACTIONS(337), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5439] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(126), 1,
-      sym_comment,
-    ACTIONS(339), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5455] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(127), 1,
-      sym_comment,
-    ACTIONS(341), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5471] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(128), 1,
-      sym_comment,
-    ACTIONS(343), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5487] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(129), 1,
-      sym_comment,
-    ACTIONS(345), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5503] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(130), 1,
-      sym_comment,
-    ACTIONS(347), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5519] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(131), 1,
-      sym_comment,
-    ACTIONS(349), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5535] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(132), 1,
-      sym_comment,
-    ACTIONS(351), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5551] = 7,
-    ACTIONS(353), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(355), 1,
-      aux_sym_string_token1,
-    ACTIONS(357), 1,
-      anon_sym_BSLASH,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(133), 1,
-      sym_comment,
-    STATE(136), 1,
-      aux_sym_string_repeat1,
-    STATE(165), 1,
-      sym_escape_sequence,
-  [5573] = 7,
-    ACTIONS(355), 1,
-      aux_sym_string_token1,
-    ACTIONS(357), 1,
-      anon_sym_BSLASH,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(361), 1,
-      anon_sym_DQUOTE,
-    STATE(134), 1,
-      sym_comment,
-    STATE(138), 1,
-      aux_sym_string_repeat1,
-    STATE(165), 1,
-      sym_escape_sequence,
-  [5595] = 7,
-    ACTIONS(355), 1,
-      aux_sym_string_token1,
-    ACTIONS(357), 1,
-      anon_sym_BSLASH,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(363), 1,
-      anon_sym_DQUOTE,
-    STATE(134), 1,
-      aux_sym_string_repeat1,
-    STATE(135), 1,
-      sym_comment,
-    STATE(165), 1,
-      sym_escape_sequence,
-  [5617] = 7,
-    ACTIONS(355), 1,
-      aux_sym_string_token1,
-    ACTIONS(357), 1,
-      anon_sym_BSLASH,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(365), 1,
-      anon_sym_DQUOTE,
-    STATE(136), 1,
-      sym_comment,
-    STATE(138), 1,
-      aux_sym_string_repeat1,
-    STATE(165), 1,
-      sym_escape_sequence,
-  [5639] = 7,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(367), 1,
-      anon_sym_LPAREN,
-    ACTIONS(369), 1,
-      sym_identifier,
-    STATE(137), 1,
-      sym_comment,
-    STATE(182), 1,
-      sym_typed_parameter,
-    STATE(215), 1,
-      sym_parameter_list,
-    STATE(217), 1,
-      sym__parameter,
-  [5661] = 6,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(371), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(373), 1,
-      aux_sym_string_token1,
-    ACTIONS(376), 1,
-      anon_sym_BSLASH,
-    STATE(165), 1,
-      sym_escape_sequence,
-    STATE(138), 2,
-      sym_comment,
-      aux_sym_string_repeat1,
-  [5681] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(139), 1,
-      sym_comment,
-    ACTIONS(379), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5694] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(140), 1,
-      sym_comment,
-    ACTIONS(381), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5707] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(141), 1,
-      sym_comment,
-    ACTIONS(383), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5720] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(142), 1,
-      sym_comment,
-    ACTIONS(385), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5733] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(143), 1,
-      sym_comment,
-    ACTIONS(387), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5746] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(144), 1,
-      sym_comment,
-    ACTIONS(389), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5759] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(145), 1,
-      sym_comment,
-    ACTIONS(391), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5772] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(393), 1,
-      anon_sym_COMMA,
-    ACTIONS(271), 2,
-      anon_sym_RPAREN,
-      anon_sym_RBRACK,
-    STATE(146), 2,
-      sym_comment,
-      aux_sym_function_call_repeat1,
-  [5787] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(147), 1,
-      sym_comment,
-    ACTIONS(396), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5800] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(398), 1,
-      anon_sym_COLON,
-    STATE(148), 1,
-      sym_comment,
-    ACTIONS(400), 3,
-      anon_sym_DASH_GT,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [5815] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(369), 1,
-      sym_identifier,
-    ACTIONS(402), 1,
-      anon_sym_RPAREN,
-    STATE(149), 1,
-      sym_comment,
-    STATE(179), 1,
-      sym__parameter,
-    STATE(182), 1,
-      sym_typed_parameter,
-  [5834] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(404), 1,
-      anon_sym_RBRACK,
-    STATE(146), 1,
-      aux_sym_function_call_repeat1,
-    STATE(150), 1,
-      sym_comment,
-  [5850] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(406), 1,
-      anon_sym_RPAREN,
-    ACTIONS(408), 1,
-      anon_sym_COMMA,
-    STATE(151), 2,
-      sym_comment,
-      aux_sym_parameter_list_repeat1,
-  [5864] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(411), 1,
-      anon_sym_RBRACE,
-    ACTIONS(413), 1,
-      sym_identifier,
-    STATE(152), 1,
-      sym_comment,
-    STATE(162), 1,
-      sym_table_field,
-  [5880] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(415), 1,
-      anon_sym_COMMA,
-    ACTIONS(418), 1,
-      anon_sym_RBRACE,
-    STATE(153), 2,
-      sym_comment,
-      aux_sym_table_pattern_repeat1,
-  [5894] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(420), 1,
-      anon_sym_RPAREN,
-    STATE(146), 1,
-      aux_sym_function_call_repeat1,
-    STATE(154), 1,
-      sym_comment,
-  [5910] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(155), 1,
-      sym_comment,
-    ACTIONS(422), 3,
-      anon_sym_DASH_GT,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [5922] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(424), 1,
-      anon_sym_RPAREN,
-    ACTIONS(426), 1,
-      anon_sym_COMMA,
-    STATE(156), 1,
-      sym_comment,
-    STATE(163), 1,
-      aux_sym_function_type_repeat1,
-  [5938] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(428), 1,
-      anon_sym_COMMA,
-    ACTIONS(430), 1,
-      anon_sym_RBRACE,
-    STATE(157), 1,
-      sym_comment,
-    STATE(181), 1,
-      aux_sym_table_expression_repeat1,
-  [5954] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(432), 1,
-      anon_sym_COMMA,
-    ACTIONS(434), 1,
-      anon_sym_RBRACE,
-    STATE(158), 1,
-      sym_comment,
-    STATE(166), 1,
-      aux_sym_table_type_repeat1,
-  [5970] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(436), 1,
-      anon_sym_RBRACK,
-    STATE(146), 1,
-      aux_sym_function_call_repeat1,
-    STATE(159), 1,
-      sym_comment,
-  [5986] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(438), 1,
-      anon_sym_COMMA,
-    ACTIONS(440), 1,
-      anon_sym_RBRACK,
-    STATE(160), 1,
-      sym_comment,
-    STATE(176), 1,
-      aux_sym_list_pattern_repeat1,
-  [6002] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(428), 1,
-      anon_sym_COMMA,
-    ACTIONS(442), 1,
-      anon_sym_RBRACE,
-    STATE(157), 1,
-      aux_sym_table_expression_repeat1,
-    STATE(161), 1,
-      sym_comment,
-  [6018] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(428), 1,
-      anon_sym_COMMA,
-    ACTIONS(444), 1,
-      anon_sym_RBRACE,
-    STATE(162), 1,
-      sym_comment,
-    STATE(173), 1,
-      aux_sym_table_expression_repeat1,
-  [6034] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(446), 1,
-      anon_sym_RPAREN,
-    ACTIONS(448), 1,
-      anon_sym_COMMA,
-    STATE(163), 2,
-      sym_comment,
-      aux_sym_function_type_repeat1,
-  [6048] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(413), 1,
-      sym_identifier,
-    ACTIONS(451), 1,
-      anon_sym_RBRACE,
-    STATE(161), 1,
-      sym_table_field,
-    STATE(164), 1,
-      sym_comment,
-  [6064] = 3,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(165), 1,
-      sym_comment,
-    ACTIONS(453), 3,
-      anon_sym_DQUOTE,
-      aux_sym_string_token1,
-      anon_sym_BSLASH,
-  [6076] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(455), 1,
-      anon_sym_COMMA,
-    ACTIONS(458), 1,
-      anon_sym_RBRACE,
-    STATE(166), 2,
-      sym_comment,
-      aux_sym_table_type_repeat1,
-  [6090] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(460), 1,
-      anon_sym_RBRACE,
-    ACTIONS(462), 1,
-      sym_identifier,
-    STATE(167), 1,
-      sym_comment,
-    STATE(172), 1,
-      sym_table_field_pattern,
-  [6106] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(464), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(466), 1,
-      sym_identifier,
-    STATE(168), 1,
-      sym_comment,
-    STATE(184), 1,
-      aux_sym_function_implementation_repeat1,
-  [6122] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(468), 1,
-      anon_sym_RPAREN,
-    ACTIONS(470), 1,
-      anon_sym_COMMA,
-    STATE(151), 1,
-      aux_sym_parameter_list_repeat1,
-    STATE(169), 1,
-      sym_comment,
-  [6138] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(369), 1,
-      sym_identifier,
-    STATE(170), 1,
-      sym_comment,
-    STATE(182), 1,
-      sym_typed_parameter,
-    STATE(190), 1,
-      sym__parameter,
-  [6154] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(426), 1,
-      anon_sym_COMMA,
-    ACTIONS(472), 1,
-      anon_sym_RPAREN,
-    STATE(156), 1,
-      aux_sym_function_type_repeat1,
-    STATE(171), 1,
-      sym_comment,
-  [6170] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(474), 1,
-      anon_sym_COMMA,
-    ACTIONS(476), 1,
-      anon_sym_RBRACE,
-    STATE(172), 1,
-      sym_comment,
-    STATE(174), 1,
-      aux_sym_table_pattern_repeat1,
-  [6186] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(428), 1,
-      anon_sym_COMMA,
-    ACTIONS(478), 1,
-      anon_sym_RBRACE,
-    STATE(173), 1,
-      sym_comment,
-    STATE(181), 1,
-      aux_sym_table_expression_repeat1,
-  [6202] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(474), 1,
-      anon_sym_COMMA,
-    ACTIONS(480), 1,
-      anon_sym_RBRACE,
-    STATE(153), 1,
-      aux_sym_table_pattern_repeat1,
-    STATE(174), 1,
-      sym_comment,
-  [6218] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(438), 1,
-      anon_sym_COMMA,
-    ACTIONS(482), 1,
-      anon_sym_RBRACK,
-    STATE(160), 1,
-      aux_sym_list_pattern_repeat1,
-    STATE(175), 1,
-      sym_comment,
-  [6234] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(484), 1,
-      anon_sym_COMMA,
-    ACTIONS(487), 1,
-      anon_sym_RBRACK,
-    STATE(176), 2,
-      sym_comment,
-      aux_sym_list_pattern_repeat1,
-  [6248] = 3,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(177), 1,
-      sym_comment,
-    ACTIONS(489), 3,
-      anon_sym_DQUOTE,
-      aux_sym_string_token1,
-      anon_sym_BSLASH,
-  [6260] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(275), 1,
-      anon_sym_COMMA,
-    ACTIONS(491), 1,
-      anon_sym_RPAREN,
-    STATE(146), 1,
-      aux_sym_function_call_repeat1,
-    STATE(178), 1,
-      sym_comment,
-  [6276] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(470), 1,
-      anon_sym_COMMA,
-    ACTIONS(493), 1,
-      anon_sym_RPAREN,
-    STATE(169), 1,
-      aux_sym_parameter_list_repeat1,
-    STATE(179), 1,
-      sym_comment,
-  [6292] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(432), 1,
-      anon_sym_COMMA,
-    ACTIONS(495), 1,
-      anon_sym_RBRACE,
-    STATE(158), 1,
-      aux_sym_table_type_repeat1,
-    STATE(180), 1,
-      sym_comment,
-  [6308] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(497), 1,
-      anon_sym_COMMA,
-    ACTIONS(500), 1,
-      anon_sym_RBRACE,
-    STATE(181), 2,
-      sym_comment,
-      aux_sym_table_expression_repeat1,
-  [6322] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(182), 1,
-      sym_comment,
-    ACTIONS(400), 3,
-      anon_sym_DASH_GT,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [6334] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(502), 1,
-      anon_sym_RBRACE,
-    ACTIONS(504), 1,
-      sym_identifier,
-    STATE(180), 1,
-      sym_table_type_field,
-    STATE(183), 1,
-      sym_comment,
-  [6350] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(506), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(508), 1,
-      sym_identifier,
-    STATE(184), 2,
-      sym_comment,
-      aux_sym_function_implementation_repeat1,
-  [6364] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(185), 1,
-      sym_comment,
-    ACTIONS(511), 2,
-      aux_sym_escape_sequence_token1,
-      aux_sym_escape_sequence_token2,
-  [6375] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(186), 1,
-      sym_comment,
-    ACTIONS(513), 2,
-      anon_sym_DASH_GT,
-      sym_identifier,
-  [6386] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(187), 1,
-      sym_comment,
-    ACTIONS(418), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6397] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(504), 1,
-      sym_identifier,
-    STATE(188), 1,
-      sym_comment,
-    STATE(193), 1,
-      sym_table_type_field,
-  [6410] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(189), 1,
-      sym_comment,
-    ACTIONS(446), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [6421] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(190), 1,
-      sym_comment,
-    ACTIONS(406), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [6432] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(191), 1,
-      sym_comment,
-    ACTIONS(500), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6443] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(192), 1,
-      sym_comment,
-    ACTIONS(515), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6454] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(193), 1,
-      sym_comment,
-    ACTIONS(458), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6465] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(462), 1,
-      sym_identifier,
-    STATE(187), 1,
-      sym_table_field_pattern,
-    STATE(194), 1,
-      sym_comment,
-  [6478] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(195), 1,
-      sym_comment,
-    ACTIONS(487), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-  [6489] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(413), 1,
-      sym_identifier,
-    STATE(191), 1,
-      sym_table_field,
-    STATE(196), 1,
-      sym_comment,
-  [6502] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(197), 1,
-      sym_comment,
-    ACTIONS(517), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6513] = 3,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(519), 1,
-      aux_sym_comment_token1,
-    STATE(198), 1,
-      sym_comment,
-  [6523] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(521), 1,
-      anon_sym_COLON,
-    STATE(199), 1,
-      sym_comment,
-  [6533] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(523), 1,
-      sym_identifier,
-    STATE(200), 1,
-      sym_comment,
-  [6543] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(525), 1,
-      anon_sym_DASH_GT,
-    STATE(201), 1,
-      sym_comment,
-  [6553] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(527), 1,
-      anon_sym_SEMI,
-    STATE(202), 1,
-      sym_comment,
-  [6563] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(529), 1,
-      anon_sym_then,
-    STATE(203), 1,
-      sym_comment,
-  [6573] = 3,
-    ACTIONS(359), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(531), 1,
-      aux_sym_comment_token1,
-    STATE(204), 1,
-      sym_comment,
-  [6583] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(533), 1,
-      anon_sym_COLON,
-    STATE(205), 1,
-      sym_comment,
-  [6593] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(535), 1,
-      anon_sym_DASH_GT,
-    STATE(206), 1,
-      sym_comment,
-  [6603] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(537), 1,
-      anon_sym_RBRACK,
-    STATE(207), 1,
-      sym_comment,
-  [6613] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(539), 1,
-      anon_sym_DASH_GT,
-    STATE(208), 1,
-      sym_comment,
-  [6623] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(541), 1,
-      anon_sym_DASH_GT,
-    STATE(209), 1,
-      sym_comment,
-  [6633] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(543), 1,
-      anon_sym_DASH_GT,
-    STATE(210), 1,
-      sym_comment,
-  [6643] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(545), 1,
-      anon_sym_DASH_GT,
-    STATE(211), 1,
-      sym_comment,
-  [6653] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(547), 1,
-      anon_sym_COLON,
-    STATE(212), 1,
-      sym_comment,
-  [6663] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(549), 1,
-      ts_builtin_sym_end,
-    STATE(213), 1,
-      sym_comment,
-  [6673] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(551), 1,
-      sym_identifier,
-    STATE(214), 1,
-      sym_comment,
-  [6683] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(553), 1,
-      anon_sym_DASH_GT,
-    STATE(215), 1,
-      sym_comment,
-  [6693] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(555), 1,
-      anon_sym_GT,
-    STATE(216), 1,
-      sym_comment,
-  [6703] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(557), 1,
-      anon_sym_DASH_GT,
-    STATE(217), 1,
-      sym_comment,
-  [6713] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(559), 1,
-      anon_sym_LT,
-    STATE(218), 1,
-      sym_comment,
-  [6723] = 1,
-    ACTIONS(317), 1,
-      ts_builtin_sym_end,
-};
-
-static const uint32_t ts_small_parse_table_map[] = {
-  [SMALL_STATE(2)] = 0,
-  [SMALL_STATE(3)] = 73,
-  [SMALL_STATE(4)] = 148,
-  [SMALL_STATE(5)] = 192,
-  [SMALL_STATE(6)] = 231,
-  [SMALL_STATE(7)] = 272,
-  [SMALL_STATE(8)] = 310,
-  [SMALL_STATE(9)] = 348,
-  [SMALL_STATE(10)] = 386,
-  [SMALL_STATE(11)] = 450,
-  [SMALL_STATE(12)] = 514,
-  [SMALL_STATE(13)] = 570,
-  [SMALL_STATE(14)] = 608,
-  [SMALL_STATE(15)] = 646,
-  [SMALL_STATE(16)] = 684,
-  [SMALL_STATE(17)] = 734,
-  [SMALL_STATE(18)] = 772,
-  [SMALL_STATE(19)] = 824,
-  [SMALL_STATE(20)] = 862,
-  [SMALL_STATE(21)] = 900,
-  [SMALL_STATE(22)] = 938,
-  [SMALL_STATE(23)] = 976,
-  [SMALL_STATE(24)] = 1014,
-  [SMALL_STATE(25)] = 1070,
-  [SMALL_STATE(26)] = 1108,
-  [SMALL_STATE(27)] = 1154,
-  [SMALL_STATE(28)] = 1198,
-  [SMALL_STATE(29)] = 1236,
-  [SMALL_STATE(30)] = 1300,
-  [SMALL_STATE(31)] = 1342,
-  [SMALL_STATE(32)] = 1382,
-  [SMALL_STATE(33)] = 1420,
-  [SMALL_STATE(34)] = 1458,
-  [SMALL_STATE(35)] = 1496,
-  [SMALL_STATE(36)] = 1534,
-  [SMALL_STATE(37)] = 1598,
-  [SMALL_STATE(38)] = 1659,
-  [SMALL_STATE(39)] = 1720,
-  [SMALL_STATE(40)] = 1781,
-  [SMALL_STATE(41)] = 1842,
-  [SMALL_STATE(42)] = 1903,
-  [SMALL_STATE(43)] = 1964,
-  [SMALL_STATE(44)] = 2025,
-  [SMALL_STATE(45)] = 2086,
-  [SMALL_STATE(46)] = 2147,
-  [SMALL_STATE(47)] = 2208,
-  [SMALL_STATE(48)] = 2269,
-  [SMALL_STATE(49)] = 2330,
-  [SMALL_STATE(50)] = 2391,
-  [SMALL_STATE(51)] = 2452,
-  [SMALL_STATE(52)] = 2513,
-  [SMALL_STATE(53)] = 2574,
-  [SMALL_STATE(54)] = 2635,
-  [SMALL_STATE(55)] = 2696,
-  [SMALL_STATE(56)] = 2757,
-  [SMALL_STATE(57)] = 2818,
-  [SMALL_STATE(58)] = 2879,
-  [SMALL_STATE(59)] = 2940,
-  [SMALL_STATE(60)] = 3001,
-  [SMALL_STATE(61)] = 3039,
-  [SMALL_STATE(62)] = 3072,
-  [SMALL_STATE(63)] = 3105,
-  [SMALL_STATE(64)] = 3138,
-  [SMALL_STATE(65)] = 3171,
-  [SMALL_STATE(66)] = 3204,
-  [SMALL_STATE(67)] = 3239,
-  [SMALL_STATE(68)] = 3271,
-  [SMALL_STATE(69)] = 3313,
-  [SMALL_STATE(70)] = 3357,
-  [SMALL_STATE(71)] = 3403,
-  [SMALL_STATE(72)] = 3443,
-  [SMALL_STATE(73)] = 3481,
-  [SMALL_STATE(74)] = 3517,
-  [SMALL_STATE(75)] = 3551,
-  [SMALL_STATE(76)] = 3583,
-  [SMALL_STATE(77)] = 3615,
-  [SMALL_STATE(78)] = 3647,
-  [SMALL_STATE(79)] = 3679,
-  [SMALL_STATE(80)] = 3711,
-  [SMALL_STATE(81)] = 3743,
-  [SMALL_STATE(82)] = 3795,
-  [SMALL_STATE(83)] = 3849,
-  [SMALL_STATE(84)] = 3881,
-  [SMALL_STATE(85)] = 3913,
-  [SMALL_STATE(86)] = 3945,
-  [SMALL_STATE(87)] = 3977,
-  [SMALL_STATE(88)] = 4025,
-  [SMALL_STATE(89)] = 4057,
-  [SMALL_STATE(90)] = 4089,
-  [SMALL_STATE(91)] = 4121,
-  [SMALL_STATE(92)] = 4172,
-  [SMALL_STATE(93)] = 4220,
-  [SMALL_STATE(94)] = 4265,
-  [SMALL_STATE(95)] = 4314,
-  [SMALL_STATE(96)] = 4359,
-  [SMALL_STATE(97)] = 4404,
-  [SMALL_STATE(98)] = 4453,
-  [SMALL_STATE(99)] = 4498,
-  [SMALL_STATE(100)] = 4547,
-  [SMALL_STATE(101)] = 4596,
-  [SMALL_STATE(102)] = 4638,
-  [SMALL_STATE(103)] = 4682,
-  [SMALL_STATE(104)] = 4721,
-  [SMALL_STATE(105)] = 4760,
-  [SMALL_STATE(106)] = 4803,
-  [SMALL_STATE(107)] = 4842,
-  [SMALL_STATE(108)] = 4885,
-  [SMALL_STATE(109)] = 4928,
-  [SMALL_STATE(110)] = 4971,
-  [SMALL_STATE(111)] = 5014,
-  [SMALL_STATE(112)] = 5053,
-  [SMALL_STATE(113)] = 5092,
-  [SMALL_STATE(114)] = 5131,
-  [SMALL_STATE(115)] = 5170,
-  [SMALL_STATE(116)] = 5209,
-  [SMALL_STATE(117)] = 5248,
-  [SMALL_STATE(118)] = 5272,
-  [SMALL_STATE(119)] = 5296,
-  [SMALL_STATE(120)] = 5320,
-  [SMALL_STATE(121)] = 5344,
-  [SMALL_STATE(122)] = 5368,
-  [SMALL_STATE(123)] = 5391,
-  [SMALL_STATE(124)] = 5407,
-  [SMALL_STATE(125)] = 5423,
-  [SMALL_STATE(126)] = 5439,
-  [SMALL_STATE(127)] = 5455,
-  [SMALL_STATE(128)] = 5471,
-  [SMALL_STATE(129)] = 5487,
-  [SMALL_STATE(130)] = 5503,
-  [SMALL_STATE(131)] = 5519,
-  [SMALL_STATE(132)] = 5535,
-  [SMALL_STATE(133)] = 5551,
-  [SMALL_STATE(134)] = 5573,
-  [SMALL_STATE(135)] = 5595,
-  [SMALL_STATE(136)] = 5617,
-  [SMALL_STATE(137)] = 5639,
-  [SMALL_STATE(138)] = 5661,
-  [SMALL_STATE(139)] = 5681,
-  [SMALL_STATE(140)] = 5694,
-  [SMALL_STATE(141)] = 5707,
-  [SMALL_STATE(142)] = 5720,
-  [SMALL_STATE(143)] = 5733,
-  [SMALL_STATE(144)] = 5746,
-  [SMALL_STATE(145)] = 5759,
-  [SMALL_STATE(146)] = 5772,
-  [SMALL_STATE(147)] = 5787,
-  [SMALL_STATE(148)] = 5800,
-  [SMALL_STATE(149)] = 5815,
-  [SMALL_STATE(150)] = 5834,
-  [SMALL_STATE(151)] = 5850,
-  [SMALL_STATE(152)] = 5864,
-  [SMALL_STATE(153)] = 5880,
-  [SMALL_STATE(154)] = 5894,
-  [SMALL_STATE(155)] = 5910,
-  [SMALL_STATE(156)] = 5922,
-  [SMALL_STATE(157)] = 5938,
-  [SMALL_STATE(158)] = 5954,
-  [SMALL_STATE(159)] = 5970,
-  [SMALL_STATE(160)] = 5986,
-  [SMALL_STATE(161)] = 6002,
-  [SMALL_STATE(162)] = 6018,
-  [SMALL_STATE(163)] = 6034,
-  [SMALL_STATE(164)] = 6048,
-  [SMALL_STATE(165)] = 6064,
-  [SMALL_STATE(166)] = 6076,
-  [SMALL_STATE(167)] = 6090,
-  [SMALL_STATE(168)] = 6106,
-  [SMALL_STATE(169)] = 6122,
-  [SMALL_STATE(170)] = 6138,
-  [SMALL_STATE(171)] = 6154,
-  [SMALL_STATE(172)] = 6170,
-  [SMALL_STATE(173)] = 6186,
-  [SMALL_STATE(174)] = 6202,
-  [SMALL_STATE(175)] = 6218,
-  [SMALL_STATE(176)] = 6234,
-  [SMALL_STATE(177)] = 6248,
-  [SMALL_STATE(178)] = 6260,
-  [SMALL_STATE(179)] = 6276,
-  [SMALL_STATE(180)] = 6292,
-  [SMALL_STATE(181)] = 6308,
-  [SMALL_STATE(182)] = 6322,
-  [SMALL_STATE(183)] = 6334,
-  [SMALL_STATE(184)] = 6350,
-  [SMALL_STATE(185)] = 6364,
-  [SMALL_STATE(186)] = 6375,
-  [SMALL_STATE(187)] = 6386,
-  [SMALL_STATE(188)] = 6397,
-  [SMALL_STATE(189)] = 6410,
-  [SMALL_STATE(190)] = 6421,
-  [SMALL_STATE(191)] = 6432,
-  [SMALL_STATE(192)] = 6443,
-  [SMALL_STATE(193)] = 6454,
-  [SMALL_STATE(194)] = 6465,
-  [SMALL_STATE(195)] = 6478,
-  [SMALL_STATE(196)] = 6489,
-  [SMALL_STATE(197)] = 6502,
-  [SMALL_STATE(198)] = 6513,
-  [SMALL_STATE(199)] = 6523,
-  [SMALL_STATE(200)] = 6533,
-  [SMALL_STATE(201)] = 6543,
-  [SMALL_STATE(202)] = 6553,
-  [SMALL_STATE(203)] = 6563,
-  [SMALL_STATE(204)] = 6573,
-  [SMALL_STATE(205)] = 6583,
-  [SMALL_STATE(206)] = 6593,
-  [SMALL_STATE(207)] = 6603,
-  [SMALL_STATE(208)] = 6613,
-  [SMALL_STATE(209)] = 6623,
-  [SMALL_STATE(210)] = 6633,
-  [SMALL_STATE(211)] = 6643,
-  [SMALL_STATE(212)] = 6653,
-  [SMALL_STATE(213)] = 6663,
-  [SMALL_STATE(214)] = 6673,
-  [SMALL_STATE(215)] = 6683,
-  [SMALL_STATE(216)] = 6693,
-  [SMALL_STATE(217)] = 6703,
-  [SMALL_STATE(218)] = 6713,
-  [SMALL_STATE(219)] = 6723,
-};
-
-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(198),
-  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0),
-  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
-  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57),
-  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
-  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
-  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
-  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
-  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64),
-  [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
-  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65),
-  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
-  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
-  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
-  [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2),
-  [33] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(48),
-  [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(57),
-  [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(10),
-  [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(152),
-  [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(59),
-  [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(133),
-  [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(64),
-  [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(64),
-  [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(65),
-  [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(67),
-  [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(68),
-  [66] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(204),
-  [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1),
-  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1),
-  [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
-  [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1),
-  [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214),
-  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_access, 3, .production_id = 3),
-  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_access, 3, .production_id = 3),
-  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3),
-  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3),
-  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 3),
-  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expression, 3),
-  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 2),
-  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 2),
-  [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
-  [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
-  [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
-  [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_when_pattern, 3, .production_id = 9),
-  [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_when_pattern, 3, .production_id = 9),
-  [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
-  [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
-  [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
-  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
-  [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
-  [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
-  [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40),
-  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
-  [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
-  [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1),
-  [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number, 1),
-  [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1),
-  [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1),
-  [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant, 1),
-  [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant, 1),
-  [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 4),
-  [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 4),
-  [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1),
-  [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1),
-  [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 3),
-  [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 3),
-  [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 2),
-  [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expression, 2),
-  [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 2),
-  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 2),
-  [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 1),
-  [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 1),
-  [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2),
-  [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2),
-  [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3),
-  [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3),
-  [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
-  [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 5, .production_id = 2),
-  [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 5, .production_id = 2),
-  [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 2),
-  [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 2),
-  [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 4),
-  [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 4),
-  [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 4),
-  [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expression, 4),
-  [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
-  [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
-  [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
-  [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
-  [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
-  [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
-  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
-  [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
-  [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
-  [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
-  [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
-  [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
-  [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200),
-  [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
-  [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186),
-  [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43),
-  [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
-  [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
-  [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
-  [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
-  [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
-  [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
-  [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2),
-  [231] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(98),
-  [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(147),
-  [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(92),
-  [240] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(167),
-  [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(133),
-  [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(64),
-  [249] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(64),
-  [252] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2), SHIFT_REPEAT(65),
-  [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
-  [257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98),
-  [259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147),
-  [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
-  [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
-  [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
-  [267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
-  [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
-  [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2),
-  [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
-  [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
-  [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
-  [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
-  [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
-  [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
-  [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201),
-  [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
-  [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183),
-  [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130),
-  [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218),
-  [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126),
-  [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_field, 3, .production_id = 5),
-  [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
-  [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
-  [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
-  [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
-  [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
-  [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_when_expression, 5, .production_id = 6),
-  [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_when_expression, 5, .production_id = 6),
-  [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2),
-  [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2),
-  [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2),
-  [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2),
-  [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_implementation, 5, .production_id = 8),
-  [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_implementation, 5, .production_id = 8),
-  [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 10),
-  [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 10),
-  [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 1),
-  [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 1),
-  [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_result_type, 4),
-  [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 5),
-  [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_type, 3),
-  [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1),
-  [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 2),
-  [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 4),
-  [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 6),
-  [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_type, 1),
-  [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 4),
-  [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 3),
-  [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
-  [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(165),
-  [357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185),
-  [359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198),
-  [361] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7),
-  [363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25),
-  [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
-  [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
-  [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
-  [371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2),
-  [373] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(165),
-  [376] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(185),
-  [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_pattern, 3),
-  [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_pattern, 2),
-  [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3),
-  [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 4),
-  [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_pattern, 4),
-  [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2),
-  [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_result_pattern, 2),
-  [393] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), SHIFT_REPEAT(56),
-  [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern, 1),
-  [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
-  [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter, 1),
-  [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206),
-  [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
-  [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2),
-  [408] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(170),
-  [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
-  [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
-  [415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_pattern_repeat1, 2), SHIFT_REPEAT(194),
-  [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_pattern_repeat1, 2),
-  [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
-  [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, .production_id = 7),
-  [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
-  [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
-  [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
-  [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
-  [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
-  [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
-  [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
-  [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
-  [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
-  [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
-  [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
-  [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_type_repeat1, 2),
-  [448] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_repeat1, 2), SHIFT_REPEAT(113),
-  [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
-  [453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1),
-  [455] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_type_repeat1, 2), SHIFT_REPEAT(188),
-  [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_type_repeat1, 2),
-  [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
-  [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
-  [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
-  [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
-  [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
-  [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
-  [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
-  [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
-  [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
-  [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
-  [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
-  [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
-  [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2), SHIFT_REPEAT(96),
-  [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2),
-  [489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_escape_sequence, 2),
-  [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
-  [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209),
-  [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
-  [497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_expression_repeat1, 2), SHIFT_REPEAT(196),
-  [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_expression_repeat1, 2),
-  [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
-  [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
-  [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_implementation_repeat1, 2),
-  [508] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_implementation_repeat1, 2), SHIFT_REPEAT(186),
-  [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
-  [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_implementation_repeat1, 1),
-  [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type_field, 3, .production_id = 5),
-  [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_field_pattern, 3, .production_id = 5),
-  [519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219),
-  [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
-  [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
-  [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
-  [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
-  [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
-  [531] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119),
-  [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
-  [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2),
-  [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
-  [539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4),
-  [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3),
-  [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
-  [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
-  [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
-  [549] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
-  [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
-  [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
-  [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
-  [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 1),
-  [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef _WIN32
-#define extern __declspec(dllexport)
-#endif
-
-extern const TSLanguage *tree_sitter_baba_yaga(void) {
-  static const TSLanguage language = {
-    .version = LANGUAGE_VERSION,
-    .symbol_count = SYMBOL_COUNT,
-    .alias_count = ALIAS_COUNT,
-    .token_count = TOKEN_COUNT,
-    .external_token_count = EXTERNAL_TOKEN_COUNT,
-    .state_count = STATE_COUNT,
-    .large_state_count = LARGE_STATE_COUNT,
-    .production_id_count = PRODUCTION_ID_COUNT,
-    .field_count = FIELD_COUNT,
-    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
-    .parse_table = &ts_parse_table[0][0],
-    .small_parse_table = ts_small_parse_table,
-    .small_parse_table_map = ts_small_parse_table_map,
-    .parse_actions = ts_parse_actions,
-    .symbol_names = ts_symbol_names,
-    .field_names = ts_field_names,
-    .field_map_slices = ts_field_map_slices,
-    .field_map_entries = ts_field_map_entries,
-    .symbol_metadata = ts_symbol_metadata,
-    .public_symbol_map = ts_symbol_map,
-    .alias_map = ts_non_terminal_alias_map,
-    .alias_sequences = &ts_alias_sequences[0][0],
-    .lex_modes = ts_lex_modes,
-    .lex_fn = ts_lex,
-    .primary_state_ids = ts_primary_state_ids,
-  };
-  return &language;
-}
-#ifdef __cplusplus
-}
-#endif
diff --git a/js/baba-yaga/dev/helix/src/tree_sitter/parser.h b/js/baba-yaga/dev/helix/src/tree_sitter/parser.h
deleted file mode 100644
index 2b14ac1..0000000
--- a/js/baba-yaga/dev/helix/src/tree_sitter/parser.h
+++ /dev/null
@@ -1,224 +0,0 @@
-#ifndef TREE_SITTER_PARSER_H_
-#define TREE_SITTER_PARSER_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-#define ts_builtin_sym_error ((TSSymbol)-1)
-#define ts_builtin_sym_end 0
-#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024
-
-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_
diff --git a/js/baba-yaga/dev/helix/test.baba b/js/baba-yaga/dev/helix/test.baba
deleted file mode 100644
index 4097f28..0000000
--- a/js/baba-yaga/dev/helix/test.baba
+++ /dev/null
@@ -1,20 +0,0 @@
-// Test file for Helix syntax highlighting
-add : Int -> Int -> Int;
-add(x, y) : x + y;
-
-// Test variables
-result : add(5, 3);
-name : "World";
-greeting : str.concat("Hello, ", name);
-
-// Test pattern matching
-check : when result is
-  8 then Ok("correct")
-  _ then Err("wrong");
-
-// Test list operations
-numbers : [1, 2, 3, 4, 5];
-doubled : map(x -> x * 2, numbers);
-
-// Test IO
-io.out(greeting);
diff --git a/js/baba-yaga/dev/helix/test/corpus/expressions.txt b/js/baba-yaga/dev/helix/test/corpus/expressions.txt
deleted file mode 100644
index 25ece22..0000000
--- a/js/baba-yaga/dev/helix/test/corpus/expressions.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-==================
-Function definitions and implementations
-==================
-
-add : (Int, Int) -> Int;
-add a b -> a + b;
-
-multiply : x -> y -> x * y;
-
----
-
-(program
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type))
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type))
-  (function_implementation
-    name: (identifier)
-    parameters: (identifier)
-    parameters: (identifier)
-    body: (binary_expression
-      left: (identifier)
-      operator: +
-      right: (identifier)))
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (identifier))
-    return_type: (function_type
-      parameters: (parameter_list
-        (identifier))
-      return_type: (binary_expression
-        left: (identifier)
-        operator: *
-        right: (identifier)))))
-
-==================
-When expressions
-==================
-
-result : when 5 is
-  0 then "zero"
-  _ then "other";
-
----
-
-(program
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (when_expression
-        subject: (number)
-        patterns: (when_pattern
-          pattern: (number)
-          result: (string))
-        patterns: (when_pattern
-          pattern: (wildcard_pattern)
-          result: (string))))))
-
-==================
-Function calls
-==================
-
-greet : String -> String;
-greet name -> str.concat "Hello, " name;
-
----
-
-(program
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type))
-  (function_implementation
-    name: (identifier)
-    parameters: (identifier)
-    body: (function_call
-      function: (member_access
-        object: (identifier)
-        member: (identifier))
-      arguments: (string)
-      arguments: (identifier))))
-
-==================
-Lists and tables
-==================
-
-numbers : [Int];
-numbers -> [1, 2, 3];
-
-config : {name: String, age: Int};
-config -> {name: "Alice", age: 30};
-
----
-
-(program
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (list_type
-        type: (primitive_type))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: ->
-      right: (list_expression
-        elements: (number)
-        elements: (number)
-        elements: (number))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (table_type
-        fields: (table_type_field
-          key: (identifier)
-          value: (primitive_type))
-        fields: (table_type_field
-          key: (identifier)
-          value: (primitive_type)))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: ->
-      right: (table_expression
-        fields: (table_field
-          key: (identifier)
-          value: (string))
-        fields: (table_field
-          key: (identifier)
-          value: (number))))))
-
-==================
-Comments
-==================
-
-// This is a comment
-add : (Int, Int) -> Int;
-
----
-
-(program
-  (comment)
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type))
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type)))
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/Cargo.toml b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/Cargo.toml
deleted file mode 100644
index af4cf16..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-name = "tree-sitter-baba-yaga"
-description = "baba-yaga grammar for the tree-sitter parsing library"
-version = "0.0.1"
-keywords = ["incremental", "parsing", "baba-yaga"]
-categories = ["parsing", "text-editors"]
-repository = "https://github.com/tree-sitter/tree-sitter-baba-yaga"
-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/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba-yaga.so b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba-yaga.so
deleted file mode 100755
index 0829432..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba-yaga.so
+++ /dev/null
Binary files differdiff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba.so b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba.so
deleted file mode 100755
index bc268e1..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/baba.so
+++ /dev/null
Binary files differdiff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/binding.gyp b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/binding.gyp
deleted file mode 100644
index 7f58e2f..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/binding.gyp
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "targets": [
-    {
-      "target_name": "tree_sitter_baba_yaga_binding",
-      "include_dirs": [
-        "<!(node -e \"require('nan')\")",
-        "src"
-      ],
-      "sources": [
-        "bindings/node/binding.cc",
-        "src/parser.c",
-        # If your language uses an external scanner, add it here.
-      ],
-      "cflags_c": [
-        "-std=c99",
-      ]
-    }
-  ]
-}
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/binding.cc b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/binding.cc
deleted file mode 100644
index 0f9c091..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/binding.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "tree_sitter/parser.h"
-#include <node.h>
-#include "nan.h"
-
-using namespace v8;
-
-extern "C" TSLanguage * tree_sitter_baba_yaga();
-
-namespace {
-
-NAN_METHOD(New) {}
-
-void Init(Local<Object> exports, Local<Object> module) {
-  Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(New);
-  tpl->SetClassName(Nan::New("Language").ToLocalChecked());
-  tpl->InstanceTemplate()->SetInternalFieldCount(1);
-
-  Local<Function> constructor = Nan::GetFunction(tpl).ToLocalChecked();
-  Local<Object> instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked();
-  Nan::SetInternalFieldPointer(instance, 0, tree_sitter_baba_yaga());
-
-  Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("baba_yaga").ToLocalChecked());
-  Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance);
-}
-
-NODE_MODULE(tree_sitter_baba_yaga_binding, Init)
-
-}  // namespace
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/index.js b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/index.js
deleted file mode 100644
index c0834d2..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/node/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-try {
-  module.exports = require("../../build/Release/tree_sitter_baba_yaga_binding");
-} catch (error1) {
-  if (error1.code !== 'MODULE_NOT_FOUND') {
-    throw error1;
-  }
-  try {
-    module.exports = require("../../build/Debug/tree_sitter_baba_yaga_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/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/build.rs b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/build.rs
deleted file mode 100644
index c6061f0..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/build.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-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/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/lib.rs b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/lib.rs
deleted file mode 100644
index ee044e3..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/bindings/rust/lib.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-//! This crate provides baba_yaga 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_baba_yaga::language()).expect("Error loading baba_yaga 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_baba_yaga() -> 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_baba_yaga() }
-}
-
-/// 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 baba_yaga language");
-    }
-}
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/grammar.js b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/grammar.js
deleted file mode 100644
index dd6e89e..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/grammar.js
+++ /dev/null
@@ -1,349 +0,0 @@
-const PREC = {
-  COMMENT: 1,
-  STRING: 2,
-  NUMBER: 3,
-  IDENTIFIER: 4,
-  FUNCTION_CALL: 5,
-  MEMBER_ACCESS: 6,
-  UNARY: 7,
-  MULTIPLICATIVE: 8,
-  ADDITIVE: 9,
-  COMPARISON: 10,
-  EQUALITY: 11,
-  LOGICAL_AND: 12,
-  LOGICAL_OR: 13,
-  LOGICAL_XOR: 14,
-  FUNCTION: 15,
-  WHEN: 16,
-  ASSIGNMENT: 17,
-  SEQUENCE: 18,
-};
-
-module.exports = grammar({
-  name: 'baba_yaga',
-
-  extras: $ => [
-    /\s/,
-    $.comment
-  ],
-
-  conflicts: $ => [
-    [$.function_definition, $.function_call]
-  ],
-
-  rules: {
-    // Main program structure
-    program: $ => repeat($._statement),
-
-    // Statements
-    _statement: $ => choice(
-      $.function_definition,
-      $.function_implementation,
-      $.when_expression,
-      $.expression_statement,
-      $.comment
-    ),
-
-    // Function definitions
-    function_definition: $ => seq(
-      field('name', $.identifier),
-      ':',
-      field('parameters', $.parameter_list),
-      '->',
-      field('return_type', $._type),
-      ';'
-    ),
-
-    // Function implementations
-    function_implementation: $ => seq(
-      field('name', $.identifier),
-      field('parameters', repeat1($.identifier)),
-      '->',
-      field('body', $._expression),
-      ';'
-    ),
-
-    parameter_list: $ => choice(
-      seq('(', ')'),
-      seq('(', commaSep($._parameter), ')'),
-      $._parameter
-    ),
-
-    _parameter: $ => choice(
-      $.identifier,
-      $.typed_parameter
-    ),
-
-    typed_parameter: $ => seq(
-      field('name', $.identifier),
-      ':',
-      field('type', $._type)
-    ),
-
-    // When expressions (pattern matching)
-    when_expression: $ => seq(
-      'when',
-      field('subject', $._expression),
-      'is',
-      field('patterns', repeat1($.when_pattern)),
-      ';'
-    ),
-
-    when_pattern: $ => seq(
-      field('pattern', $._pattern),
-      'then',
-      field('result', $._expression)
-    ),
-
-    _pattern: $ => choice(
-      $.string,
-      $.number,
-      $.boolean,
-      $.result_pattern,
-      $.wildcard_pattern,
-      $.list_pattern,
-      $.table_pattern,
-      $.identifier
-    ),
-
-    result_pattern: $ => choice(
-      seq('Ok', $._pattern),
-      seq('Err', $._pattern)
-    ),
-
-    wildcard_pattern: $ => '_',
-
-    list_pattern: $ => seq(
-      '[',
-      commaSep($._pattern),
-      ']'
-    ),
-
-    table_pattern: $ => seq(
-      '{',
-      commaSep($.table_field_pattern),
-      '}'
-    ),
-
-    table_field_pattern: $ => seq(
-      field('key', $.identifier),
-      ':',
-      field('value', $._pattern)
-    ),
-
-    // Expressions
-    _expression: $ => choice(
-      $.function_call,
-      $.member_access,
-      $.binary_expression,
-      $.unary_expression,
-      $.parenthesized_expression,
-      $.list_expression,
-      $.table_expression,
-      $.identifier,
-      $.literal
-    ),
-
-    // Function calls
-    function_call: $ => seq(
-      field('function', choice($.identifier, $.member_access)),
-      '(',
-      commaSep($._expression),
-      ')'
-    ),
-
-    // Member access (e.g., str.concat, math.abs)
-    member_access: $ => seq(
-      field('object', $.identifier),
-      '.',
-      field('member', $.identifier)
-    ),
-
-    // Binary expressions
-    binary_expression: $ => choice(
-      // Arithmetic
-      prec.left(PREC.ADDITIVE, seq(
-        field('left', $._expression),
-        choice('+', '-'),
-        field('right', $._expression)
-      )),
-      prec.left(PREC.MULTIPLICATIVE, seq(
-        field('left', $._expression),
-        choice('*', '/', '%'),
-        field('right', $._expression)
-      )),
-      // Comparison
-      prec.left(PREC.COMPARISON, seq(
-        field('left', $._expression),
-        choice('>', '<', '>=', '<='),
-        field('right', $._expression)
-      )),
-      // Equality
-      prec.left(PREC.EQUALITY, seq(
-        field('left', $._expression),
-        choice('=', '!='),
-        field('right', $._expression)
-      )),
-      // Logical
-      prec.left(PREC.LOGICAL_AND, seq(
-        field('left', $._expression),
-        'and',
-        field('right', $._expression)
-      )),
-      prec.left(PREC.LOGICAL_OR, seq(
-        field('left', $._expression),
-        'or',
-        field('right', $._expression)
-      )),
-      prec.left(PREC.LOGICAL_XOR, seq(
-        field('left', $._expression),
-        'xor',
-        field('right', $._expression)
-      )),
-      // String concatenation
-      prec.left(PREC.ADDITIVE, seq(
-        field('left', $._expression),
-        '..',
-        field('right', $._expression)
-      ))
-    ),
-
-    // Unary expressions
-    unary_expression: $ => prec(PREC.UNARY, seq(
-      choice('+', '-'),
-      field('operand', $._expression)
-    )),
-
-    // Parenthesized expressions
-    parenthesized_expression: $ => seq(
-      '(',
-      $._expression,
-      ')'
-    ),
-
-    // List expressions
-    list_expression: $ => seq(
-      '[',
-      commaSep($._expression),
-      ']'
-    ),
-
-    // Table expressions
-    table_expression: $ => seq(
-      '{',
-      commaSep($.table_field),
-      '}'
-    ),
-
-    table_field: $ => seq(
-      field('key', $.identifier),
-      ':',
-      field('value', $._expression)
-    ),
-
-    // Expression statements
-    expression_statement: $ => seq(
-      $._expression,
-      ';'
-    ),
-
-    // Types
-    _type: $ => choice(
-      $.primitive_type,
-      $.list_type,
-      $.table_type,
-      $.result_type,
-      $.function_type,
-      $.identifier
-    ),
-
-    primitive_type: $ => choice(
-      'Bool',
-      'Int',
-      'Float',
-      'String',
-      'Number'
-    ),
-
-    list_type: $ => seq(
-      '[',
-      $._type,
-      ']'
-    ),
-
-    table_type: $ => seq(
-      '{',
-      commaSep($.table_type_field),
-      '}'
-    ),
-
-    table_type_field: $ => seq(
-      field('key', $.identifier),
-      ':',
-      field('value', $._type)
-    ),
-
-    result_type: $ => seq(
-      'Result',
-      '<',
-      $._type,
-      '>'
-    ),
-
-    function_type: $ => prec.right(PREC.FUNCTION, seq(
-      $._type,
-      '->',
-      $._type
-    )),
-    // Literals
-    literal: $ => choice(
-      $.string,
-      $.number,
-      $.boolean,
-      $.constant
-    ),
-
-    string: $ => seq(
-      '"',
-      repeat(choice(
-        /[^"\\]/,
-        $.escape_sequence
-      )),
-      '"'
-    ),
-
-    escape_sequence: $ => seq(
-      '\\',
-      choice(
-        /[\\"nrt]/,
-        /u[0-9a-fA-F]{4}/
-      )
-    ),
-
-    number: $ => choice(
-      /[0-9]+/,
-      /[0-9]+\.[0-9]+/
-    ),
-
-    boolean: $ => choice('true', 'false'),
-
-    constant: $ => choice('PI', 'INFINITY'),
-
-    // Identifiers
-    identifier: $ => /[a-zA-Z_][a-zA-Z0-9_]*/,
-
-    // Comments
-    comment: $ => seq(
-      '//',
-      /.*/
-    )
-  }
-});
-
-function commaSep(rule) {
-  return optional(commaSep1(rule));
-}
-
-function commaSep1(rule) {
-  return seq(rule, repeat(seq(',', rule)));
-}
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package-lock.json b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package-lock.json
deleted file mode 100644
index bf12190..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package-lock.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "name": "tree-sitter-baba-yaga",
-  "version": "1.0.0",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "": {
-      "name": "tree-sitter-baba-yaga",
-      "version": "1.0.0",
-      "license": "MIT",
-      "dependencies": {
-        "tree-sitter": "^0.25.0"
-      },
-      "devDependencies": {
-        "tree-sitter-cli": "^0.20.8"
-      }
-    },
-    "node_modules/node-addon-api": {
-      "version": "8.5.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz",
-      "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==",
-      "engines": {
-        "node": "^18 || ^20 || >= 21"
-      }
-    },
-    "node_modules/node-gyp-build": {
-      "version": "4.8.4",
-      "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
-      "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
-      "bin": {
-        "node-gyp-build": "bin.js",
-        "node-gyp-build-optional": "optional.js",
-        "node-gyp-build-test": "build-test.js"
-      }
-    },
-    "node_modules/tree-sitter": {
-      "version": "0.25.0",
-      "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.25.0.tgz",
-      "integrity": "sha512-PGZZzFW63eElZJDe/b/R/LbsjDDYJa5UEjLZJB59RQsMX+fo0j54fqBPn1MGKav/QNa0JR0zBiVaikYDWCj5KQ==",
-      "hasInstallScript": true,
-      "dependencies": {
-        "node-addon-api": "^8.3.0",
-        "node-gyp-build": "^4.8.4"
-      }
-    },
-    "node_modules/tree-sitter-cli": {
-      "version": "0.20.8",
-      "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.20.8.tgz",
-      "integrity": "sha512-XjTcS3wdTy/2cc/ptMLc/WRyOLECRYcMTrSWyhZnj1oGSOWbHLTklgsgRICU3cPfb0vy+oZCC33M43u6R1HSCA==",
-      "dev": true,
-      "hasInstallScript": true,
-      "bin": {
-        "tree-sitter": "cli.js"
-      }
-    }
-  }
-}
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package.json b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package.json
deleted file mode 100644
index dc69fa1..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "name": "tree-sitter-baba-yaga",
-  "version": "1.0.0",
-  "description": "Tree-sitter grammar for Baba Yaga programming language",
-  "main": "grammar.js",
-  "scripts": {
-    "generate": "tree-sitter generate",
-    "test": "tree-sitter test",
-    "parse": "tree-sitter parse",
-    "build": "npm run generate && npm run test"
-  },
-  "devDependencies": {
-    "tree-sitter-cli": "^0.20.8"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/baba-yaga/tree-sitter-baba-yaga.git"
-  },
-  "keywords": [
-    "tree-sitter",
-    "baba-yaga",
-    "grammar",
-    "parser"
-  ],
-  "author": "Baba Yaga Language Team",
-  "license": "MIT",
-  "dependencies": {
-    "tree-sitter": "^0.25.0"
-  }
-}
-
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/grammar.json b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/grammar.json
deleted file mode 100644
index 544a6c5..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/grammar.json
+++ /dev/null
@@ -1,1399 +0,0 @@
-{
-  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
-  "name": "baba_yaga",
-  "rules": {
-    "program": {
-      "type": "REPEAT",
-      "content": {
-        "type": "SYMBOL",
-        "name": "_statement"
-      }
-    },
-    "_statement": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "function_definition"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "function_implementation"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "when_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "expression_statement"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "comment"
-        }
-      ]
-    },
-    "function_definition": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "name",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "parameters",
-          "content": {
-            "type": "SYMBOL",
-            "name": "parameter_list"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "->"
-        },
-        {
-          "type": "FIELD",
-          "name": "return_type",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "function_implementation": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "name",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "FIELD",
-          "name": "parameters",
-          "content": {
-            "type": "REPEAT1",
-            "content": {
-              "type": "SYMBOL",
-              "name": "identifier"
-            }
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "->"
-        },
-        {
-          "type": "FIELD",
-          "name": "body",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "parameter_list": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "("
-            },
-            {
-              "type": "STRING",
-              "value": ")"
-            }
-          ]
-        },
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "("
-            },
-            {
-              "type": "CHOICE",
-              "members": [
-                {
-                  "type": "SEQ",
-                  "members": [
-                    {
-                      "type": "SYMBOL",
-                      "name": "_parameter"
-                    },
-                    {
-                      "type": "REPEAT",
-                      "content": {
-                        "type": "SEQ",
-                        "members": [
-                          {
-                            "type": "STRING",
-                            "value": ","
-                          },
-                          {
-                            "type": "SYMBOL",
-                            "name": "_parameter"
-                          }
-                        ]
-                      }
-                    }
-                  ]
-                },
-                {
-                  "type": "BLANK"
-                }
-              ]
-            },
-            {
-              "type": "STRING",
-              "value": ")"
-            }
-          ]
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_parameter"
-        }
-      ]
-    },
-    "_parameter": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "typed_parameter"
-        }
-      ]
-    },
-    "typed_parameter": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "name",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "type",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        }
-      ]
-    },
-    "when_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "when"
-        },
-        {
-          "type": "FIELD",
-          "name": "subject",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "is"
-        },
-        {
-          "type": "FIELD",
-          "name": "patterns",
-          "content": {
-            "type": "REPEAT1",
-            "content": {
-              "type": "SYMBOL",
-              "name": "when_pattern"
-            }
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "when_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "pattern",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_pattern"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "then"
-        },
-        {
-          "type": "FIELD",
-          "name": "result",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        }
-      ]
-    },
-    "_pattern": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "string"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "number"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "boolean"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "result_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "wildcard_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "list_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "table_pattern"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        }
-      ]
-    },
-    "result_pattern": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "Ok"
-            },
-            {
-              "type": "SYMBOL",
-              "name": "_pattern"
-            }
-          ]
-        },
-        {
-          "type": "SEQ",
-          "members": [
-            {
-              "type": "STRING",
-              "value": "Err"
-            },
-            {
-              "type": "SYMBOL",
-              "name": "_pattern"
-            }
-          ]
-        }
-      ]
-    },
-    "wildcard_pattern": {
-      "type": "STRING",
-      "value": "_"
-    },
-    "list_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "["
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "_pattern"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "_pattern"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "]"
-        }
-      ]
-    },
-    "table_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "{"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "table_field_pattern"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "table_field_pattern"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "}"
-        }
-      ]
-    },
-    "table_field_pattern": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "key",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "value",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_pattern"
-          }
-        }
-      ]
-    },
-    "_expression": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "function_call"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "member_access"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "binary_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "unary_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "parenthesized_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "list_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "table_expression"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "literal"
-        }
-      ]
-    },
-    "function_call": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "function",
-          "content": {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "SYMBOL",
-                "name": "identifier"
-              },
-              {
-                "type": "SYMBOL",
-                "name": "member_access"
-              }
-            ]
-          }
-        },
-        {
-          "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": ")"
-        }
-      ]
-    },
-    "member_access": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "object",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "."
-        },
-        {
-          "type": "FIELD",
-          "name": "member",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        }
-      ]
-    },
-    "binary_expression": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "PREC_LEFT",
-          "value": 9,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": "+"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "-"
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 8,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": "*"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "/"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "%"
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 10,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": ">"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "<"
-                  },
-                  {
-                    "type": "STRING",
-                    "value": ">="
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "<="
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 11,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "CHOICE",
-                "members": [
-                  {
-                    "type": "STRING",
-                    "value": "="
-                  },
-                  {
-                    "type": "STRING",
-                    "value": "!="
-                  }
-                ]
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 12,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": "and"
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 13,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": "or"
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 14,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": "xor"
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        },
-        {
-          "type": "PREC_LEFT",
-          "value": 9,
-          "content": {
-            "type": "SEQ",
-            "members": [
-              {
-                "type": "FIELD",
-                "name": "left",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              },
-              {
-                "type": "STRING",
-                "value": ".."
-              },
-              {
-                "type": "FIELD",
-                "name": "right",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                }
-              }
-            ]
-          }
-        }
-      ]
-    },
-    "unary_expression": {
-      "type": "PREC",
-      "value": 7,
-      "content": {
-        "type": "SEQ",
-        "members": [
-          {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "STRING",
-                "value": "+"
-              },
-              {
-                "type": "STRING",
-                "value": "-"
-              }
-            ]
-          },
-          {
-            "type": "FIELD",
-            "name": "operand",
-            "content": {
-              "type": "SYMBOL",
-              "name": "_expression"
-            }
-          }
-        ]
-      }
-    },
-    "parenthesized_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "("
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_expression"
-        },
-        {
-          "type": "STRING",
-          "value": ")"
-        }
-      ]
-    },
-    "list_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "["
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "_expression"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "_expression"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "]"
-        }
-      ]
-    },
-    "table_expression": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "{"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "table_field"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "table_field"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "}"
-        }
-      ]
-    },
-    "table_field": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "key",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "value",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_expression"
-          }
-        }
-      ]
-    },
-    "expression_statement": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "_expression"
-        },
-        {
-          "type": "STRING",
-          "value": ";"
-        }
-      ]
-    },
-    "_type": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "primitive_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "list_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "table_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "result_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "function_type"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "identifier"
-        }
-      ]
-    },
-    "primitive_type": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "Bool"
-        },
-        {
-          "type": "STRING",
-          "value": "Int"
-        },
-        {
-          "type": "STRING",
-          "value": "Float"
-        },
-        {
-          "type": "STRING",
-          "value": "String"
-        },
-        {
-          "type": "STRING",
-          "value": "Number"
-        }
-      ]
-    },
-    "list_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "["
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_type"
-        },
-        {
-          "type": "STRING",
-          "value": "]"
-        }
-      ]
-    },
-    "table_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "{"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "SEQ",
-              "members": [
-                {
-                  "type": "SYMBOL",
-                  "name": "table_type_field"
-                },
-                {
-                  "type": "REPEAT",
-                  "content": {
-                    "type": "SEQ",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": ","
-                      },
-                      {
-                        "type": "SYMBOL",
-                        "name": "table_type_field"
-                      }
-                    ]
-                  }
-                }
-              ]
-            },
-            {
-              "type": "BLANK"
-            }
-          ]
-        },
-        {
-          "type": "STRING",
-          "value": "}"
-        }
-      ]
-    },
-    "table_type_field": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "FIELD",
-          "name": "key",
-          "content": {
-            "type": "SYMBOL",
-            "name": "identifier"
-          }
-        },
-        {
-          "type": "STRING",
-          "value": ":"
-        },
-        {
-          "type": "FIELD",
-          "name": "value",
-          "content": {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        }
-      ]
-    },
-    "result_type": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "Result"
-        },
-        {
-          "type": "STRING",
-          "value": "<"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "_type"
-        },
-        {
-          "type": "STRING",
-          "value": ">"
-        }
-      ]
-    },
-    "function_type": {
-      "type": "PREC_RIGHT",
-      "value": 15,
-      "content": {
-        "type": "SEQ",
-        "members": [
-          {
-            "type": "SYMBOL",
-            "name": "_type"
-          },
-          {
-            "type": "STRING",
-            "value": "->"
-          },
-          {
-            "type": "SYMBOL",
-            "name": "_type"
-          }
-        ]
-      }
-    },
-    "literal": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "SYMBOL",
-          "name": "string"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "number"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "boolean"
-        },
-        {
-          "type": "SYMBOL",
-          "name": "constant"
-        }
-      ]
-    },
-    "string": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "\""
-        },
-        {
-          "type": "REPEAT",
-          "content": {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "PATTERN",
-                "value": "[^\"\\\\]"
-              },
-              {
-                "type": "SYMBOL",
-                "name": "escape_sequence"
-              }
-            ]
-          }
-        },
-        {
-          "type": "STRING",
-          "value": "\""
-        }
-      ]
-    },
-    "escape_sequence": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "\\"
-        },
-        {
-          "type": "CHOICE",
-          "members": [
-            {
-              "type": "PATTERN",
-              "value": "[\\\\\"nrt]"
-            },
-            {
-              "type": "PATTERN",
-              "value": "u[0-9a-fA-F]{4}"
-            }
-          ]
-        }
-      ]
-    },
-    "number": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "PATTERN",
-          "value": "[0-9]+"
-        },
-        {
-          "type": "PATTERN",
-          "value": "[0-9]+\\.[0-9]+"
-        }
-      ]
-    },
-    "boolean": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "true"
-        },
-        {
-          "type": "STRING",
-          "value": "false"
-        }
-      ]
-    },
-    "constant": {
-      "type": "CHOICE",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "PI"
-        },
-        {
-          "type": "STRING",
-          "value": "INFINITY"
-        }
-      ]
-    },
-    "identifier": {
-      "type": "PATTERN",
-      "value": "[a-zA-Z_][a-zA-Z0-9_]*"
-    },
-    "comment": {
-      "type": "SEQ",
-      "members": [
-        {
-          "type": "STRING",
-          "value": "//"
-        },
-        {
-          "type": "PATTERN",
-          "value": ".*"
-        }
-      ]
-    }
-  },
-  "extras": [
-    {
-      "type": "PATTERN",
-      "value": "\\s"
-    },
-    {
-      "type": "SYMBOL",
-      "name": "comment"
-    }
-  ],
-  "conflicts": [
-    [
-      "function_definition",
-      "function_call"
-    ]
-  ],
-  "precedences": [],
-  "externals": [],
-  "inline": [],
-  "supertypes": [],
-  "reserved": {}
-}
\ No newline at end of file
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/node-types.json b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/node-types.json
deleted file mode 100644
index da7aae4..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/node-types.json
+++ /dev/null
@@ -1,1385 +0,0 @@
-[
-  {
-    "type": "binary_expression",
-    "named": true,
-    "fields": {
-      "left": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      },
-      "right": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "boolean",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "comment",
-    "named": true,
-    "extra": true,
-    "fields": {}
-  },
-  {
-    "type": "constant",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "escape_sequence",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "expression_statement",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "function_call",
-    "named": true,
-    "fields": {
-      "function": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          }
-        ]
-      }
-    },
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "function_definition",
-    "named": true,
-    "fields": {
-      "name": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "parameters": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "parameter_list",
-            "named": true
-          }
-        ]
-      },
-      "return_type": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "function_type",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_type",
-            "named": true
-          },
-          {
-            "type": "primitive_type",
-            "named": true
-          },
-          {
-            "type": "result_type",
-            "named": true
-          },
-          {
-            "type": "table_type",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "function_implementation",
-    "named": true,
-    "fields": {
-      "body": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      },
-      "name": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "parameters": {
-        "multiple": true,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "function_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": true,
-      "types": [
-        {
-          "type": "function_type",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_type",
-          "named": true
-        },
-        {
-          "type": "primitive_type",
-          "named": true
-        },
-        {
-          "type": "result_type",
-          "named": true
-        },
-        {
-          "type": "table_type",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "list_expression",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "list_pattern",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "boolean",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_pattern",
-          "named": true
-        },
-        {
-          "type": "number",
-          "named": true
-        },
-        {
-          "type": "result_pattern",
-          "named": true
-        },
-        {
-          "type": "string",
-          "named": true
-        },
-        {
-          "type": "table_pattern",
-          "named": true
-        },
-        {
-          "type": "wildcard_pattern",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "list_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "function_type",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_type",
-          "named": true
-        },
-        {
-          "type": "primitive_type",
-          "named": true
-        },
-        {
-          "type": "result_type",
-          "named": true
-        },
-        {
-          "type": "table_type",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "literal",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "boolean",
-          "named": true
-        },
-        {
-          "type": "constant",
-          "named": true
-        },
-        {
-          "type": "number",
-          "named": true
-        },
-        {
-          "type": "string",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "member_access",
-    "named": true,
-    "fields": {
-      "member": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "object": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "number",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "parameter_list",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "typed_parameter",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "parenthesized_expression",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "binary_expression",
-          "named": true
-        },
-        {
-          "type": "function_call",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_expression",
-          "named": true
-        },
-        {
-          "type": "literal",
-          "named": true
-        },
-        {
-          "type": "member_access",
-          "named": true
-        },
-        {
-          "type": "parenthesized_expression",
-          "named": true
-        },
-        {
-          "type": "table_expression",
-          "named": true
-        },
-        {
-          "type": "unary_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "primitive_type",
-    "named": true,
-    "fields": {}
-  },
-  {
-    "type": "program",
-    "named": true,
-    "root": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "comment",
-          "named": true
-        },
-        {
-          "type": "expression_statement",
-          "named": true
-        },
-        {
-          "type": "function_definition",
-          "named": true
-        },
-        {
-          "type": "function_implementation",
-          "named": true
-        },
-        {
-          "type": "when_expression",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "result_pattern",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "boolean",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_pattern",
-          "named": true
-        },
-        {
-          "type": "number",
-          "named": true
-        },
-        {
-          "type": "result_pattern",
-          "named": true
-        },
-        {
-          "type": "string",
-          "named": true
-        },
-        {
-          "type": "table_pattern",
-          "named": true
-        },
-        {
-          "type": "wildcard_pattern",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "result_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": false,
-      "required": true,
-      "types": [
-        {
-          "type": "function_type",
-          "named": true
-        },
-        {
-          "type": "identifier",
-          "named": true
-        },
-        {
-          "type": "list_type",
-          "named": true
-        },
-        {
-          "type": "primitive_type",
-          "named": true
-        },
-        {
-          "type": "result_type",
-          "named": true
-        },
-        {
-          "type": "table_type",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "string",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "escape_sequence",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_expression",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "table_field",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_field",
-    "named": true,
-    "fields": {
-      "key": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "value": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "table_field_pattern",
-    "named": true,
-    "fields": {
-      "key": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "value": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "boolean",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_pattern",
-            "named": true
-          },
-          {
-            "type": "number",
-            "named": true
-          },
-          {
-            "type": "result_pattern",
-            "named": true
-          },
-          {
-            "type": "string",
-            "named": true
-          },
-          {
-            "type": "table_pattern",
-            "named": true
-          },
-          {
-            "type": "wildcard_pattern",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "table_pattern",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "table_field_pattern",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_type",
-    "named": true,
-    "fields": {},
-    "children": {
-      "multiple": true,
-      "required": false,
-      "types": [
-        {
-          "type": "table_type_field",
-          "named": true
-        }
-      ]
-    }
-  },
-  {
-    "type": "table_type_field",
-    "named": true,
-    "fields": {
-      "key": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "value": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "function_type",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_type",
-            "named": true
-          },
-          {
-            "type": "primitive_type",
-            "named": true
-          },
-          {
-            "type": "result_type",
-            "named": true
-          },
-          {
-            "type": "table_type",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "typed_parameter",
-    "named": true,
-    "fields": {
-      "name": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "identifier",
-            "named": true
-          }
-        ]
-      },
-      "type": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "function_type",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_type",
-            "named": true
-          },
-          {
-            "type": "primitive_type",
-            "named": true
-          },
-          {
-            "type": "result_type",
-            "named": true
-          },
-          {
-            "type": "table_type",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "unary_expression",
-    "named": true,
-    "fields": {
-      "operand": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "when_expression",
-    "named": true,
-    "fields": {
-      "patterns": {
-        "multiple": true,
-        "required": true,
-        "types": [
-          {
-            "type": "when_pattern",
-            "named": true
-          }
-        ]
-      },
-      "subject": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "when_pattern",
-    "named": true,
-    "fields": {
-      "pattern": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "boolean",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_pattern",
-            "named": true
-          },
-          {
-            "type": "number",
-            "named": true
-          },
-          {
-            "type": "result_pattern",
-            "named": true
-          },
-          {
-            "type": "string",
-            "named": true
-          },
-          {
-            "type": "table_pattern",
-            "named": true
-          },
-          {
-            "type": "wildcard_pattern",
-            "named": true
-          }
-        ]
-      },
-      "result": {
-        "multiple": false,
-        "required": true,
-        "types": [
-          {
-            "type": "binary_expression",
-            "named": true
-          },
-          {
-            "type": "function_call",
-            "named": true
-          },
-          {
-            "type": "identifier",
-            "named": true
-          },
-          {
-            "type": "list_expression",
-            "named": true
-          },
-          {
-            "type": "literal",
-            "named": true
-          },
-          {
-            "type": "member_access",
-            "named": true
-          },
-          {
-            "type": "parenthesized_expression",
-            "named": true
-          },
-          {
-            "type": "table_expression",
-            "named": true
-          },
-          {
-            "type": "unary_expression",
-            "named": true
-          }
-        ]
-      }
-    }
-  },
-  {
-    "type": "!=",
-    "named": false
-  },
-  {
-    "type": "\"",
-    "named": false
-  },
-  {
-    "type": "%",
-    "named": false
-  },
-  {
-    "type": "(",
-    "named": false
-  },
-  {
-    "type": ")",
-    "named": false
-  },
-  {
-    "type": "*",
-    "named": false
-  },
-  {
-    "type": "+",
-    "named": false
-  },
-  {
-    "type": ",",
-    "named": false
-  },
-  {
-    "type": "-",
-    "named": false
-  },
-  {
-    "type": "->",
-    "named": false
-  },
-  {
-    "type": ".",
-    "named": false
-  },
-  {
-    "type": "..",
-    "named": false
-  },
-  {
-    "type": "/",
-    "named": false
-  },
-  {
-    "type": "//",
-    "named": false
-  },
-  {
-    "type": ":",
-    "named": false
-  },
-  {
-    "type": ";",
-    "named": false
-  },
-  {
-    "type": "<",
-    "named": false
-  },
-  {
-    "type": "<=",
-    "named": false
-  },
-  {
-    "type": "=",
-    "named": false
-  },
-  {
-    "type": ">",
-    "named": false
-  },
-  {
-    "type": ">=",
-    "named": false
-  },
-  {
-    "type": "Bool",
-    "named": false
-  },
-  {
-    "type": "Err",
-    "named": false
-  },
-  {
-    "type": "Float",
-    "named": false
-  },
-  {
-    "type": "INFINITY",
-    "named": false
-  },
-  {
-    "type": "Int",
-    "named": false
-  },
-  {
-    "type": "Number",
-    "named": false
-  },
-  {
-    "type": "Ok",
-    "named": false
-  },
-  {
-    "type": "PI",
-    "named": false
-  },
-  {
-    "type": "Result",
-    "named": false
-  },
-  {
-    "type": "String",
-    "named": false
-  },
-  {
-    "type": "[",
-    "named": false
-  },
-  {
-    "type": "\\",
-    "named": false
-  },
-  {
-    "type": "]",
-    "named": false
-  },
-  {
-    "type": "and",
-    "named": false
-  },
-  {
-    "type": "false",
-    "named": false
-  },
-  {
-    "type": "identifier",
-    "named": true
-  },
-  {
-    "type": "is",
-    "named": false
-  },
-  {
-    "type": "or",
-    "named": false
-  },
-  {
-    "type": "then",
-    "named": false
-  },
-  {
-    "type": "true",
-    "named": false
-  },
-  {
-    "type": "when",
-    "named": false
-  },
-  {
-    "type": "wildcard_pattern",
-    "named": true
-  },
-  {
-    "type": "xor",
-    "named": false
-  },
-  {
-    "type": "{",
-    "named": false
-  },
-  {
-    "type": "}",
-    "named": false
-  }
-]
\ No newline at end of file
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/parser.c b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/parser.c
deleted file mode 100644
index 0cdab65..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/parser.c
+++ /dev/null
@@ -1,8039 +0,0 @@
-/* Automatically @generated by tree-sitter v0.25.8 */
-
-#include "tree_sitter/parser.h"
-
-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#endif
-
-#define LANGUAGE_VERSION 14
-#define STATE_COUNT 207
-#define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 101
-#define ALIAS_COUNT 0
-#define TOKEN_COUNT 53
-#define EXTERNAL_TOKEN_COUNT 0
-#define FIELD_COUNT 17
-#define MAX_ALIAS_SEQUENCE_LENGTH 6
-#define MAX_RESERVED_WORD_SET_SIZE 0
-#define PRODUCTION_ID_COUNT 11
-#define SUPERTYPE_COUNT 0
-
-enum ts_symbol_identifiers {
-  anon_sym_COLON = 1,
-  anon_sym_DASH_GT = 2,
-  anon_sym_SEMI = 3,
-  anon_sym_LPAREN = 4,
-  anon_sym_RPAREN = 5,
-  anon_sym_COMMA = 6,
-  anon_sym_when = 7,
-  anon_sym_is = 8,
-  anon_sym_then = 9,
-  anon_sym_Ok = 10,
-  anon_sym_Err = 11,
-  sym_wildcard_pattern = 12,
-  anon_sym_LBRACK = 13,
-  anon_sym_RBRACK = 14,
-  anon_sym_LBRACE = 15,
-  anon_sym_RBRACE = 16,
-  anon_sym_DOT = 17,
-  anon_sym_PLUS = 18,
-  anon_sym_DASH = 19,
-  anon_sym_STAR = 20,
-  anon_sym_SLASH = 21,
-  anon_sym_PERCENT = 22,
-  anon_sym_GT = 23,
-  anon_sym_LT = 24,
-  anon_sym_GT_EQ = 25,
-  anon_sym_LT_EQ = 26,
-  anon_sym_EQ = 27,
-  anon_sym_BANG_EQ = 28,
-  anon_sym_and = 29,
-  anon_sym_or = 30,
-  anon_sym_xor = 31,
-  anon_sym_DOT_DOT = 32,
-  anon_sym_Bool = 33,
-  anon_sym_Int = 34,
-  anon_sym_Float = 35,
-  anon_sym_String = 36,
-  anon_sym_Number = 37,
-  anon_sym_Result = 38,
-  anon_sym_DQUOTE = 39,
-  aux_sym_string_token1 = 40,
-  anon_sym_BSLASH = 41,
-  aux_sym_escape_sequence_token1 = 42,
-  aux_sym_escape_sequence_token2 = 43,
-  aux_sym_number_token1 = 44,
-  aux_sym_number_token2 = 45,
-  anon_sym_true = 46,
-  anon_sym_false = 47,
-  anon_sym_PI = 48,
-  anon_sym_INFINITY = 49,
-  sym_identifier = 50,
-  anon_sym_SLASH_SLASH = 51,
-  aux_sym_comment_token1 = 52,
-  sym_program = 53,
-  sym__statement = 54,
-  sym_function_definition = 55,
-  sym_function_implementation = 56,
-  sym_parameter_list = 57,
-  sym__parameter = 58,
-  sym_typed_parameter = 59,
-  sym_when_expression = 60,
-  sym_when_pattern = 61,
-  sym__pattern = 62,
-  sym_result_pattern = 63,
-  sym_list_pattern = 64,
-  sym_table_pattern = 65,
-  sym_table_field_pattern = 66,
-  sym__expression = 67,
-  sym_function_call = 68,
-  sym_member_access = 69,
-  sym_binary_expression = 70,
-  sym_unary_expression = 71,
-  sym_parenthesized_expression = 72,
-  sym_list_expression = 73,
-  sym_table_expression = 74,
-  sym_table_field = 75,
-  sym_expression_statement = 76,
-  sym__type = 77,
-  sym_primitive_type = 78,
-  sym_list_type = 79,
-  sym_table_type = 80,
-  sym_table_type_field = 81,
-  sym_result_type = 82,
-  sym_function_type = 83,
-  sym_literal = 84,
-  sym_string = 85,
-  sym_escape_sequence = 86,
-  sym_number = 87,
-  sym_boolean = 88,
-  sym_constant = 89,
-  sym_comment = 90,
-  aux_sym_program_repeat1 = 91,
-  aux_sym_function_implementation_repeat1 = 92,
-  aux_sym_parameter_list_repeat1 = 93,
-  aux_sym_when_expression_repeat1 = 94,
-  aux_sym_list_pattern_repeat1 = 95,
-  aux_sym_table_pattern_repeat1 = 96,
-  aux_sym_function_call_repeat1 = 97,
-  aux_sym_table_expression_repeat1 = 98,
-  aux_sym_table_type_repeat1 = 99,
-  aux_sym_string_repeat1 = 100,
-};
-
-static const char * const ts_symbol_names[] = {
-  [ts_builtin_sym_end] = "end",
-  [anon_sym_COLON] = ":",
-  [anon_sym_DASH_GT] = "->",
-  [anon_sym_SEMI] = ";",
-  [anon_sym_LPAREN] = "(",
-  [anon_sym_RPAREN] = ")",
-  [anon_sym_COMMA] = ",",
-  [anon_sym_when] = "when",
-  [anon_sym_is] = "is",
-  [anon_sym_then] = "then",
-  [anon_sym_Ok] = "Ok",
-  [anon_sym_Err] = "Err",
-  [sym_wildcard_pattern] = "wildcard_pattern",
-  [anon_sym_LBRACK] = "[",
-  [anon_sym_RBRACK] = "]",
-  [anon_sym_LBRACE] = "{",
-  [anon_sym_RBRACE] = "}",
-  [anon_sym_DOT] = ".",
-  [anon_sym_PLUS] = "+",
-  [anon_sym_DASH] = "-",
-  [anon_sym_STAR] = "*",
-  [anon_sym_SLASH] = "/",
-  [anon_sym_PERCENT] = "%",
-  [anon_sym_GT] = ">",
-  [anon_sym_LT] = "<",
-  [anon_sym_GT_EQ] = ">=",
-  [anon_sym_LT_EQ] = "<=",
-  [anon_sym_EQ] = "=",
-  [anon_sym_BANG_EQ] = "!=",
-  [anon_sym_and] = "and",
-  [anon_sym_or] = "or",
-  [anon_sym_xor] = "xor",
-  [anon_sym_DOT_DOT] = "..",
-  [anon_sym_Bool] = "Bool",
-  [anon_sym_Int] = "Int",
-  [anon_sym_Float] = "Float",
-  [anon_sym_String] = "String",
-  [anon_sym_Number] = "Number",
-  [anon_sym_Result] = "Result",
-  [anon_sym_DQUOTE] = "\"",
-  [aux_sym_string_token1] = "string_token1",
-  [anon_sym_BSLASH] = "\\",
-  [aux_sym_escape_sequence_token1] = "escape_sequence_token1",
-  [aux_sym_escape_sequence_token2] = "escape_sequence_token2",
-  [aux_sym_number_token1] = "number_token1",
-  [aux_sym_number_token2] = "number_token2",
-  [anon_sym_true] = "true",
-  [anon_sym_false] = "false",
-  [anon_sym_PI] = "PI",
-  [anon_sym_INFINITY] = "INFINITY",
-  [sym_identifier] = "identifier",
-  [anon_sym_SLASH_SLASH] = "//",
-  [aux_sym_comment_token1] = "comment_token1",
-  [sym_program] = "program",
-  [sym__statement] = "_statement",
-  [sym_function_definition] = "function_definition",
-  [sym_function_implementation] = "function_implementation",
-  [sym_parameter_list] = "parameter_list",
-  [sym__parameter] = "_parameter",
-  [sym_typed_parameter] = "typed_parameter",
-  [sym_when_expression] = "when_expression",
-  [sym_when_pattern] = "when_pattern",
-  [sym__pattern] = "_pattern",
-  [sym_result_pattern] = "result_pattern",
-  [sym_list_pattern] = "list_pattern",
-  [sym_table_pattern] = "table_pattern",
-  [sym_table_field_pattern] = "table_field_pattern",
-  [sym__expression] = "_expression",
-  [sym_function_call] = "function_call",
-  [sym_member_access] = "member_access",
-  [sym_binary_expression] = "binary_expression",
-  [sym_unary_expression] = "unary_expression",
-  [sym_parenthesized_expression] = "parenthesized_expression",
-  [sym_list_expression] = "list_expression",
-  [sym_table_expression] = "table_expression",
-  [sym_table_field] = "table_field",
-  [sym_expression_statement] = "expression_statement",
-  [sym__type] = "_type",
-  [sym_primitive_type] = "primitive_type",
-  [sym_list_type] = "list_type",
-  [sym_table_type] = "table_type",
-  [sym_table_type_field] = "table_type_field",
-  [sym_result_type] = "result_type",
-  [sym_function_type] = "function_type",
-  [sym_literal] = "literal",
-  [sym_string] = "string",
-  [sym_escape_sequence] = "escape_sequence",
-  [sym_number] = "number",
-  [sym_boolean] = "boolean",
-  [sym_constant] = "constant",
-  [sym_comment] = "comment",
-  [aux_sym_program_repeat1] = "program_repeat1",
-  [aux_sym_function_implementation_repeat1] = "function_implementation_repeat1",
-  [aux_sym_parameter_list_repeat1] = "parameter_list_repeat1",
-  [aux_sym_when_expression_repeat1] = "when_expression_repeat1",
-  [aux_sym_list_pattern_repeat1] = "list_pattern_repeat1",
-  [aux_sym_table_pattern_repeat1] = "table_pattern_repeat1",
-  [aux_sym_function_call_repeat1] = "function_call_repeat1",
-  [aux_sym_table_expression_repeat1] = "table_expression_repeat1",
-  [aux_sym_table_type_repeat1] = "table_type_repeat1",
-  [aux_sym_string_repeat1] = "string_repeat1",
-};
-
-static const TSSymbol ts_symbol_map[] = {
-  [ts_builtin_sym_end] = ts_builtin_sym_end,
-  [anon_sym_COLON] = anon_sym_COLON,
-  [anon_sym_DASH_GT] = anon_sym_DASH_GT,
-  [anon_sym_SEMI] = anon_sym_SEMI,
-  [anon_sym_LPAREN] = anon_sym_LPAREN,
-  [anon_sym_RPAREN] = anon_sym_RPAREN,
-  [anon_sym_COMMA] = anon_sym_COMMA,
-  [anon_sym_when] = anon_sym_when,
-  [anon_sym_is] = anon_sym_is,
-  [anon_sym_then] = anon_sym_then,
-  [anon_sym_Ok] = anon_sym_Ok,
-  [anon_sym_Err] = anon_sym_Err,
-  [sym_wildcard_pattern] = sym_wildcard_pattern,
-  [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_DOT] = anon_sym_DOT,
-  [anon_sym_PLUS] = anon_sym_PLUS,
-  [anon_sym_DASH] = anon_sym_DASH,
-  [anon_sym_STAR] = anon_sym_STAR,
-  [anon_sym_SLASH] = anon_sym_SLASH,
-  [anon_sym_PERCENT] = anon_sym_PERCENT,
-  [anon_sym_GT] = anon_sym_GT,
-  [anon_sym_LT] = anon_sym_LT,
-  [anon_sym_GT_EQ] = anon_sym_GT_EQ,
-  [anon_sym_LT_EQ] = anon_sym_LT_EQ,
-  [anon_sym_EQ] = anon_sym_EQ,
-  [anon_sym_BANG_EQ] = anon_sym_BANG_EQ,
-  [anon_sym_and] = anon_sym_and,
-  [anon_sym_or] = anon_sym_or,
-  [anon_sym_xor] = anon_sym_xor,
-  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
-  [anon_sym_Bool] = anon_sym_Bool,
-  [anon_sym_Int] = anon_sym_Int,
-  [anon_sym_Float] = anon_sym_Float,
-  [anon_sym_String] = anon_sym_String,
-  [anon_sym_Number] = anon_sym_Number,
-  [anon_sym_Result] = anon_sym_Result,
-  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
-  [aux_sym_string_token1] = aux_sym_string_token1,
-  [anon_sym_BSLASH] = anon_sym_BSLASH,
-  [aux_sym_escape_sequence_token1] = aux_sym_escape_sequence_token1,
-  [aux_sym_escape_sequence_token2] = aux_sym_escape_sequence_token2,
-  [aux_sym_number_token1] = aux_sym_number_token1,
-  [aux_sym_number_token2] = aux_sym_number_token2,
-  [anon_sym_true] = anon_sym_true,
-  [anon_sym_false] = anon_sym_false,
-  [anon_sym_PI] = anon_sym_PI,
-  [anon_sym_INFINITY] = anon_sym_INFINITY,
-  [sym_identifier] = sym_identifier,
-  [anon_sym_SLASH_SLASH] = anon_sym_SLASH_SLASH,
-  [aux_sym_comment_token1] = aux_sym_comment_token1,
-  [sym_program] = sym_program,
-  [sym__statement] = sym__statement,
-  [sym_function_definition] = sym_function_definition,
-  [sym_function_implementation] = sym_function_implementation,
-  [sym_parameter_list] = sym_parameter_list,
-  [sym__parameter] = sym__parameter,
-  [sym_typed_parameter] = sym_typed_parameter,
-  [sym_when_expression] = sym_when_expression,
-  [sym_when_pattern] = sym_when_pattern,
-  [sym__pattern] = sym__pattern,
-  [sym_result_pattern] = sym_result_pattern,
-  [sym_list_pattern] = sym_list_pattern,
-  [sym_table_pattern] = sym_table_pattern,
-  [sym_table_field_pattern] = sym_table_field_pattern,
-  [sym__expression] = sym__expression,
-  [sym_function_call] = sym_function_call,
-  [sym_member_access] = sym_member_access,
-  [sym_binary_expression] = sym_binary_expression,
-  [sym_unary_expression] = sym_unary_expression,
-  [sym_parenthesized_expression] = sym_parenthesized_expression,
-  [sym_list_expression] = sym_list_expression,
-  [sym_table_expression] = sym_table_expression,
-  [sym_table_field] = sym_table_field,
-  [sym_expression_statement] = sym_expression_statement,
-  [sym__type] = sym__type,
-  [sym_primitive_type] = sym_primitive_type,
-  [sym_list_type] = sym_list_type,
-  [sym_table_type] = sym_table_type,
-  [sym_table_type_field] = sym_table_type_field,
-  [sym_result_type] = sym_result_type,
-  [sym_function_type] = sym_function_type,
-  [sym_literal] = sym_literal,
-  [sym_string] = sym_string,
-  [sym_escape_sequence] = sym_escape_sequence,
-  [sym_number] = sym_number,
-  [sym_boolean] = sym_boolean,
-  [sym_constant] = sym_constant,
-  [sym_comment] = sym_comment,
-  [aux_sym_program_repeat1] = aux_sym_program_repeat1,
-  [aux_sym_function_implementation_repeat1] = aux_sym_function_implementation_repeat1,
-  [aux_sym_parameter_list_repeat1] = aux_sym_parameter_list_repeat1,
-  [aux_sym_when_expression_repeat1] = aux_sym_when_expression_repeat1,
-  [aux_sym_list_pattern_repeat1] = aux_sym_list_pattern_repeat1,
-  [aux_sym_table_pattern_repeat1] = aux_sym_table_pattern_repeat1,
-  [aux_sym_function_call_repeat1] = aux_sym_function_call_repeat1,
-  [aux_sym_table_expression_repeat1] = aux_sym_table_expression_repeat1,
-  [aux_sym_table_type_repeat1] = aux_sym_table_type_repeat1,
-  [aux_sym_string_repeat1] = aux_sym_string_repeat1,
-};
-
-static const TSSymbolMetadata ts_symbol_metadata[] = {
-  [ts_builtin_sym_end] = {
-    .visible = false,
-    .named = true,
-  },
-  [anon_sym_COLON] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DASH_GT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_SEMI] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_LPAREN] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_RPAREN] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_COMMA] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_when] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_is] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_then] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Ok] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Err] = {
-    .visible = true,
-    .named = false,
-  },
-  [sym_wildcard_pattern] = {
-    .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_DOT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_PLUS] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_STAR] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_SLASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_PERCENT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_GT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_LT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_GT_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_LT_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_BANG_EQ] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_and] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_or] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_xor] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DOT_DOT] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Bool] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Int] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Float] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_String] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Number] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_Result] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_DQUOTE] = {
-    .visible = true,
-    .named = false,
-  },
-  [aux_sym_string_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [anon_sym_BSLASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [aux_sym_escape_sequence_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_escape_sequence_token2] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_number_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_number_token2] = {
-    .visible = false,
-    .named = false,
-  },
-  [anon_sym_true] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_false] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_PI] = {
-    .visible = true,
-    .named = false,
-  },
-  [anon_sym_INFINITY] = {
-    .visible = true,
-    .named = false,
-  },
-  [sym_identifier] = {
-    .visible = true,
-    .named = true,
-  },
-  [anon_sym_SLASH_SLASH] = {
-    .visible = true,
-    .named = false,
-  },
-  [aux_sym_comment_token1] = {
-    .visible = false,
-    .named = false,
-  },
-  [sym_program] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__statement] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_function_definition] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_function_implementation] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_parameter_list] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__parameter] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_typed_parameter] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_when_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_when_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__pattern] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_result_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_list_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_field_pattern] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__expression] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_function_call] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_member_access] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_binary_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_unary_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_parenthesized_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_list_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_expression] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_field] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_expression_statement] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym__type] = {
-    .visible = false,
-    .named = true,
-  },
-  [sym_primitive_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_list_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_table_type_field] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_result_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_function_type] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_literal] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_string] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_escape_sequence] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_number] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_boolean] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_constant] = {
-    .visible = true,
-    .named = true,
-  },
-  [sym_comment] = {
-    .visible = true,
-    .named = true,
-  },
-  [aux_sym_program_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_function_implementation_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_parameter_list_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_when_expression_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_list_pattern_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_table_pattern_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_function_call_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_table_expression_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_table_type_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-  [aux_sym_string_repeat1] = {
-    .visible = false,
-    .named = false,
-  },
-};
-
-enum ts_field_identifiers {
-  field_body = 1,
-  field_function = 2,
-  field_key = 3,
-  field_left = 4,
-  field_member = 5,
-  field_name = 6,
-  field_object = 7,
-  field_operand = 8,
-  field_parameters = 9,
-  field_pattern = 10,
-  field_patterns = 11,
-  field_result = 12,
-  field_return_type = 13,
-  field_right = 14,
-  field_subject = 15,
-  field_type = 16,
-  field_value = 17,
-};
-
-static const char * const ts_field_names[] = {
-  [0] = NULL,
-  [field_body] = "body",
-  [field_function] = "function",
-  [field_key] = "key",
-  [field_left] = "left",
-  [field_member] = "member",
-  [field_name] = "name",
-  [field_object] = "object",
-  [field_operand] = "operand",
-  [field_parameters] = "parameters",
-  [field_pattern] = "pattern",
-  [field_patterns] = "patterns",
-  [field_result] = "result",
-  [field_return_type] = "return_type",
-  [field_right] = "right",
-  [field_subject] = "subject",
-  [field_type] = "type",
-  [field_value] = "value",
-};
-
-static const TSMapSlice 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 = 2},
-  [6] = {.index = 8, .length = 2},
-  [7] = {.index = 10, .length = 2},
-  [8] = {.index = 12, .length = 3},
-  [9] = {.index = 15, .length = 2},
-  [10] = {.index = 17, .length = 3},
-};
-
-static const TSFieldMapEntry ts_field_map_entries[] = {
-  [0] =
-    {field_operand, 1},
-  [1] =
-    {field_function, 0},
-  [2] =
-    {field_member, 2},
-    {field_object, 0},
-  [4] =
-    {field_left, 0},
-    {field_right, 2},
-  [6] =
-    {field_key, 0},
-    {field_value, 2},
-  [8] =
-    {field_patterns, 3},
-    {field_subject, 1},
-  [10] =
-    {field_name, 0},
-    {field_type, 2},
-  [12] =
-    {field_body, 3},
-    {field_name, 0},
-    {field_parameters, 1},
-  [15] =
-    {field_pattern, 0},
-    {field_result, 2},
-  [17] =
-    {field_name, 0},
-    {field_parameters, 2},
-    {field_return_type, 4},
-};
-
-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] = 3,
-  [4] = 4,
-  [5] = 5,
-  [6] = 6,
-  [7] = 7,
-  [8] = 8,
-  [9] = 9,
-  [10] = 10,
-  [11] = 11,
-  [12] = 12,
-  [13] = 13,
-  [14] = 14,
-  [15] = 15,
-  [16] = 16,
-  [17] = 17,
-  [18] = 18,
-  [19] = 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] = 8,
-  [35] = 9,
-  [36] = 36,
-  [37] = 37,
-  [38] = 38,
-  [39] = 39,
-  [40] = 40,
-  [41] = 41,
-  [42] = 42,
-  [43] = 43,
-  [44] = 37,
-  [45] = 38,
-  [46] = 46,
-  [47] = 47,
-  [48] = 48,
-  [49] = 49,
-  [50] = 50,
-  [51] = 51,
-  [52] = 42,
-  [53] = 41,
-  [54] = 39,
-  [55] = 40,
-  [56] = 46,
-  [57] = 43,
-  [58] = 58,
-  [59] = 58,
-  [60] = 4,
-  [61] = 22,
-  [62] = 6,
-  [63] = 11,
-  [64] = 18,
-  [65] = 5,
-  [66] = 12,
-  [67] = 67,
-  [68] = 26,
-  [69] = 27,
-  [70] = 28,
-  [71] = 29,
-  [72] = 30,
-  [73] = 73,
-  [74] = 31,
-  [75] = 7,
-  [76] = 32,
-  [77] = 77,
-  [78] = 33,
-  [79] = 17,
-  [80] = 14,
-  [81] = 15,
-  [82] = 13,
-  [83] = 19,
-  [84] = 20,
-  [85] = 16,
-  [86] = 21,
-  [87] = 23,
-  [88] = 24,
-  [89] = 36,
-  [90] = 25,
-  [91] = 91,
-  [92] = 92,
-  [93] = 93,
-  [94] = 94,
-  [95] = 95,
-  [96] = 96,
-  [97] = 97,
-  [98] = 95,
-  [99] = 99,
-  [100] = 97,
-  [101] = 101,
-  [102] = 102,
-  [103] = 103,
-  [104] = 102,
-  [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] = 128,
-  [131] = 131,
-  [132] = 129,
-  [133] = 133,
-  [134] = 134,
-  [135] = 135,
-  [136] = 136,
-  [137] = 137,
-  [138] = 138,
-  [139] = 139,
-  [140] = 140,
-  [141] = 141,
-  [142] = 142,
-  [143] = 143,
-  [144] = 144,
-  [145] = 145,
-  [146] = 146,
-  [147] = 147,
-  [148] = 148,
-  [149] = 149,
-  [150] = 150,
-  [151] = 151,
-  [152] = 152,
-  [153] = 153,
-  [154] = 154,
-  [155] = 155,
-  [156] = 156,
-  [157] = 157,
-  [158] = 158,
-  [159] = 159,
-  [160] = 160,
-  [161] = 161,
-  [162] = 162,
-  [163] = 163,
-  [164] = 164,
-  [165] = 165,
-  [166] = 166,
-  [167] = 167,
-  [168] = 156,
-  [169] = 169,
-  [170] = 170,
-  [171] = 170,
-  [172] = 172,
-  [173] = 160,
-  [174] = 161,
-  [175] = 158,
-  [176] = 176,
-  [177] = 177,
-  [178] = 178,
-  [179] = 179,
-  [180] = 180,
-  [181] = 181,
-  [182] = 182,
-  [183] = 183,
-  [184] = 184,
-  [185] = 185,
-  [186] = 186,
-  [187] = 187,
-  [188] = 188,
-  [189] = 189,
-  [190] = 190,
-  [191] = 191,
-  [192] = 192,
-  [193] = 193,
-  [194] = 194,
-  [195] = 195,
-  [196] = 196,
-  [197] = 197,
-  [198] = 198,
-  [199] = 199,
-  [200] = 200,
-  [201] = 196,
-  [202] = 202,
-  [203] = 203,
-  [204] = 198,
-  [205] = 205,
-  [206] = 109,
-};
-
-static bool ts_lex(TSLexer *lexer, TSStateId state) {
-  START_LEXER();
-  eof = lexer->eof(lexer);
-  switch (state) {
-    case 0:
-      if (eof) ADVANCE(69);
-      ADVANCE_MAP(
-        '!', 11,
-        '"', 123,
-        '%', 96,
-        '(', 73,
-        ')', 74,
-        '*', 94,
-        '+', 91,
-        ',', 75,
-        '-', 93,
-        '.', 90,
-        '/', 95,
-        ':', 70,
-        ';', 72,
-        '<', 99,
-        '=', 102,
-        '>', 98,
-        'B', 45,
-        'E', 53,
-        'F', 37,
-        'I', 17,
-        'N', 61,
-        'O', 34,
-        'P', 14,
-        'R', 27,
-        'S', 60,
-        '[', 86,
-        '\\', 127,
-        ']', 87,
-        '_', 84,
-        'a', 40,
-        'f', 21,
-        'i', 54,
-        'o', 48,
-        'u', 67,
-        'w', 31,
-        'x', 47,
-        '{', 88,
-        '}', 89,
-        'n', 128,
-        'r', 128,
-        't', 128,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(0);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      END_STATE();
-    case 1:
-      ADVANCE_MAP(
-        '!', 11,
-        '"', 123,
-        '%', 96,
-        '(', 73,
-        '*', 94,
-        '+', 91,
-        '-', 92,
-        '.', 90,
-        '/', 95,
-        ';', 72,
-        '<', 99,
-        '=', 102,
-        '>', 98,
-        'E', 179,
-        'O', 159,
-        '[', 86,
-        '_', 85,
-        'a', 166,
-        'f', 147,
-        'o', 174,
-        't', 173,
-        'x', 172,
-        '{', 88,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(1);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 2:
-      ADVANCE_MAP(
-        '!', 11,
-        '%', 96,
-        '(', 73,
-        ')', 74,
-        '*', 94,
-        '+', 91,
-        ',', 75,
-        '-', 92,
-        '.', 90,
-        '/', 95,
-        ';', 72,
-        '<', 99,
-        '=', 102,
-        '>', 98,
-        ']', 87,
-        'a', 40,
-        'i', 54,
-        'o', 48,
-        't', 32,
-        'x', 47,
-        '}', 89,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(2);
-      END_STATE();
-    case 3:
-      ADVANCE_MAP(
-        '!', 11,
-        '%', 96,
-        '(', 73,
-        '*', 94,
-        '+', 91,
-        '-', 92,
-        '.', 90,
-        '/', 95,
-        ':', 70,
-        ';', 72,
-        '<', 99,
-        '=', 102,
-        '>', 98,
-        'a', 166,
-        'o', 174,
-        'x', 172,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(3);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 4:
-      ADVANCE_MAP(
-        '"', 123,
-        '(', 73,
-        ')', 74,
-        '+', 91,
-        '-', 92,
-        '/', 8,
-        'I', 143,
-        'P', 140,
-        '[', 86,
-        ']', 87,
-        'f', 147,
-        't', 173,
-        '{', 88,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(4);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 5:
-      ADVANCE_MAP(
-        '"', 123,
-        ')', 74,
-        ',', 75,
-        '-', 12,
-        '/', 8,
-        ':', 70,
-        ';', 72,
-        '>', 97,
-        'E', 179,
-        'O', 159,
-        '[', 86,
-        ']', 87,
-        '_', 85,
-        'f', 147,
-        't', 173,
-        '{', 88,
-        '}', 89,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(5);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 6:
-      if (lookahead == '"') ADVANCE(123);
-      if (lookahead == '/') ADVANCE(125);
-      if (lookahead == '\\') ADVANCE(127);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') ADVANCE(126);
-      if (lookahead != 0) ADVANCE(124);
-      END_STATE();
-    case 7:
-      if (lookahead == '(') ADVANCE(73);
-      if (lookahead == ')') ADVANCE(74);
-      if (lookahead == '-') ADVANCE(12);
-      if (lookahead == '/') ADVANCE(8);
-      if (lookahead == '}') ADVANCE(89);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(7);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 8:
-      if (lookahead == '/') ADVANCE(190);
-      END_STATE();
-    case 9:
-      ADVANCE_MAP(
-        '/', 8,
-        'B', 171,
-        'F', 162,
-        'I', 168,
-        'N', 186,
-        'R', 154,
-        'S', 185,
-        '[', 86,
-        '{', 88,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(9);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 10:
-      if (lookahead == '/') ADVANCE(8);
-      if (lookahead == 'u') ADVANCE(67);
-      if (lookahead == '"' ||
-          lookahead == '\\' ||
-          lookahead == 'n' ||
-          lookahead == 'r' ||
-          lookahead == 't') ADVANCE(128);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(10);
-      END_STATE();
-    case 11:
-      if (lookahead == '=') ADVANCE(103);
-      END_STATE();
-    case 12:
-      if (lookahead == '>') ADVANCE(71);
-      END_STATE();
-    case 13:
-      if (lookahead == 'F') ADVANCE(15);
-      END_STATE();
-    case 14:
-      if (lookahead == 'I') ADVANCE(135);
-      END_STATE();
-    case 15:
-      if (lookahead == 'I') ADVANCE(18);
-      END_STATE();
-    case 16:
-      if (lookahead == 'I') ADVANCE(19);
-      END_STATE();
-    case 17:
-      if (lookahead == 'N') ADVANCE(13);
-      if (lookahead == 'n') ADVANCE(57);
-      END_STATE();
-    case 18:
-      if (lookahead == 'N') ADVANCE(16);
-      END_STATE();
-    case 19:
-      if (lookahead == 'T') ADVANCE(20);
-      END_STATE();
-    case 20:
-      if (lookahead == 'Y') ADVANCE(137);
-      END_STATE();
-    case 21:
-      if (lookahead == 'a') ADVANCE(36);
-      END_STATE();
-    case 22:
-      if (lookahead == 'a') ADVANCE(58);
-      END_STATE();
-    case 23:
-      if (lookahead == 'b') ADVANCE(29);
-      END_STATE();
-    case 24:
-      if (lookahead == 'd') ADVANCE(104);
-      END_STATE();
-    case 25:
-      if (lookahead == 'e') ADVANCE(133);
-      END_STATE();
-    case 26:
-      if (lookahead == 'e') ADVANCE(41);
-      END_STATE();
-    case 27:
-      if (lookahead == 'e') ADVANCE(55);
-      END_STATE();
-    case 28:
-      if (lookahead == 'e') ADVANCE(43);
-      END_STATE();
-    case 29:
-      if (lookahead == 'e') ADVANCE(52);
-      END_STATE();
-    case 30:
-      if (lookahead == 'g') ADVANCE(117);
-      END_STATE();
-    case 31:
-      if (lookahead == 'h') ADVANCE(26);
-      END_STATE();
-    case 32:
-      if (lookahead == 'h') ADVANCE(28);
-      END_STATE();
-    case 33:
-      if (lookahead == 'i') ADVANCE(42);
-      END_STATE();
-    case 34:
-      if (lookahead == 'k') ADVANCE(80);
-      END_STATE();
-    case 35:
-      if (lookahead == 'l') ADVANCE(111);
-      END_STATE();
-    case 36:
-      if (lookahead == 'l') ADVANCE(56);
-      END_STATE();
-    case 37:
-      if (lookahead == 'l') ADVANCE(44);
-      END_STATE();
-    case 38:
-      if (lookahead == 'l') ADVANCE(59);
-      END_STATE();
-    case 39:
-      if (lookahead == 'm') ADVANCE(23);
-      END_STATE();
-    case 40:
-      if (lookahead == 'n') ADVANCE(24);
-      END_STATE();
-    case 41:
-      if (lookahead == 'n') ADVANCE(76);
-      END_STATE();
-    case 42:
-      if (lookahead == 'n') ADVANCE(30);
-      END_STATE();
-    case 43:
-      if (lookahead == 'n') ADVANCE(79);
-      END_STATE();
-    case 44:
-      if (lookahead == 'o') ADVANCE(22);
-      END_STATE();
-    case 45:
-      if (lookahead == 'o') ADVANCE(46);
-      END_STATE();
-    case 46:
-      if (lookahead == 'o') ADVANCE(35);
-      END_STATE();
-    case 47:
-      if (lookahead == 'o') ADVANCE(51);
-      END_STATE();
-    case 48:
-      if (lookahead == 'r') ADVANCE(106);
-      END_STATE();
-    case 49:
-      if (lookahead == 'r') ADVANCE(82);
-      END_STATE();
-    case 50:
-      if (lookahead == 'r') ADVANCE(33);
-      END_STATE();
-    case 51:
-      if (lookahead == 'r') ADVANCE(108);
-      END_STATE();
-    case 52:
-      if (lookahead == 'r') ADVANCE(119);
-      END_STATE();
-    case 53:
-      if (lookahead == 'r') ADVANCE(49);
-      END_STATE();
-    case 54:
-      if (lookahead == 's') ADVANCE(78);
-      END_STATE();
-    case 55:
-      if (lookahead == 's') ADVANCE(62);
-      END_STATE();
-    case 56:
-      if (lookahead == 's') ADVANCE(25);
-      END_STATE();
-    case 57:
-      if (lookahead == 't') ADVANCE(113);
-      END_STATE();
-    case 58:
-      if (lookahead == 't') ADVANCE(115);
-      END_STATE();
-    case 59:
-      if (lookahead == 't') ADVANCE(121);
-      END_STATE();
-    case 60:
-      if (lookahead == 't') ADVANCE(50);
-      END_STATE();
-    case 61:
-      if (lookahead == 'u') ADVANCE(39);
-      END_STATE();
-    case 62:
-      if (lookahead == 'u') ADVANCE(38);
-      END_STATE();
-    case 63:
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131);
-      END_STATE();
-    case 64:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(129);
-      END_STATE();
-    case 65:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(64);
-      END_STATE();
-    case 66:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(65);
-      END_STATE();
-    case 67:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(66);
-      END_STATE();
-    case 68:
-      if (eof) ADVANCE(69);
-      ADVANCE_MAP(
-        '"', 123,
-        '(', 73,
-        '+', 91,
-        '-', 92,
-        '/', 8,
-        'I', 143,
-        'P', 140,
-        '[', 86,
-        'f', 147,
-        't', 173,
-        'w', 157,
-        '{', 88,
-      );
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(68);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      if (('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 69:
-      ACCEPT_TOKEN(ts_builtin_sym_end);
-      END_STATE();
-    case 70:
-      ACCEPT_TOKEN(anon_sym_COLON);
-      END_STATE();
-    case 71:
-      ACCEPT_TOKEN(anon_sym_DASH_GT);
-      END_STATE();
-    case 72:
-      ACCEPT_TOKEN(anon_sym_SEMI);
-      END_STATE();
-    case 73:
-      ACCEPT_TOKEN(anon_sym_LPAREN);
-      END_STATE();
-    case 74:
-      ACCEPT_TOKEN(anon_sym_RPAREN);
-      END_STATE();
-    case 75:
-      ACCEPT_TOKEN(anon_sym_COMMA);
-      END_STATE();
-    case 76:
-      ACCEPT_TOKEN(anon_sym_when);
-      END_STATE();
-    case 77:
-      ACCEPT_TOKEN(anon_sym_when);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 78:
-      ACCEPT_TOKEN(anon_sym_is);
-      END_STATE();
-    case 79:
-      ACCEPT_TOKEN(anon_sym_then);
-      END_STATE();
-    case 80:
-      ACCEPT_TOKEN(anon_sym_Ok);
-      END_STATE();
-    case 81:
-      ACCEPT_TOKEN(anon_sym_Ok);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 82:
-      ACCEPT_TOKEN(anon_sym_Err);
-      END_STATE();
-    case 83:
-      ACCEPT_TOKEN(anon_sym_Err);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 84:
-      ACCEPT_TOKEN(sym_wildcard_pattern);
-      END_STATE();
-    case 85:
-      ACCEPT_TOKEN(sym_wildcard_pattern);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 86:
-      ACCEPT_TOKEN(anon_sym_LBRACK);
-      END_STATE();
-    case 87:
-      ACCEPT_TOKEN(anon_sym_RBRACK);
-      END_STATE();
-    case 88:
-      ACCEPT_TOKEN(anon_sym_LBRACE);
-      END_STATE();
-    case 89:
-      ACCEPT_TOKEN(anon_sym_RBRACE);
-      END_STATE();
-    case 90:
-      ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(110);
-      END_STATE();
-    case 91:
-      ACCEPT_TOKEN(anon_sym_PLUS);
-      END_STATE();
-    case 92:
-      ACCEPT_TOKEN(anon_sym_DASH);
-      END_STATE();
-    case 93:
-      ACCEPT_TOKEN(anon_sym_DASH);
-      if (lookahead == '>') ADVANCE(71);
-      END_STATE();
-    case 94:
-      ACCEPT_TOKEN(anon_sym_STAR);
-      END_STATE();
-    case 95:
-      ACCEPT_TOKEN(anon_sym_SLASH);
-      if (lookahead == '/') ADVANCE(190);
-      END_STATE();
-    case 96:
-      ACCEPT_TOKEN(anon_sym_PERCENT);
-      END_STATE();
-    case 97:
-      ACCEPT_TOKEN(anon_sym_GT);
-      END_STATE();
-    case 98:
-      ACCEPT_TOKEN(anon_sym_GT);
-      if (lookahead == '=') ADVANCE(100);
-      END_STATE();
-    case 99:
-      ACCEPT_TOKEN(anon_sym_LT);
-      if (lookahead == '=') ADVANCE(101);
-      END_STATE();
-    case 100:
-      ACCEPT_TOKEN(anon_sym_GT_EQ);
-      END_STATE();
-    case 101:
-      ACCEPT_TOKEN(anon_sym_LT_EQ);
-      END_STATE();
-    case 102:
-      ACCEPT_TOKEN(anon_sym_EQ);
-      END_STATE();
-    case 103:
-      ACCEPT_TOKEN(anon_sym_BANG_EQ);
-      END_STATE();
-    case 104:
-      ACCEPT_TOKEN(anon_sym_and);
-      END_STATE();
-    case 105:
-      ACCEPT_TOKEN(anon_sym_and);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 106:
-      ACCEPT_TOKEN(anon_sym_or);
-      END_STATE();
-    case 107:
-      ACCEPT_TOKEN(anon_sym_or);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 108:
-      ACCEPT_TOKEN(anon_sym_xor);
-      END_STATE();
-    case 109:
-      ACCEPT_TOKEN(anon_sym_xor);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 110:
-      ACCEPT_TOKEN(anon_sym_DOT_DOT);
-      END_STATE();
-    case 111:
-      ACCEPT_TOKEN(anon_sym_Bool);
-      END_STATE();
-    case 112:
-      ACCEPT_TOKEN(anon_sym_Bool);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 113:
-      ACCEPT_TOKEN(anon_sym_Int);
-      END_STATE();
-    case 114:
-      ACCEPT_TOKEN(anon_sym_Int);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 115:
-      ACCEPT_TOKEN(anon_sym_Float);
-      END_STATE();
-    case 116:
-      ACCEPT_TOKEN(anon_sym_Float);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 117:
-      ACCEPT_TOKEN(anon_sym_String);
-      END_STATE();
-    case 118:
-      ACCEPT_TOKEN(anon_sym_String);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 119:
-      ACCEPT_TOKEN(anon_sym_Number);
-      END_STATE();
-    case 120:
-      ACCEPT_TOKEN(anon_sym_Number);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 121:
-      ACCEPT_TOKEN(anon_sym_Result);
-      END_STATE();
-    case 122:
-      ACCEPT_TOKEN(anon_sym_Result);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 123:
-      ACCEPT_TOKEN(anon_sym_DQUOTE);
-      END_STATE();
-    case 124:
-      ACCEPT_TOKEN(aux_sym_string_token1);
-      END_STATE();
-    case 125:
-      ACCEPT_TOKEN(aux_sym_string_token1);
-      if (lookahead == '/') ADVANCE(190);
-      END_STATE();
-    case 126:
-      ACCEPT_TOKEN(aux_sym_string_token1);
-      if (lookahead == '/') ADVANCE(125);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') ADVANCE(126);
-      if (lookahead != 0 &&
-          lookahead != '"' &&
-          lookahead != '\\') ADVANCE(124);
-      END_STATE();
-    case 127:
-      ACCEPT_TOKEN(anon_sym_BSLASH);
-      END_STATE();
-    case 128:
-      ACCEPT_TOKEN(aux_sym_escape_sequence_token1);
-      END_STATE();
-    case 129:
-      ACCEPT_TOKEN(aux_sym_escape_sequence_token2);
-      END_STATE();
-    case 130:
-      ACCEPT_TOKEN(aux_sym_number_token1);
-      if (lookahead == '.') ADVANCE(63);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
-      END_STATE();
-    case 131:
-      ACCEPT_TOKEN(aux_sym_number_token2);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131);
-      END_STATE();
-    case 132:
-      ACCEPT_TOKEN(anon_sym_true);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 133:
-      ACCEPT_TOKEN(anon_sym_false);
-      END_STATE();
-    case 134:
-      ACCEPT_TOKEN(anon_sym_false);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 135:
-      ACCEPT_TOKEN(anon_sym_PI);
-      END_STATE();
-    case 136:
-      ACCEPT_TOKEN(anon_sym_PI);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 137:
-      ACCEPT_TOKEN(anon_sym_INFINITY);
-      END_STATE();
-    case 138:
-      ACCEPT_TOKEN(anon_sym_INFINITY);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 139:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'F') ADVANCE(142);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 140:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'I') ADVANCE(136);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 141:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'I') ADVANCE(145);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 142:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'I') ADVANCE(144);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 143:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'N') ADVANCE(139);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 144:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'N') ADVANCE(141);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 145:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'T') ADVANCE(146);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 146:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'Y') ADVANCE(138);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 147:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'a') ADVANCE(160);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 148:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'a') ADVANCE(183);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 149:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'b') ADVANCE(155);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 150:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'd') ADVANCE(105);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 151:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 152:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(132);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 153:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(134);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 154:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(180);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 155:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'e') ADVANCE(178);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 156:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'g') ADVANCE(118);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 157:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'h') ADVANCE(151);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 158:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'i') ADVANCE(167);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 159:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'k') ADVANCE(81);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 160:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(181);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 161:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(112);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 162:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(169);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 163:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'l') ADVANCE(184);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 164:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'm') ADVANCE(149);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 165:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(77);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 166:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(150);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 167:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(156);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 168:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'n') ADVANCE(182);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 169:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(148);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 170:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(161);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 171:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(170);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 172:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'o') ADVANCE(176);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 173:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(187);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 174:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(107);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 175:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(83);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 176:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(109);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 177:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(158);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 178:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(120);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 179:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'r') ADVANCE(175);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 180:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 's') ADVANCE(188);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 181:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 's') ADVANCE(153);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 182:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(114);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 183:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(116);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 184:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(122);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 185:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 't') ADVANCE(177);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 186:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'u') ADVANCE(164);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 187:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'u') ADVANCE(152);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 188:
-      ACCEPT_TOKEN(sym_identifier);
-      if (lookahead == 'u') ADVANCE(163);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 189:
-      ACCEPT_TOKEN(sym_identifier);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(189);
-      END_STATE();
-    case 190:
-      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
-      END_STATE();
-    case 191:
-      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    case 192:
-      ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '/') ADVANCE(193);
-      if (lookahead == '\t' ||
-          (0x0b <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') ADVANCE(192);
-      if (lookahead != 0 &&
-          (lookahead < '\t' || '\r' < lookahead)) ADVANCE(194);
-      END_STATE();
-    case 193:
-      ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '/') ADVANCE(191);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    case 194:
-      ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(194);
-      END_STATE();
-    default:
-      return false;
-  }
-}
-
-static const TSLexMode ts_lex_modes[STATE_COUNT] = {
-  [0] = {.lex_state = 0},
-  [1] = {.lex_state = 68},
-  [2] = {.lex_state = 68},
-  [3] = {.lex_state = 68},
-  [4] = {.lex_state = 1},
-  [5] = {.lex_state = 1},
-  [6] = {.lex_state = 1},
-  [7] = {.lex_state = 1},
-  [8] = {.lex_state = 4},
-  [9] = {.lex_state = 4},
-  [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 = 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 = 1},
-  [32] = {.lex_state = 1},
-  [33] = {.lex_state = 1},
-  [34] = {.lex_state = 4},
-  [35] = {.lex_state = 4},
-  [36] = {.lex_state = 1},
-  [37] = {.lex_state = 4},
-  [38] = {.lex_state = 4},
-  [39] = {.lex_state = 4},
-  [40] = {.lex_state = 4},
-  [41] = {.lex_state = 4},
-  [42] = {.lex_state = 4},
-  [43] = {.lex_state = 4},
-  [44] = {.lex_state = 4},
-  [45] = {.lex_state = 4},
-  [46] = {.lex_state = 4},
-  [47] = {.lex_state = 4},
-  [48] = {.lex_state = 4},
-  [49] = {.lex_state = 4},
-  [50] = {.lex_state = 4},
-  [51] = {.lex_state = 4},
-  [52] = {.lex_state = 4},
-  [53] = {.lex_state = 4},
-  [54] = {.lex_state = 4},
-  [55] = {.lex_state = 4},
-  [56] = {.lex_state = 4},
-  [57] = {.lex_state = 4},
-  [58] = {.lex_state = 4},
-  [59] = {.lex_state = 4},
-  [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 = 3},
-  [68] = {.lex_state = 2},
-  [69] = {.lex_state = 2},
-  [70] = {.lex_state = 2},
-  [71] = {.lex_state = 2},
-  [72] = {.lex_state = 2},
-  [73] = {.lex_state = 5},
-  [74] = {.lex_state = 2},
-  [75] = {.lex_state = 2},
-  [76] = {.lex_state = 2},
-  [77] = {.lex_state = 5},
-  [78] = {.lex_state = 2},
-  [79] = {.lex_state = 2},
-  [80] = {.lex_state = 2},
-  [81] = {.lex_state = 2},
-  [82] = {.lex_state = 2},
-  [83] = {.lex_state = 2},
-  [84] = {.lex_state = 2},
-  [85] = {.lex_state = 2},
-  [86] = {.lex_state = 2},
-  [87] = {.lex_state = 2},
-  [88] = {.lex_state = 2},
-  [89] = {.lex_state = 2},
-  [90] = {.lex_state = 2},
-  [91] = {.lex_state = 5},
-  [92] = {.lex_state = 5},
-  [93] = {.lex_state = 5},
-  [94] = {.lex_state = 2},
-  [95] = {.lex_state = 2},
-  [96] = {.lex_state = 5},
-  [97] = {.lex_state = 2},
-  [98] = {.lex_state = 2},
-  [99] = {.lex_state = 5},
-  [100] = {.lex_state = 2},
-  [101] = {.lex_state = 2},
-  [102] = {.lex_state = 2},
-  [103] = {.lex_state = 2},
-  [104] = {.lex_state = 2},
-  [105] = {.lex_state = 2},
-  [106] = {.lex_state = 2},
-  [107] = {.lex_state = 9},
-  [108] = {.lex_state = 9},
-  [109] = {.lex_state = 68},
-  [110] = {.lex_state = 68},
-  [111] = {.lex_state = 68},
-  [112] = {.lex_state = 9},
-  [113] = {.lex_state = 9},
-  [114] = {.lex_state = 68},
-  [115] = {.lex_state = 68},
-  [116] = {.lex_state = 9},
-  [117] = {.lex_state = 9},
-  [118] = {.lex_state = 5},
-  [119] = {.lex_state = 5},
-  [120] = {.lex_state = 5},
-  [121] = {.lex_state = 5},
-  [122] = {.lex_state = 5},
-  [123] = {.lex_state = 5},
-  [124] = {.lex_state = 5},
-  [125] = {.lex_state = 5},
-  [126] = {.lex_state = 5},
-  [127] = {.lex_state = 7},
-  [128] = {.lex_state = 6},
-  [129] = {.lex_state = 6},
-  [130] = {.lex_state = 6},
-  [131] = {.lex_state = 6},
-  [132] = {.lex_state = 6},
-  [133] = {.lex_state = 5},
-  [134] = {.lex_state = 2},
-  [135] = {.lex_state = 2},
-  [136] = {.lex_state = 2},
-  [137] = {.lex_state = 2},
-  [138] = {.lex_state = 0},
-  [139] = {.lex_state = 2},
-  [140] = {.lex_state = 2},
-  [141] = {.lex_state = 2},
-  [142] = {.lex_state = 7},
-  [143] = {.lex_state = 2},
-  [144] = {.lex_state = 0},
-  [145] = {.lex_state = 0},
-  [146] = {.lex_state = 0},
-  [147] = {.lex_state = 5},
-  [148] = {.lex_state = 0},
-  [149] = {.lex_state = 7},
-  [150] = {.lex_state = 0},
-  [151] = {.lex_state = 6},
-  [152] = {.lex_state = 7},
-  [153] = {.lex_state = 0},
-  [154] = {.lex_state = 7},
-  [155] = {.lex_state = 5},
-  [156] = {.lex_state = 7},
-  [157] = {.lex_state = 7},
-  [158] = {.lex_state = 0},
-  [159] = {.lex_state = 0},
-  [160] = {.lex_state = 0},
-  [161] = {.lex_state = 0},
-  [162] = {.lex_state = 6},
-  [163] = {.lex_state = 0},
-  [164] = {.lex_state = 0},
-  [165] = {.lex_state = 0},
-  [166] = {.lex_state = 7},
-  [167] = {.lex_state = 5},
-  [168] = {.lex_state = 7},
-  [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 = 5},
-  [179] = {.lex_state = 0},
-  [180] = {.lex_state = 0},
-  [181] = {.lex_state = 0},
-  [182] = {.lex_state = 7},
-  [183] = {.lex_state = 5},
-  [184] = {.lex_state = 7},
-  [185] = {.lex_state = 0},
-  [186] = {.lex_state = 5},
-  [187] = {.lex_state = 0},
-  [188] = {.lex_state = 7},
-  [189] = {.lex_state = 7},
-  [190] = {.lex_state = 10},
-  [191] = {.lex_state = 5},
-  [192] = {.lex_state = 0},
-  [193] = {.lex_state = 2},
-  [194] = {.lex_state = 0},
-  [195] = {.lex_state = 5},
-  [196] = {.lex_state = 7},
-  [197] = {.lex_state = 5},
-  [198] = {.lex_state = 192},
-  [199] = {.lex_state = 0},
-  [200] = {.lex_state = 5},
-  [201] = {.lex_state = 7},
-  [202] = {.lex_state = 0},
-  [203] = {.lex_state = 5},
-  [204] = {.lex_state = 192},
-  [205] = {.lex_state = 0},
-  [206] = {(TSStateId)(-1),},
-};
-
-static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
-  [STATE(0)] = {
-    [sym_comment] = STATE(0),
-    [ts_builtin_sym_end] = ACTIONS(1),
-    [anon_sym_COLON] = ACTIONS(1),
-    [anon_sym_DASH_GT] = ACTIONS(1),
-    [anon_sym_SEMI] = ACTIONS(1),
-    [anon_sym_LPAREN] = ACTIONS(1),
-    [anon_sym_RPAREN] = ACTIONS(1),
-    [anon_sym_COMMA] = ACTIONS(1),
-    [anon_sym_when] = ACTIONS(1),
-    [anon_sym_is] = ACTIONS(1),
-    [anon_sym_Ok] = ACTIONS(1),
-    [anon_sym_Err] = ACTIONS(1),
-    [sym_wildcard_pattern] = ACTIONS(1),
-    [anon_sym_LBRACK] = ACTIONS(1),
-    [anon_sym_RBRACK] = ACTIONS(1),
-    [anon_sym_LBRACE] = ACTIONS(1),
-    [anon_sym_RBRACE] = ACTIONS(1),
-    [anon_sym_DOT] = ACTIONS(1),
-    [anon_sym_PLUS] = ACTIONS(1),
-    [anon_sym_DASH] = ACTIONS(1),
-    [anon_sym_STAR] = ACTIONS(1),
-    [anon_sym_SLASH] = ACTIONS(1),
-    [anon_sym_PERCENT] = ACTIONS(1),
-    [anon_sym_GT] = ACTIONS(1),
-    [anon_sym_LT] = ACTIONS(1),
-    [anon_sym_GT_EQ] = ACTIONS(1),
-    [anon_sym_LT_EQ] = ACTIONS(1),
-    [anon_sym_EQ] = ACTIONS(1),
-    [anon_sym_BANG_EQ] = ACTIONS(1),
-    [anon_sym_and] = ACTIONS(1),
-    [anon_sym_or] = ACTIONS(1),
-    [anon_sym_xor] = ACTIONS(1),
-    [anon_sym_DOT_DOT] = ACTIONS(1),
-    [anon_sym_Bool] = ACTIONS(1),
-    [anon_sym_Int] = ACTIONS(1),
-    [anon_sym_Float] = ACTIONS(1),
-    [anon_sym_String] = ACTIONS(1),
-    [anon_sym_Number] = ACTIONS(1),
-    [anon_sym_Result] = ACTIONS(1),
-    [anon_sym_DQUOTE] = ACTIONS(1),
-    [anon_sym_BSLASH] = ACTIONS(1),
-    [aux_sym_escape_sequence_token1] = ACTIONS(1),
-    [aux_sym_escape_sequence_token2] = ACTIONS(1),
-    [aux_sym_number_token1] = ACTIONS(1),
-    [aux_sym_number_token2] = ACTIONS(1),
-    [anon_sym_false] = ACTIONS(1),
-    [anon_sym_PI] = ACTIONS(1),
-    [anon_sym_INFINITY] = ACTIONS(1),
-    [anon_sym_SLASH_SLASH] = ACTIONS(3),
-  },
-  [STATE(1)] = {
-    [sym_program] = STATE(202),
-    [sym__statement] = STATE(2),
-    [sym_function_definition] = STATE(2),
-    [sym_function_implementation] = STATE(2),
-    [sym_when_expression] = STATE(2),
-    [sym__expression] = STATE(103),
-    [sym_function_call] = STATE(80),
-    [sym_member_access] = STATE(65),
-    [sym_binary_expression] = STATE(80),
-    [sym_unary_expression] = STATE(80),
-    [sym_parenthesized_expression] = STATE(80),
-    [sym_list_expression] = STATE(80),
-    [sym_table_expression] = STATE(80),
-    [sym_expression_statement] = STATE(2),
-    [sym_literal] = STATE(80),
-    [sym_string] = STATE(81),
-    [sym_number] = STATE(81),
-    [sym_boolean] = STATE(81),
-    [sym_constant] = STATE(81),
-    [sym_comment] = STATE(1),
-    [aux_sym_program_repeat1] = STATE(2),
-    [ts_builtin_sym_end] = ACTIONS(5),
-    [anon_sym_LPAREN] = ACTIONS(7),
-    [anon_sym_when] = ACTIONS(9),
-    [anon_sym_LBRACK] = ACTIONS(11),
-    [anon_sym_LBRACE] = ACTIONS(13),
-    [anon_sym_PLUS] = ACTIONS(15),
-    [anon_sym_DASH] = ACTIONS(15),
-    [anon_sym_DQUOTE] = ACTIONS(17),
-    [aux_sym_number_token1] = ACTIONS(19),
-    [aux_sym_number_token2] = ACTIONS(21),
-    [anon_sym_true] = ACTIONS(23),
-    [anon_sym_false] = ACTIONS(23),
-    [anon_sym_PI] = ACTIONS(25),
-    [anon_sym_INFINITY] = ACTIONS(25),
-    [sym_identifier] = ACTIONS(27),
-    [anon_sym_SLASH_SLASH] = ACTIONS(29),
-  },
-};
-
-static const uint16_t ts_small_parse_table[] = {
-  [0] = 19,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(9), 1,
-      anon_sym_when,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(27), 1,
-      sym_identifier,
-    ACTIONS(29), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(31), 1,
-      ts_builtin_sym_end,
-    STATE(2), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(103), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(3), 6,
-      sym__statement,
-      sym_function_definition,
-      sym_function_implementation,
-      sym_when_expression,
-      sym_expression_statement,
-      aux_sym_program_repeat1,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [75] = 18,
-    ACTIONS(33), 1,
-      ts_builtin_sym_end,
-    ACTIONS(35), 1,
-      anon_sym_LPAREN,
-    ACTIONS(38), 1,
-      anon_sym_when,
-    ACTIONS(41), 1,
-      anon_sym_LBRACK,
-    ACTIONS(44), 1,
-      anon_sym_LBRACE,
-    ACTIONS(50), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(53), 1,
-      aux_sym_number_token1,
-    ACTIONS(56), 1,
-      aux_sym_number_token2,
-    ACTIONS(65), 1,
-      sym_identifier,
-    ACTIONS(68), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(103), 1,
-      sym__expression,
-    ACTIONS(47), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(59), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(62), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(3), 7,
-      sym__statement,
-      sym_function_definition,
-      sym_function_implementation,
-      sym_when_expression,
-      sym_expression_statement,
-      sym_comment,
-      aux_sym_program_repeat1,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [148] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(73), 1,
-      anon_sym_LPAREN,
-    ACTIONS(77), 1,
-      anon_sym_DOT,
-    STATE(4), 1,
-      sym_comment,
-    ACTIONS(75), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(71), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [192] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(73), 1,
-      anon_sym_LPAREN,
-    STATE(5), 1,
-      sym_comment,
-    ACTIONS(75), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(71), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [233] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(6), 1,
-      sym_comment,
-    ACTIONS(81), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(79), 15,
-      anon_sym_SEMI,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [272] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(7), 1,
-      sym_comment,
-    ACTIONS(85), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(83), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [310] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(87), 1,
-      anon_sym_RBRACK,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(8), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(95), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [374] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    ACTIONS(91), 1,
-      anon_sym_RPAREN,
-    STATE(9), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(97), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [438] = 13,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(101), 1,
-      anon_sym_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_and,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(10), 1,
-      sym_comment,
-    ACTIONS(99), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(103), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(105), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(107), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(97), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(93), 5,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(95), 7,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [494] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(11), 1,
-      sym_comment,
-    ACTIONS(117), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(115), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [532] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(12), 1,
-      sym_comment,
-    ACTIONS(121), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(119), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [570] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(13), 1,
-      sym_comment,
-    ACTIONS(125), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(123), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [608] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(14), 1,
-      sym_comment,
-    ACTIONS(75), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(71), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [646] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(15), 1,
-      sym_comment,
-    ACTIONS(129), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(127), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [684] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(16), 1,
-      sym_comment,
-    ACTIONS(133), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(131), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [722] = 13,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(101), 1,
-      anon_sym_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_and,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(17), 1,
-      sym_comment,
-    ACTIONS(99), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(103), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(105), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(107), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(97), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(135), 5,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(137), 7,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [778] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(18), 1,
-      sym_comment,
-    ACTIONS(141), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(139), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [816] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(19), 1,
-      sym_comment,
-    ACTIONS(145), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(143), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [854] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(20), 1,
-      sym_comment,
-    ACTIONS(149), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(147), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [892] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(21), 1,
-      sym_comment,
-    ACTIONS(153), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(151), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [930] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(22), 1,
-      sym_comment,
-    ACTIONS(157), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(155), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [968] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(23), 1,
-      sym_comment,
-    ACTIONS(161), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(159), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1006] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_and,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(24), 1,
-      sym_comment,
-    ACTIONS(103), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(105), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(107), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(165), 8,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 10,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1056] = 11,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_and,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(25), 1,
-      sym_comment,
-    ACTIONS(103), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(105), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(107), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(97), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(163), 7,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(165), 8,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [1108] = 8,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_and,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(26), 1,
-      sym_comment,
-    ACTIONS(107), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(165), 10,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 12,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1154] = 7,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(109), 1,
-      anon_sym_and,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(27), 1,
-      sym_comment,
-    ACTIONS(165), 10,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1198] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(111), 1,
-      anon_sym_or,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(28), 1,
-      sym_comment,
-    ACTIONS(165), 11,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1240] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(113), 1,
-      anon_sym_xor,
-    STATE(29), 1,
-      sym_comment,
-    ACTIONS(165), 12,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1280] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(30), 1,
-      sym_comment,
-    ACTIONS(165), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(163), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1318] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(31), 1,
-      sym_comment,
-    ACTIONS(169), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(167), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1356] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(32), 1,
-      sym_comment,
-    ACTIONS(173), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(171), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1394] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(33), 1,
-      sym_comment,
-    ACTIONS(177), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(175), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1432] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    ACTIONS(179), 1,
-      anon_sym_RBRACK,
-    STATE(34), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(98), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1496] = 17,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    ACTIONS(181), 1,
-      anon_sym_RPAREN,
-    STATE(35), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(100), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1560] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(36), 1,
-      sym_comment,
-    ACTIONS(185), 13,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-    ACTIONS(183), 14,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-  [1598] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(37), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(71), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1659] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(38), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(72), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1720] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(24), 1,
-      sym__expression,
-    STATE(39), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1781] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(25), 1,
-      sym__expression,
-    STATE(40), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1842] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(26), 1,
-      sym__expression,
-    STATE(41), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1903] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(27), 1,
-      sym__expression,
-    STATE(42), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [1964] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(28), 1,
-      sym__expression,
-    STATE(43), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2025] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(29), 1,
-      sym__expression,
-    STATE(44), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2086] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(30), 1,
-      sym__expression,
-    STATE(45), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2147] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(46), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(79), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2208] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(47), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(94), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2269] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(48), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(101), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2330] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(49), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(106), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2391] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(50), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(105), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2452] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(10), 1,
-      sym__expression,
-    STATE(51), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2513] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(52), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(69), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2574] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(53), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(68), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2635] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(54), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(88), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2696] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(55), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(90), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2757] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(187), 1,
-      anon_sym_LPAREN,
-    ACTIONS(189), 1,
-      anon_sym_LBRACK,
-    ACTIONS(191), 1,
-      anon_sym_LBRACE,
-    ACTIONS(195), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(197), 1,
-      aux_sym_number_token1,
-    ACTIONS(199), 1,
-      aux_sym_number_token2,
-    ACTIONS(205), 1,
-      sym_identifier,
-    STATE(5), 1,
-      sym_member_access,
-    STATE(17), 1,
-      sym__expression,
-    STATE(56), 1,
-      sym_comment,
-    ACTIONS(193), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(201), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(203), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(15), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(14), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2818] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(57), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(70), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2879] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(58), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(104), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [2940] = 16,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      anon_sym_LPAREN,
-    ACTIONS(11), 1,
-      anon_sym_LBRACK,
-    ACTIONS(13), 1,
-      anon_sym_LBRACE,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(89), 1,
-      sym_identifier,
-    STATE(59), 1,
-      sym_comment,
-    STATE(65), 1,
-      sym_member_access,
-    STATE(102), 1,
-      sym__expression,
-    ACTIONS(15), 2,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(25), 2,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-    STATE(81), 4,
-      sym_string,
-      sym_number,
-      sym_boolean,
-      sym_constant,
-    STATE(80), 7,
-      sym_function_call,
-      sym_binary_expression,
-      sym_unary_expression,
-      sym_parenthesized_expression,
-      sym_list_expression,
-      sym_table_expression,
-      sym_literal,
-  [3001] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(207), 1,
-      anon_sym_LPAREN,
-    ACTIONS(209), 1,
-      anon_sym_DOT,
-    STATE(60), 1,
-      sym_comment,
-    ACTIONS(75), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(71), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3039] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(61), 1,
-      sym_comment,
-    ACTIONS(157), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(155), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3072] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(62), 1,
-      sym_comment,
-    ACTIONS(81), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(79), 19,
-      anon_sym_SEMI,
-      anon_sym_LPAREN,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3105] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(63), 1,
-      sym_comment,
-    ACTIONS(117), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(115), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3138] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(64), 1,
-      sym_comment,
-    ACTIONS(141), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(139), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3171] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(207), 1,
-      anon_sym_LPAREN,
-    STATE(65), 1,
-      sym_comment,
-    ACTIONS(75), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(71), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3206] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(66), 1,
-      sym_comment,
-    ACTIONS(121), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(119), 19,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3239] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(207), 1,
-      anon_sym_LPAREN,
-    ACTIONS(209), 1,
-      anon_sym_DOT,
-    ACTIONS(211), 1,
-      anon_sym_COLON,
-    ACTIONS(213), 1,
-      sym_identifier,
-    STATE(67), 1,
-      sym_comment,
-    STATE(154), 1,
-      aux_sym_function_implementation_repeat1,
-    ACTIONS(75), 6,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-    ACTIONS(71), 10,
-      anon_sym_SEMI,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-  [3281] = 8,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    STATE(68), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(165), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(163), 13,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_DOT_DOT,
-  [3321] = 7,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    STATE(69), 1,
-      sym_comment,
-    ACTIONS(165), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(163), 15,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_DOT_DOT,
-  [3359] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    STATE(70), 1,
-      sym_comment,
-    ACTIONS(165), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(163), 16,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_DOT_DOT,
-  [3395] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    STATE(71), 1,
-      sym_comment,
-    ACTIONS(165), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(163), 17,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_DOT_DOT,
-  [3429] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(72), 1,
-      sym_comment,
-    ACTIONS(165), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(163), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3461] = 15,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(223), 1,
-      anon_sym_SEMI,
-    ACTIONS(229), 1,
-      anon_sym_LBRACK,
-    ACTIONS(231), 1,
-      anon_sym_LBRACE,
-    STATE(73), 1,
-      sym_comment,
-    STATE(77), 1,
-      aux_sym_when_expression_repeat1,
-    STATE(118), 1,
-      sym_when_pattern,
-    STATE(193), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(225), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(227), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [3515] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(74), 1,
-      sym_comment,
-    ACTIONS(169), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(167), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3547] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(75), 1,
-      sym_comment,
-    ACTIONS(85), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(83), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3579] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(76), 1,
-      sym_comment,
-    ACTIONS(173), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(171), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3611] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(233), 1,
-      anon_sym_SEMI,
-    ACTIONS(241), 1,
-      anon_sym_LBRACK,
-    ACTIONS(244), 1,
-      anon_sym_LBRACE,
-    ACTIONS(247), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(250), 1,
-      aux_sym_number_token1,
-    ACTIONS(253), 1,
-      aux_sym_number_token2,
-    STATE(118), 1,
-      sym_when_pattern,
-    STATE(193), 1,
-      sym__pattern,
-    ACTIONS(235), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(238), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    ACTIONS(256), 2,
-      anon_sym_true,
-      anon_sym_false,
-    STATE(77), 2,
-      sym_comment,
-      aux_sym_when_expression_repeat1,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [3663] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(78), 1,
-      sym_comment,
-    ACTIONS(177), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(175), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3695] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    STATE(79), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(135), 6,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [3743] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(80), 1,
-      sym_comment,
-    ACTIONS(75), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(71), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3775] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(81), 1,
-      sym_comment,
-    ACTIONS(129), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(127), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3807] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(82), 1,
-      sym_comment,
-    ACTIONS(125), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(123), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3839] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(83), 1,
-      sym_comment,
-    ACTIONS(145), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(143), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3871] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(84), 1,
-      sym_comment,
-    ACTIONS(149), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(147), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3903] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(85), 1,
-      sym_comment,
-    ACTIONS(133), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(131), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3935] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(86), 1,
-      sym_comment,
-    ACTIONS(153), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(151), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3967] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(87), 1,
-      sym_comment,
-    ACTIONS(161), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(159), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [3999] = 10,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(165), 1,
-      anon_sym_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    STATE(88), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(163), 11,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-  [4043] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(89), 1,
-      sym_comment,
-    ACTIONS(185), 3,
-      anon_sym_SLASH,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(183), 18,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_and,
-      anon_sym_or,
-      anon_sym_xor,
-      anon_sym_DOT_DOT,
-  [4075] = 11,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(165), 1,
-      anon_sym_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    STATE(90), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(163), 8,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_is,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-  [4121] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(229), 1,
-      anon_sym_LBRACK,
-    ACTIONS(231), 1,
-      anon_sym_LBRACE,
-    STATE(73), 1,
-      aux_sym_when_expression_repeat1,
-    STATE(91), 1,
-      sym_comment,
-    STATE(118), 1,
-      sym_when_pattern,
-    STATE(193), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(225), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(227), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4172] = 13,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(229), 1,
-      anon_sym_LBRACK,
-    ACTIONS(231), 1,
-      anon_sym_LBRACE,
-    ACTIONS(269), 1,
-      anon_sym_RBRACK,
-    STATE(92), 1,
-      sym_comment,
-    STATE(144), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(225), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(227), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4220] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(229), 1,
-      anon_sym_LBRACK,
-    ACTIONS(231), 1,
-      anon_sym_LBRACE,
-    STATE(93), 1,
-      sym_comment,
-    STATE(187), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(225), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(227), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4265] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    STATE(94), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-    ACTIONS(271), 3,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-  [4310] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(275), 1,
-      anon_sym_RBRACK,
-    STATE(95), 1,
-      sym_comment,
-    STATE(160), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4359] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(229), 1,
-      anon_sym_LBRACK,
-    ACTIONS(231), 1,
-      anon_sym_LBRACE,
-    STATE(96), 1,
-      sym_comment,
-    STATE(141), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(225), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(227), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4404] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(277), 1,
-      anon_sym_RPAREN,
-    STATE(97), 1,
-      sym_comment,
-    STATE(158), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4453] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(279), 1,
-      anon_sym_RBRACK,
-    STATE(98), 1,
-      sym_comment,
-    STATE(173), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4502] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(17), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(19), 1,
-      aux_sym_number_token1,
-    ACTIONS(21), 1,
-      aux_sym_number_token2,
-    ACTIONS(229), 1,
-      anon_sym_LBRACK,
-    ACTIONS(231), 1,
-      anon_sym_LBRACE,
-    STATE(99), 1,
-      sym_comment,
-    STATE(185), 1,
-      sym__pattern,
-    ACTIONS(23), 2,
-      anon_sym_true,
-      anon_sym_false,
-    ACTIONS(225), 2,
-      anon_sym_Ok,
-      anon_sym_Err,
-    ACTIONS(227), 2,
-      sym_wildcard_pattern,
-      sym_identifier,
-    STATE(137), 6,
-      sym_result_pattern,
-      sym_list_pattern,
-      sym_table_pattern,
-      sym_string,
-      sym_number,
-      sym_boolean,
-  [4547] = 14,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(281), 1,
-      anon_sym_RPAREN,
-    STATE(100), 1,
-      sym_comment,
-    STATE(175), 1,
-      aux_sym_function_call_repeat1,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4596] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    STATE(101), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(283), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4640] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(285), 1,
-      anon_sym_RPAREN,
-    STATE(102), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4683] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(287), 1,
-      anon_sym_SEMI,
-    STATE(103), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4726] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(289), 1,
-      anon_sym_RPAREN,
-    STATE(104), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4769] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(291), 1,
-      anon_sym_SEMI,
-    STATE(105), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4812] = 12,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(217), 1,
-      anon_sym_and,
-    ACTIONS(219), 1,
-      anon_sym_or,
-    ACTIONS(221), 1,
-      anon_sym_xor,
-    ACTIONS(263), 1,
-      anon_sym_SLASH,
-    ACTIONS(293), 1,
-      anon_sym_is,
-    STATE(106), 1,
-      sym_comment,
-    ACTIONS(215), 2,
-      anon_sym_EQ,
-      anon_sym_BANG_EQ,
-    ACTIONS(261), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(265), 2,
-      anon_sym_GT,
-      anon_sym_LT,
-    ACTIONS(267), 2,
-      anon_sym_GT_EQ,
-      anon_sym_LT_EQ,
-    ACTIONS(259), 3,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DOT_DOT,
-  [4855] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(295), 1,
-      anon_sym_LBRACK,
-    ACTIONS(297), 1,
-      anon_sym_LBRACE,
-    ACTIONS(301), 1,
-      anon_sym_Result,
-    ACTIONS(303), 1,
-      sym_identifier,
-    STATE(107), 1,
-      sym_comment,
-    STATE(183), 1,
-      sym__type,
-    ACTIONS(299), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(124), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [4891] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(295), 1,
-      anon_sym_LBRACK,
-    ACTIONS(297), 1,
-      anon_sym_LBRACE,
-    ACTIONS(301), 1,
-      anon_sym_Result,
-    ACTIONS(303), 1,
-      sym_identifier,
-    STATE(108), 1,
-      sym_comment,
-    STATE(155), 1,
-      sym__type,
-    ACTIONS(299), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(124), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [4927] = 3,
-    STATE(109), 1,
-      sym_comment,
-    ACTIONS(307), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(305), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [4951] = 3,
-    STATE(110), 1,
-      sym_comment,
-    ACTIONS(311), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(309), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [4975] = 3,
-    STATE(111), 1,
-      sym_comment,
-    ACTIONS(315), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(313), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [4999] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(295), 1,
-      anon_sym_LBRACK,
-    ACTIONS(297), 1,
-      anon_sym_LBRACE,
-    ACTIONS(301), 1,
-      anon_sym_Result,
-    ACTIONS(303), 1,
-      sym_identifier,
-    STATE(112), 1,
-      sym_comment,
-    STATE(178), 1,
-      sym__type,
-    ACTIONS(299), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(124), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5035] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(295), 1,
-      anon_sym_LBRACK,
-    ACTIONS(297), 1,
-      anon_sym_LBRACE,
-    ACTIONS(301), 1,
-      anon_sym_Result,
-    ACTIONS(303), 1,
-      sym_identifier,
-    STATE(113), 1,
-      sym_comment,
-    STATE(186), 1,
-      sym__type,
-    ACTIONS(299), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(124), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5071] = 3,
-    STATE(114), 1,
-      sym_comment,
-    ACTIONS(319), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(317), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5095] = 3,
-    STATE(115), 1,
-      sym_comment,
-    ACTIONS(323), 7,
-      anon_sym_when,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      anon_sym_PI,
-      anon_sym_INFINITY,
-      sym_identifier,
-    ACTIONS(321), 9,
-      ts_builtin_sym_end,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_PLUS,
-      anon_sym_DASH,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-      anon_sym_SLASH_SLASH,
-  [5119] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(295), 1,
-      anon_sym_LBRACK,
-    ACTIONS(297), 1,
-      anon_sym_LBRACE,
-    ACTIONS(301), 1,
-      anon_sym_Result,
-    ACTIONS(303), 1,
-      sym_identifier,
-    STATE(116), 1,
-      sym_comment,
-    STATE(122), 1,
-      sym__type,
-    ACTIONS(299), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(124), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5155] = 9,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(295), 1,
-      anon_sym_LBRACK,
-    ACTIONS(297), 1,
-      anon_sym_LBRACE,
-    ACTIONS(301), 1,
-      anon_sym_Result,
-    ACTIONS(303), 1,
-      sym_identifier,
-    STATE(117), 1,
-      sym_comment,
-    STATE(147), 1,
-      sym__type,
-    ACTIONS(299), 5,
-      anon_sym_Bool,
-      anon_sym_Int,
-      anon_sym_Float,
-      anon_sym_String,
-      anon_sym_Number,
-    STATE(124), 5,
-      sym_primitive_type,
-      sym_list_type,
-      sym_table_type,
-      sym_result_type,
-      sym_function_type,
-  [5191] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(118), 1,
-      sym_comment,
-    ACTIONS(325), 5,
-      anon_sym_SEMI,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_DQUOTE,
-      aux_sym_number_token2,
-    ACTIONS(327), 7,
-      anon_sym_Ok,
-      anon_sym_Err,
-      sym_wildcard_pattern,
-      aux_sym_number_token1,
-      anon_sym_true,
-      anon_sym_false,
-      sym_identifier,
-  [5214] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(119), 1,
-      sym_comment,
-    ACTIONS(329), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5230] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(120), 1,
-      sym_comment,
-    ACTIONS(331), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5246] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(121), 1,
-      sym_comment,
-    ACTIONS(333), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5262] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(335), 1,
-      anon_sym_DASH_GT,
-    STATE(122), 1,
-      sym_comment,
-    ACTIONS(337), 6,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5280] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(123), 1,
-      sym_comment,
-    ACTIONS(339), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5296] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(124), 1,
-      sym_comment,
-    ACTIONS(341), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5312] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(125), 1,
-      sym_comment,
-    ACTIONS(343), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5328] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(126), 1,
-      sym_comment,
-    ACTIONS(345), 7,
-      anon_sym_DASH_GT,
-      anon_sym_SEMI,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_GT,
-  [5344] = 7,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(347), 1,
-      anon_sym_LPAREN,
-    ACTIONS(349), 1,
-      sym_identifier,
-    STATE(127), 1,
-      sym_comment,
-    STATE(167), 1,
-      sym_typed_parameter,
-    STATE(200), 1,
-      sym_parameter_list,
-    STATE(203), 1,
-      sym__parameter,
-  [5366] = 7,
-    ACTIONS(351), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(353), 1,
-      aux_sym_string_token1,
-    ACTIONS(355), 1,
-      anon_sym_BSLASH,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(128), 1,
-      sym_comment,
-    STATE(129), 1,
-      aux_sym_string_repeat1,
-    STATE(151), 1,
-      sym_escape_sequence,
-  [5388] = 7,
-    ACTIONS(353), 1,
-      aux_sym_string_token1,
-    ACTIONS(355), 1,
-      anon_sym_BSLASH,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(359), 1,
-      anon_sym_DQUOTE,
-    STATE(129), 1,
-      sym_comment,
-    STATE(131), 1,
-      aux_sym_string_repeat1,
-    STATE(151), 1,
-      sym_escape_sequence,
-  [5410] = 7,
-    ACTIONS(353), 1,
-      aux_sym_string_token1,
-    ACTIONS(355), 1,
-      anon_sym_BSLASH,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(361), 1,
-      anon_sym_DQUOTE,
-    STATE(130), 1,
-      sym_comment,
-    STATE(132), 1,
-      aux_sym_string_repeat1,
-    STATE(151), 1,
-      sym_escape_sequence,
-  [5432] = 6,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(363), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(365), 1,
-      aux_sym_string_token1,
-    ACTIONS(368), 1,
-      anon_sym_BSLASH,
-    STATE(151), 1,
-      sym_escape_sequence,
-    STATE(131), 2,
-      sym_comment,
-      aux_sym_string_repeat1,
-  [5452] = 7,
-    ACTIONS(353), 1,
-      aux_sym_string_token1,
-    ACTIONS(355), 1,
-      anon_sym_BSLASH,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(371), 1,
-      anon_sym_DQUOTE,
-    STATE(131), 1,
-      aux_sym_string_repeat1,
-    STATE(132), 1,
-      sym_comment,
-    STATE(151), 1,
-      sym_escape_sequence,
-  [5474] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(373), 1,
-      anon_sym_COLON,
-    STATE(133), 1,
-      sym_comment,
-    ACTIONS(375), 3,
-      anon_sym_DASH_GT,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [5489] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(134), 1,
-      sym_comment,
-    ACTIONS(377), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5502] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(135), 1,
-      sym_comment,
-    ACTIONS(379), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5515] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(136), 1,
-      sym_comment,
-    ACTIONS(381), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5528] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(137), 1,
-      sym_comment,
-    ACTIONS(383), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5541] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(385), 1,
-      anon_sym_COMMA,
-    ACTIONS(271), 2,
-      anon_sym_RPAREN,
-      anon_sym_RBRACK,
-    STATE(138), 2,
-      sym_comment,
-      aux_sym_function_call_repeat1,
-  [5556] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(139), 1,
-      sym_comment,
-    ACTIONS(388), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5569] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(140), 1,
-      sym_comment,
-    ACTIONS(390), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5582] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(141), 1,
-      sym_comment,
-    ACTIONS(392), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5595] = 6,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(349), 1,
-      sym_identifier,
-    ACTIONS(394), 1,
-      anon_sym_RPAREN,
-    STATE(142), 1,
-      sym_comment,
-    STATE(153), 1,
-      sym__parameter,
-    STATE(167), 1,
-      sym_typed_parameter,
-  [5614] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(143), 1,
-      sym_comment,
-    ACTIONS(396), 4,
-      anon_sym_COMMA,
-      anon_sym_then,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-  [5627] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(398), 1,
-      anon_sym_COMMA,
-    ACTIONS(400), 1,
-      anon_sym_RBRACK,
-    STATE(144), 1,
-      sym_comment,
-    STATE(159), 1,
-      aux_sym_list_pattern_repeat1,
-  [5643] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(402), 1,
-      anon_sym_COMMA,
-    ACTIONS(404), 1,
-      anon_sym_RBRACE,
-    STATE(145), 1,
-      sym_comment,
-    STATE(148), 1,
-      aux_sym_table_type_repeat1,
-  [5659] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(406), 1,
-      anon_sym_COMMA,
-    ACTIONS(409), 1,
-      anon_sym_RBRACE,
-    STATE(146), 2,
-      sym_comment,
-      aux_sym_table_expression_repeat1,
-  [5673] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(335), 1,
-      anon_sym_DASH_GT,
-    STATE(147), 1,
-      sym_comment,
-    ACTIONS(411), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [5687] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(413), 1,
-      anon_sym_COMMA,
-    ACTIONS(416), 1,
-      anon_sym_RBRACE,
-    STATE(148), 2,
-      sym_comment,
-      aux_sym_table_type_repeat1,
-  [5701] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(349), 1,
-      sym_identifier,
-    STATE(149), 1,
-      sym_comment,
-    STATE(167), 1,
-      sym_typed_parameter,
-    STATE(180), 1,
-      sym__parameter,
-  [5717] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(418), 1,
-      anon_sym_RPAREN,
-    ACTIONS(420), 1,
-      anon_sym_COMMA,
-    STATE(150), 1,
-      sym_comment,
-    STATE(169), 1,
-      aux_sym_parameter_list_repeat1,
-  [5733] = 3,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(151), 1,
-      sym_comment,
-    ACTIONS(422), 3,
-      anon_sym_DQUOTE,
-      aux_sym_string_token1,
-      anon_sym_BSLASH,
-  [5745] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(424), 1,
-      anon_sym_RBRACE,
-    ACTIONS(426), 1,
-      sym_identifier,
-    STATE(152), 1,
-      sym_comment,
-    STATE(172), 1,
-      sym_table_type_field,
-  [5761] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(420), 1,
-      anon_sym_COMMA,
-    ACTIONS(428), 1,
-      anon_sym_RPAREN,
-    STATE(150), 1,
-      aux_sym_parameter_list_repeat1,
-    STATE(153), 1,
-      sym_comment,
-  [5777] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(430), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(432), 1,
-      sym_identifier,
-    STATE(154), 1,
-      sym_comment,
-    STATE(166), 1,
-      aux_sym_function_implementation_repeat1,
-  [5793] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(335), 1,
-      anon_sym_DASH_GT,
-    STATE(155), 1,
-      sym_comment,
-    ACTIONS(434), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [5807] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(436), 1,
-      anon_sym_RBRACE,
-    ACTIONS(438), 1,
-      sym_identifier,
-    STATE(156), 1,
-      sym_comment,
-    STATE(170), 1,
-      sym_table_field,
-  [5823] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(440), 1,
-      anon_sym_RBRACE,
-    ACTIONS(442), 1,
-      sym_identifier,
-    STATE(157), 1,
-      sym_comment,
-    STATE(165), 1,
-      sym_table_field_pattern,
-  [5839] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(444), 1,
-      anon_sym_RPAREN,
-    STATE(138), 1,
-      aux_sym_function_call_repeat1,
-    STATE(158), 1,
-      sym_comment,
-  [5855] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(398), 1,
-      anon_sym_COMMA,
-    ACTIONS(446), 1,
-      anon_sym_RBRACK,
-    STATE(159), 1,
-      sym_comment,
-    STATE(176), 1,
-      aux_sym_list_pattern_repeat1,
-  [5871] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(448), 1,
-      anon_sym_RBRACK,
-    STATE(138), 1,
-      aux_sym_function_call_repeat1,
-    STATE(160), 1,
-      sym_comment,
-  [5887] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(450), 1,
-      anon_sym_COMMA,
-    ACTIONS(452), 1,
-      anon_sym_RBRACE,
-    STATE(146), 1,
-      aux_sym_table_expression_repeat1,
-    STATE(161), 1,
-      sym_comment,
-  [5903] = 3,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(162), 1,
-      sym_comment,
-    ACTIONS(454), 3,
-      anon_sym_DQUOTE,
-      aux_sym_string_token1,
-      anon_sym_BSLASH,
-  [5915] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(456), 1,
-      anon_sym_COMMA,
-    ACTIONS(458), 1,
-      anon_sym_RBRACE,
-    STATE(163), 1,
-      sym_comment,
-    STATE(164), 1,
-      aux_sym_table_pattern_repeat1,
-  [5931] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(460), 1,
-      anon_sym_COMMA,
-    ACTIONS(463), 1,
-      anon_sym_RBRACE,
-    STATE(164), 2,
-      sym_comment,
-      aux_sym_table_pattern_repeat1,
-  [5945] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(456), 1,
-      anon_sym_COMMA,
-    ACTIONS(465), 1,
-      anon_sym_RBRACE,
-    STATE(163), 1,
-      aux_sym_table_pattern_repeat1,
-    STATE(165), 1,
-      sym_comment,
-  [5961] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(467), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(469), 1,
-      sym_identifier,
-    STATE(166), 2,
-      sym_comment,
-      aux_sym_function_implementation_repeat1,
-  [5975] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(167), 1,
-      sym_comment,
-    ACTIONS(375), 3,
-      anon_sym_DASH_GT,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [5987] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(438), 1,
-      sym_identifier,
-    ACTIONS(472), 1,
-      anon_sym_RBRACE,
-    STATE(168), 1,
-      sym_comment,
-    STATE(171), 1,
-      sym_table_field,
-  [6003] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(474), 1,
-      anon_sym_RPAREN,
-    ACTIONS(476), 1,
-      anon_sym_COMMA,
-    STATE(169), 2,
-      sym_comment,
-      aux_sym_parameter_list_repeat1,
-  [6017] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(450), 1,
-      anon_sym_COMMA,
-    ACTIONS(479), 1,
-      anon_sym_RBRACE,
-    STATE(161), 1,
-      aux_sym_table_expression_repeat1,
-    STATE(170), 1,
-      sym_comment,
-  [6033] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(450), 1,
-      anon_sym_COMMA,
-    ACTIONS(481), 1,
-      anon_sym_RBRACE,
-    STATE(171), 1,
-      sym_comment,
-    STATE(174), 1,
-      aux_sym_table_expression_repeat1,
-  [6049] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(402), 1,
-      anon_sym_COMMA,
-    ACTIONS(483), 1,
-      anon_sym_RBRACE,
-    STATE(145), 1,
-      aux_sym_table_type_repeat1,
-    STATE(172), 1,
-      sym_comment,
-  [6065] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(485), 1,
-      anon_sym_RBRACK,
-    STATE(138), 1,
-      aux_sym_function_call_repeat1,
-    STATE(173), 1,
-      sym_comment,
-  [6081] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(450), 1,
-      anon_sym_COMMA,
-    ACTIONS(487), 1,
-      anon_sym_RBRACE,
-    STATE(146), 1,
-      aux_sym_table_expression_repeat1,
-    STATE(174), 1,
-      sym_comment,
-  [6097] = 5,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(273), 1,
-      anon_sym_COMMA,
-    ACTIONS(489), 1,
-      anon_sym_RPAREN,
-    STATE(138), 1,
-      aux_sym_function_call_repeat1,
-    STATE(175), 1,
-      sym_comment,
-  [6113] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(491), 1,
-      anon_sym_COMMA,
-    ACTIONS(494), 1,
-      anon_sym_RBRACK,
-    STATE(176), 2,
-      sym_comment,
-      aux_sym_list_pattern_repeat1,
-  [6127] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(177), 1,
-      sym_comment,
-    ACTIONS(463), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6138] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(335), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(496), 1,
-      anon_sym_GT,
-    STATE(178), 1,
-      sym_comment,
-  [6151] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(179), 1,
-      sym_comment,
-    ACTIONS(409), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6162] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(180), 1,
-      sym_comment,
-    ACTIONS(474), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [6173] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(181), 1,
-      sym_comment,
-    ACTIONS(416), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6184] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(442), 1,
-      sym_identifier,
-    STATE(177), 1,
-      sym_table_field_pattern,
-    STATE(182), 1,
-      sym_comment,
-  [6197] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(335), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(498), 1,
-      anon_sym_RBRACK,
-    STATE(183), 1,
-      sym_comment,
-  [6210] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(438), 1,
-      sym_identifier,
-    STATE(179), 1,
-      sym_table_field,
-    STATE(184), 1,
-      sym_comment,
-  [6223] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(185), 1,
-      sym_comment,
-    ACTIONS(494), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACK,
-  [6234] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(335), 1,
-      anon_sym_DASH_GT,
-    ACTIONS(500), 1,
-      anon_sym_SEMI,
-    STATE(186), 1,
-      sym_comment,
-  [6247] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(187), 1,
-      sym_comment,
-    ACTIONS(502), 2,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [6258] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(188), 1,
-      sym_comment,
-    ACTIONS(504), 2,
-      anon_sym_DASH_GT,
-      sym_identifier,
-  [6269] = 4,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(426), 1,
-      sym_identifier,
-    STATE(181), 1,
-      sym_table_type_field,
-    STATE(189), 1,
-      sym_comment,
-  [6282] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    STATE(190), 1,
-      sym_comment,
-    ACTIONS(506), 2,
-      aux_sym_escape_sequence_token1,
-      aux_sym_escape_sequence_token2,
-  [6293] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(508), 1,
-      anon_sym_DASH_GT,
-    STATE(191), 1,
-      sym_comment,
-  [6303] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(510), 1,
-      anon_sym_LT,
-    STATE(192), 1,
-      sym_comment,
-  [6313] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(512), 1,
-      anon_sym_then,
-    STATE(193), 1,
-      sym_comment,
-  [6323] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(514), 1,
-      anon_sym_COLON,
-    STATE(194), 1,
-      sym_comment,
-  [6333] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(516), 1,
-      anon_sym_DASH_GT,
-    STATE(195), 1,
-      sym_comment,
-  [6343] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(518), 1,
-      sym_identifier,
-    STATE(196), 1,
-      sym_comment,
-  [6353] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(520), 1,
-      anon_sym_DASH_GT,
-    STATE(197), 1,
-      sym_comment,
-  [6363] = 3,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(522), 1,
-      aux_sym_comment_token1,
-    STATE(198), 1,
-      sym_comment,
-  [6373] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(524), 1,
-      anon_sym_COLON,
-    STATE(199), 1,
-      sym_comment,
-  [6383] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(526), 1,
-      anon_sym_DASH_GT,
-    STATE(200), 1,
-      sym_comment,
-  [6393] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(528), 1,
-      sym_identifier,
-    STATE(201), 1,
-      sym_comment,
-  [6403] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(530), 1,
-      ts_builtin_sym_end,
-    STATE(202), 1,
-      sym_comment,
-  [6413] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(532), 1,
-      anon_sym_DASH_GT,
-    STATE(203), 1,
-      sym_comment,
-  [6423] = 3,
-    ACTIONS(357), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(534), 1,
-      aux_sym_comment_token1,
-    STATE(204), 1,
-      sym_comment,
-  [6433] = 3,
-    ACTIONS(3), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(536), 1,
-      anon_sym_COLON,
-    STATE(205), 1,
-      sym_comment,
-  [6443] = 1,
-    ACTIONS(305), 1,
-      ts_builtin_sym_end,
-};
-
-static const uint32_t ts_small_parse_table_map[] = {
-  [SMALL_STATE(2)] = 0,
-  [SMALL_STATE(3)] = 75,
-  [SMALL_STATE(4)] = 148,
-  [SMALL_STATE(5)] = 192,
-  [SMALL_STATE(6)] = 233,
-  [SMALL_STATE(7)] = 272,
-  [SMALL_STATE(8)] = 310,
-  [SMALL_STATE(9)] = 374,
-  [SMALL_STATE(10)] = 438,
-  [SMALL_STATE(11)] = 494,
-  [SMALL_STATE(12)] = 532,
-  [SMALL_STATE(13)] = 570,
-  [SMALL_STATE(14)] = 608,
-  [SMALL_STATE(15)] = 646,
-  [SMALL_STATE(16)] = 684,
-  [SMALL_STATE(17)] = 722,
-  [SMALL_STATE(18)] = 778,
-  [SMALL_STATE(19)] = 816,
-  [SMALL_STATE(20)] = 854,
-  [SMALL_STATE(21)] = 892,
-  [SMALL_STATE(22)] = 930,
-  [SMALL_STATE(23)] = 968,
-  [SMALL_STATE(24)] = 1006,
-  [SMALL_STATE(25)] = 1056,
-  [SMALL_STATE(26)] = 1108,
-  [SMALL_STATE(27)] = 1154,
-  [SMALL_STATE(28)] = 1198,
-  [SMALL_STATE(29)] = 1240,
-  [SMALL_STATE(30)] = 1280,
-  [SMALL_STATE(31)] = 1318,
-  [SMALL_STATE(32)] = 1356,
-  [SMALL_STATE(33)] = 1394,
-  [SMALL_STATE(34)] = 1432,
-  [SMALL_STATE(35)] = 1496,
-  [SMALL_STATE(36)] = 1560,
-  [SMALL_STATE(37)] = 1598,
-  [SMALL_STATE(38)] = 1659,
-  [SMALL_STATE(39)] = 1720,
-  [SMALL_STATE(40)] = 1781,
-  [SMALL_STATE(41)] = 1842,
-  [SMALL_STATE(42)] = 1903,
-  [SMALL_STATE(43)] = 1964,
-  [SMALL_STATE(44)] = 2025,
-  [SMALL_STATE(45)] = 2086,
-  [SMALL_STATE(46)] = 2147,
-  [SMALL_STATE(47)] = 2208,
-  [SMALL_STATE(48)] = 2269,
-  [SMALL_STATE(49)] = 2330,
-  [SMALL_STATE(50)] = 2391,
-  [SMALL_STATE(51)] = 2452,
-  [SMALL_STATE(52)] = 2513,
-  [SMALL_STATE(53)] = 2574,
-  [SMALL_STATE(54)] = 2635,
-  [SMALL_STATE(55)] = 2696,
-  [SMALL_STATE(56)] = 2757,
-  [SMALL_STATE(57)] = 2818,
-  [SMALL_STATE(58)] = 2879,
-  [SMALL_STATE(59)] = 2940,
-  [SMALL_STATE(60)] = 3001,
-  [SMALL_STATE(61)] = 3039,
-  [SMALL_STATE(62)] = 3072,
-  [SMALL_STATE(63)] = 3105,
-  [SMALL_STATE(64)] = 3138,
-  [SMALL_STATE(65)] = 3171,
-  [SMALL_STATE(66)] = 3206,
-  [SMALL_STATE(67)] = 3239,
-  [SMALL_STATE(68)] = 3281,
-  [SMALL_STATE(69)] = 3321,
-  [SMALL_STATE(70)] = 3359,
-  [SMALL_STATE(71)] = 3395,
-  [SMALL_STATE(72)] = 3429,
-  [SMALL_STATE(73)] = 3461,
-  [SMALL_STATE(74)] = 3515,
-  [SMALL_STATE(75)] = 3547,
-  [SMALL_STATE(76)] = 3579,
-  [SMALL_STATE(77)] = 3611,
-  [SMALL_STATE(78)] = 3663,
-  [SMALL_STATE(79)] = 3695,
-  [SMALL_STATE(80)] = 3743,
-  [SMALL_STATE(81)] = 3775,
-  [SMALL_STATE(82)] = 3807,
-  [SMALL_STATE(83)] = 3839,
-  [SMALL_STATE(84)] = 3871,
-  [SMALL_STATE(85)] = 3903,
-  [SMALL_STATE(86)] = 3935,
-  [SMALL_STATE(87)] = 3967,
-  [SMALL_STATE(88)] = 3999,
-  [SMALL_STATE(89)] = 4043,
-  [SMALL_STATE(90)] = 4075,
-  [SMALL_STATE(91)] = 4121,
-  [SMALL_STATE(92)] = 4172,
-  [SMALL_STATE(93)] = 4220,
-  [SMALL_STATE(94)] = 4265,
-  [SMALL_STATE(95)] = 4310,
-  [SMALL_STATE(96)] = 4359,
-  [SMALL_STATE(97)] = 4404,
-  [SMALL_STATE(98)] = 4453,
-  [SMALL_STATE(99)] = 4502,
-  [SMALL_STATE(100)] = 4547,
-  [SMALL_STATE(101)] = 4596,
-  [SMALL_STATE(102)] = 4640,
-  [SMALL_STATE(103)] = 4683,
-  [SMALL_STATE(104)] = 4726,
-  [SMALL_STATE(105)] = 4769,
-  [SMALL_STATE(106)] = 4812,
-  [SMALL_STATE(107)] = 4855,
-  [SMALL_STATE(108)] = 4891,
-  [SMALL_STATE(109)] = 4927,
-  [SMALL_STATE(110)] = 4951,
-  [SMALL_STATE(111)] = 4975,
-  [SMALL_STATE(112)] = 4999,
-  [SMALL_STATE(113)] = 5035,
-  [SMALL_STATE(114)] = 5071,
-  [SMALL_STATE(115)] = 5095,
-  [SMALL_STATE(116)] = 5119,
-  [SMALL_STATE(117)] = 5155,
-  [SMALL_STATE(118)] = 5191,
-  [SMALL_STATE(119)] = 5214,
-  [SMALL_STATE(120)] = 5230,
-  [SMALL_STATE(121)] = 5246,
-  [SMALL_STATE(122)] = 5262,
-  [SMALL_STATE(123)] = 5280,
-  [SMALL_STATE(124)] = 5296,
-  [SMALL_STATE(125)] = 5312,
-  [SMALL_STATE(126)] = 5328,
-  [SMALL_STATE(127)] = 5344,
-  [SMALL_STATE(128)] = 5366,
-  [SMALL_STATE(129)] = 5388,
-  [SMALL_STATE(130)] = 5410,
-  [SMALL_STATE(131)] = 5432,
-  [SMALL_STATE(132)] = 5452,
-  [SMALL_STATE(133)] = 5474,
-  [SMALL_STATE(134)] = 5489,
-  [SMALL_STATE(135)] = 5502,
-  [SMALL_STATE(136)] = 5515,
-  [SMALL_STATE(137)] = 5528,
-  [SMALL_STATE(138)] = 5541,
-  [SMALL_STATE(139)] = 5556,
-  [SMALL_STATE(140)] = 5569,
-  [SMALL_STATE(141)] = 5582,
-  [SMALL_STATE(142)] = 5595,
-  [SMALL_STATE(143)] = 5614,
-  [SMALL_STATE(144)] = 5627,
-  [SMALL_STATE(145)] = 5643,
-  [SMALL_STATE(146)] = 5659,
-  [SMALL_STATE(147)] = 5673,
-  [SMALL_STATE(148)] = 5687,
-  [SMALL_STATE(149)] = 5701,
-  [SMALL_STATE(150)] = 5717,
-  [SMALL_STATE(151)] = 5733,
-  [SMALL_STATE(152)] = 5745,
-  [SMALL_STATE(153)] = 5761,
-  [SMALL_STATE(154)] = 5777,
-  [SMALL_STATE(155)] = 5793,
-  [SMALL_STATE(156)] = 5807,
-  [SMALL_STATE(157)] = 5823,
-  [SMALL_STATE(158)] = 5839,
-  [SMALL_STATE(159)] = 5855,
-  [SMALL_STATE(160)] = 5871,
-  [SMALL_STATE(161)] = 5887,
-  [SMALL_STATE(162)] = 5903,
-  [SMALL_STATE(163)] = 5915,
-  [SMALL_STATE(164)] = 5931,
-  [SMALL_STATE(165)] = 5945,
-  [SMALL_STATE(166)] = 5961,
-  [SMALL_STATE(167)] = 5975,
-  [SMALL_STATE(168)] = 5987,
-  [SMALL_STATE(169)] = 6003,
-  [SMALL_STATE(170)] = 6017,
-  [SMALL_STATE(171)] = 6033,
-  [SMALL_STATE(172)] = 6049,
-  [SMALL_STATE(173)] = 6065,
-  [SMALL_STATE(174)] = 6081,
-  [SMALL_STATE(175)] = 6097,
-  [SMALL_STATE(176)] = 6113,
-  [SMALL_STATE(177)] = 6127,
-  [SMALL_STATE(178)] = 6138,
-  [SMALL_STATE(179)] = 6151,
-  [SMALL_STATE(180)] = 6162,
-  [SMALL_STATE(181)] = 6173,
-  [SMALL_STATE(182)] = 6184,
-  [SMALL_STATE(183)] = 6197,
-  [SMALL_STATE(184)] = 6210,
-  [SMALL_STATE(185)] = 6223,
-  [SMALL_STATE(186)] = 6234,
-  [SMALL_STATE(187)] = 6247,
-  [SMALL_STATE(188)] = 6258,
-  [SMALL_STATE(189)] = 6269,
-  [SMALL_STATE(190)] = 6282,
-  [SMALL_STATE(191)] = 6293,
-  [SMALL_STATE(192)] = 6303,
-  [SMALL_STATE(193)] = 6313,
-  [SMALL_STATE(194)] = 6323,
-  [SMALL_STATE(195)] = 6333,
-  [SMALL_STATE(196)] = 6343,
-  [SMALL_STATE(197)] = 6353,
-  [SMALL_STATE(198)] = 6363,
-  [SMALL_STATE(199)] = 6373,
-  [SMALL_STATE(200)] = 6383,
-  [SMALL_STATE(201)] = 6393,
-  [SMALL_STATE(202)] = 6403,
-  [SMALL_STATE(203)] = 6413,
-  [SMALL_STATE(204)] = 6423,
-  [SMALL_STATE(205)] = 6433,
-  [SMALL_STATE(206)] = 6443,
-};
-
-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(198),
-  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0),
-  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
-  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
-  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
-  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
-  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
-  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
-  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
-  [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
-  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66),
-  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82),
-  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
-  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
-  [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0),
-  [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0),
-  [35] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(58),
-  [38] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(49),
-  [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(8),
-  [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(156),
-  [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(46),
-  [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(128),
-  [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(63),
-  [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(63),
-  [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(66),
-  [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(82),
-  [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(67),
-  [68] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(204),
-  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1, 0, 0),
-  [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
-  [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 0),
-  [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201),
-  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_access, 3, 0, 3),
-  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_access, 3, 0, 3),
-  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 4, 0, 0),
-  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 4, 0, 0),
-  [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
-  [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
-  [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
-  [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_when_pattern, 3, 0, 9),
-  [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_when_pattern, 3, 0, 9),
-  [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
-  [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
-  [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40),
-  [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41),
-  [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
-  [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
-  [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43),
-  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
-  [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
-  [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1, 0, 0),
-  [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number, 1, 0, 0),
-  [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1, 0, 0),
-  [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1, 0, 0),
-  [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant, 1, 0, 0),
-  [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant, 1, 0, 0),
-  [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1, 0, 0),
-  [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1, 0, 0),
-  [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 2, 0, 0),
-  [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expression, 2, 0, 0),
-  [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, 0, 1),
-  [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, 0, 1),
-  [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 0),
-  [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 0),
-  [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0),
-  [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0),
-  [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 3, 0, 0),
-  [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expression, 3, 0, 0),
-  [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 3, 0, 0),
-  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 3, 0, 0),
-  [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 0),
-  [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 0),
-  [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, 0, 2),
-  [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, 0, 2),
-  [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 4),
-  [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 4),
-  [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 4, 0, 0),
-  [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expression, 4, 0, 0),
-  [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, 0, 2),
-  [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, 0, 2),
-  [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 5, 0, 2),
-  [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 5, 0, 2),
-  [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
-  [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
-  [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 2, 0, 0),
-  [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 2, 0, 0),
-  [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
-  [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
-  [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
-  [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
-  [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
-  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
-  [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
-  [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
-  [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
-  [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
-  [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
-  [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196),
-  [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
-  [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188),
-  [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
-  [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
-  [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
-  [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
-  [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
-  [225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96),
-  [227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137),
-  [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
-  [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
-  [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0),
-  [235] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(96),
-  [238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(137),
-  [241] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(92),
-  [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(157),
-  [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(128),
-  [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(63),
-  [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(63),
-  [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(66),
-  [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
-  [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
-  [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
-  [265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
-  [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
-  [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
-  [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2, 0, 0),
-  [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
-  [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
-  [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
-  [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
-  [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
-  [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_field, 3, 0, 5),
-  [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
-  [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
-  [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
-  [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
-  [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
-  [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
-  [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
-  [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120),
-  [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192),
-  [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124),
-  [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 0),
-  [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2, 0, 0),
-  [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0),
-  [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0),
-  [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_implementation, 5, 0, 8),
-  [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_implementation, 5, 0, 8),
-  [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_when_expression, 5, 0, 6),
-  [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_when_expression, 5, 0, 6),
-  [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 10),
-  [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 10),
-  [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_when_expression_repeat1, 1, 0, 0),
-  [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_when_expression_repeat1, 1, 0, 0),
-  [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 3, 0, 0),
-  [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_type, 1, 0, 0),
-  [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_result_type, 4, 0, 0),
-  [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
-  [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, 0, 0),
-  [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 4, 0, 0),
-  [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1, 0, 0),
-  [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 2, 0, 0),
-  [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_type, 3, 0, 0),
-  [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
-  [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
-  [351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64),
-  [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151),
-  [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190),
-  [357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198),
-  [359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
-  [361] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
-  [363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 0),
-  [365] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 0), SHIFT_REPEAT(151),
-  [368] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 0), SHIFT_REPEAT(190),
-  [371] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
-  [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
-  [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter, 1, 0, 0),
-  [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_pattern, 2, 0, 0),
-  [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 4, 0, 0),
-  [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_pattern, 4, 0, 0),
-  [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern, 1, 0, 0),
-  [385] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2, 0, 0), SHIFT_REPEAT(47),
-  [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 0),
-  [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_pattern, 3, 0, 0),
-  [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_result_pattern, 2, 0, 0),
-  [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
-  [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0),
-  [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
-  [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
-  [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
-  [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
-  [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(184),
-  [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_expression_repeat1, 2, 0, 0),
-  [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type_field, 3, 0, 5),
-  [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_type_repeat1, 2, 0, 0), SHIFT_REPEAT(189),
-  [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_type_repeat1, 2, 0, 0),
-  [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
-  [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
-  [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 0),
-  [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
-  [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
-  [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
-  [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
-  [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
-  [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 7),
-  [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
-  [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
-  [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
-  [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
-  [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
-  [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
-  [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
-  [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
-  [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
-  [454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_escape_sequence, 2, 0, 0),
-  [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
-  [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
-  [460] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(182),
-  [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_pattern_repeat1, 2, 0, 0),
-  [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
-  [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_implementation_repeat1, 2, 0, 0),
-  [469] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_implementation_repeat1, 2, 0, 0), SHIFT_REPEAT(188),
-  [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
-  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0),
-  [476] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(149),
-  [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
-  [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
-  [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
-  [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
-  [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
-  [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
-  [491] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(99),
-  [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2, 0, 0),
-  [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
-  [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
-  [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
-  [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_field_pattern, 3, 0, 5),
-  [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_implementation_repeat1, 1, 0, 0),
-  [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
-  [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4, 0, 0),
-  [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
-  [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
-  [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
-  [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0),
-  [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
-  [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0),
-  [522] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206),
-  [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
-  [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
-  [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
-  [530] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
-  [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 1, 0, 0),
-  [534] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109),
-  [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef TREE_SITTER_HIDE_SYMBOLS
-#define TS_PUBLIC
-#elif defined(_WIN32)
-#define TS_PUBLIC __declspec(dllexport)
-#else
-#define TS_PUBLIC __attribute__((visibility("default")))
-#endif
-
-TS_PUBLIC const TSLanguage *tree_sitter_baba_yaga(void) {
-  static const TSLanguage language = {
-    .abi_version = LANGUAGE_VERSION,
-    .symbol_count = SYMBOL_COUNT,
-    .alias_count = ALIAS_COUNT,
-    .token_count = TOKEN_COUNT,
-    .external_token_count = EXTERNAL_TOKEN_COUNT,
-    .state_count = STATE_COUNT,
-    .large_state_count = LARGE_STATE_COUNT,
-    .production_id_count = PRODUCTION_ID_COUNT,
-    .field_count = FIELD_COUNT,
-    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
-    .parse_table = &ts_parse_table[0][0],
-    .small_parse_table = ts_small_parse_table,
-    .small_parse_table_map = ts_small_parse_table_map,
-    .parse_actions = ts_parse_actions,
-    .symbol_names = ts_symbol_names,
-    .field_names = ts_field_names,
-    .field_map_slices = ts_field_map_slices,
-    .field_map_entries = ts_field_map_entries,
-    .symbol_metadata = ts_symbol_metadata,
-    .public_symbol_map = ts_symbol_map,
-    .alias_map = ts_non_terminal_alias_map,
-    .alias_sequences = &ts_alias_sequences[0][0],
-    .lex_modes = (const void*)ts_lex_modes,
-    .lex_fn = ts_lex,
-    .primary_state_ids = ts_primary_state_ids,
-  };
-  return &language;
-}
-#ifdef __cplusplus
-}
-#endif
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/alloc.h b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/alloc.h
deleted file mode 100644
index 1abdd12..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/alloc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef TREE_SITTER_ALLOC_H_
-#define TREE_SITTER_ALLOC_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-// Allow clients to override allocation functions
-#ifdef TREE_SITTER_REUSE_ALLOCATOR
-
-extern void *(*ts_current_malloc)(size_t size);
-extern void *(*ts_current_calloc)(size_t count, size_t size);
-extern void *(*ts_current_realloc)(void *ptr, size_t size);
-extern void (*ts_current_free)(void *ptr);
-
-#ifndef ts_malloc
-#define ts_malloc  ts_current_malloc
-#endif
-#ifndef ts_calloc
-#define ts_calloc  ts_current_calloc
-#endif
-#ifndef ts_realloc
-#define ts_realloc ts_current_realloc
-#endif
-#ifndef ts_free
-#define ts_free    ts_current_free
-#endif
-
-#else
-
-#ifndef ts_malloc
-#define ts_malloc  malloc
-#endif
-#ifndef ts_calloc
-#define ts_calloc  calloc
-#endif
-#ifndef ts_realloc
-#define ts_realloc realloc
-#endif
-#ifndef ts_free
-#define ts_free    free
-#endif
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // TREE_SITTER_ALLOC_H_
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/array.h b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/array.h
deleted file mode 100644
index a17a574..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/array.h
+++ /dev/null
@@ -1,291 +0,0 @@
-#ifndef TREE_SITTER_ARRAY_H_
-#define TREE_SITTER_ARRAY_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "./alloc.h"
-
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable : 4101)
-#elif defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wunused-variable"
-#endif
-
-#define Array(T)       \
-  struct {             \
-    T *contents;       \
-    uint32_t size;     \
-    uint32_t capacity; \
-  }
-
-/// Initialize an array.
-#define array_init(self) \
-  ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL)
-
-/// Create an empty array.
-#define array_new() \
-  { NULL, 0, 0 }
-
-/// Get a pointer to the element at a given `index` in the array.
-#define array_get(self, _index) \
-  (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index])
-
-/// Get a pointer to the first element in the array.
-#define array_front(self) array_get(self, 0)
-
-/// Get a pointer to the last element in the array.
-#define array_back(self) array_get(self, (self)->size - 1)
-
-/// Clear the array, setting its size to zero. Note that this does not free any
-/// memory allocated for the array's contents.
-#define array_clear(self) ((self)->size = 0)
-
-/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is
-/// less than the array's current capacity, this function has no effect.
-#define array_reserve(self, new_capacity) \
-  _array__reserve((Array *)(self), array_elem_size(self), new_capacity)
-
-/// Free any memory allocated for this array. Note that this does not free any
-/// memory allocated for the array's contents.
-#define array_delete(self) _array__delete((Array *)(self))
-
-/// Push a new `element` onto the end of the array.
-#define array_push(self, element)                            \
-  (_array__grow((Array *)(self), 1, array_elem_size(self)), \
-   (self)->contents[(self)->size++] = (element))
-
-/// Increase the array's size by `count` elements.
-/// New elements are zero-initialized.
-#define array_grow_by(self, count) \
-  do { \
-    if ((count) == 0) break; \
-    _array__grow((Array *)(self), count, array_elem_size(self)); \
-    memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \
-    (self)->size += (count); \
-  } while (0)
-
-/// Append all elements from one array to the end of another.
-#define array_push_all(self, other)                                       \
-  array_extend((self), (other)->size, (other)->contents)
-
-/// Append `count` elements to the end of the array, reading their values from the
-/// `contents` pointer.
-#define array_extend(self, count, contents)                    \
-  _array__splice(                                               \
-    (Array *)(self), array_elem_size(self), (self)->size, \
-    0, count,  contents                                        \
-  )
-
-/// Remove `old_count` elements from the array starting at the given `index`. At
-/// the same index, insert `new_count` new elements, reading their values from the
-/// `new_contents` pointer.
-#define array_splice(self, _index, old_count, new_count, new_contents)  \
-  _array__splice(                                                       \
-    (Array *)(self), array_elem_size(self), _index,                \
-    old_count, new_count, new_contents                                 \
-  )
-
-/// Insert one `element` into the array at the given `index`.
-#define array_insert(self, _index, element) \
-  _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element))
-
-/// Remove one element from the array at the given `index`.
-#define array_erase(self, _index) \
-  _array__erase((Array *)(self), array_elem_size(self), _index)
-
-/// Pop the last element off the array, returning the element by value.
-#define array_pop(self) ((self)->contents[--(self)->size])
-
-/// Assign the contents of one array to another, reallocating if necessary.
-#define array_assign(self, other) \
-  _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self))
-
-/// Swap one array with another
-#define array_swap(self, other) \
-  _array__swap((Array *)(self), (Array *)(other))
-
-/// Get the size of the array contents
-#define array_elem_size(self) (sizeof *(self)->contents)
-
-/// Search a sorted array for a given `needle` value, using the given `compare`
-/// callback to determine the order.
-///
-/// If an existing element is found to be equal to `needle`, then the `index`
-/// out-parameter is set to the existing value's index, and the `exists`
-/// out-parameter is set to true. Otherwise, `index` is set to an index where
-/// `needle` should be inserted in order to preserve the sorting, and `exists`
-/// is set to false.
-#define array_search_sorted_with(self, compare, needle, _index, _exists) \
-  _array__search_sorted(self, 0, compare, , needle, _index, _exists)
-
-/// Search a sorted array for a given `needle` value, using integer comparisons
-/// of a given struct field (specified with a leading dot) to determine the order.
-///
-/// See also `array_search_sorted_with`.
-#define array_search_sorted_by(self, field, needle, _index, _exists) \
-  _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists)
-
-/// Insert a given `value` into a sorted array, using the given `compare`
-/// callback to determine the order.
-#define array_insert_sorted_with(self, compare, value) \
-  do { \
-    unsigned _index, _exists; \
-    array_search_sorted_with(self, compare, &(value), &_index, &_exists); \
-    if (!_exists) array_insert(self, _index, value); \
-  } while (0)
-
-/// Insert a given `value` into a sorted array, using integer comparisons of
-/// a given struct field (specified with a leading dot) to determine the order.
-///
-/// See also `array_search_sorted_by`.
-#define array_insert_sorted_by(self, field, value) \
-  do { \
-    unsigned _index, _exists; \
-    array_search_sorted_by(self, field, (value) field, &_index, &_exists); \
-    if (!_exists) array_insert(self, _index, value); \
-  } while (0)
-
-// Private
-
-typedef Array(void) Array;
-
-/// This is not what you're looking for, see `array_delete`.
-static inline void _array__delete(Array *self) {
-  if (self->contents) {
-    ts_free(self->contents);
-    self->contents = NULL;
-    self->size = 0;
-    self->capacity = 0;
-  }
-}
-
-/// This is not what you're looking for, see `array_erase`.
-static inline void _array__erase(Array *self, size_t element_size,
-                                uint32_t index) {
-  assert(index < self->size);
-  char *contents = (char *)self->contents;
-  memmove(contents + index * element_size, contents + (index + 1) * element_size,
-          (self->size - index - 1) * element_size);
-  self->size--;
-}
-
-/// This is not what you're looking for, see `array_reserve`.
-static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) {
-  if (new_capacity > self->capacity) {
-    if (self->contents) {
-      self->contents = ts_realloc(self->contents, new_capacity * element_size);
-    } else {
-      self->contents = ts_malloc(new_capacity * element_size);
-    }
-    self->capacity = new_capacity;
-  }
-}
-
-/// This is not what you're looking for, see `array_assign`.
-static inline void _array__assign(Array *self, const Array *other, size_t element_size) {
-  _array__reserve(self, element_size, other->size);
-  self->size = other->size;
-  memcpy(self->contents, other->contents, self->size * element_size);
-}
-
-/// This is not what you're looking for, see `array_swap`.
-static inline void _array__swap(Array *self, Array *other) {
-  Array swap = *other;
-  *other = *self;
-  *self = swap;
-}
-
-/// This is not what you're looking for, see `array_push` or `array_grow_by`.
-static inline void _array__grow(Array *self, uint32_t count, size_t element_size) {
-  uint32_t new_size = self->size + count;
-  if (new_size > self->capacity) {
-    uint32_t new_capacity = self->capacity * 2;
-    if (new_capacity < 8) new_capacity = 8;
-    if (new_capacity < new_size) new_capacity = new_size;
-    _array__reserve(self, element_size, new_capacity);
-  }
-}
-
-/// This is not what you're looking for, see `array_splice`.
-static inline void _array__splice(Array *self, size_t element_size,
-                                 uint32_t index, uint32_t old_count,
-                                 uint32_t new_count, const void *elements) {
-  uint32_t new_size = self->size + new_count - old_count;
-  uint32_t old_end = index + old_count;
-  uint32_t new_end = index + new_count;
-  assert(old_end <= self->size);
-
-  _array__reserve(self, element_size, new_size);
-
-  char *contents = (char *)self->contents;
-  if (self->size > old_end) {
-    memmove(
-      contents + new_end * element_size,
-      contents + old_end * element_size,
-      (self->size - old_end) * element_size
-    );
-  }
-  if (new_count > 0) {
-    if (elements) {
-      memcpy(
-        (contents + index * element_size),
-        elements,
-        new_count * element_size
-      );
-    } else {
-      memset(
-        (contents + index * element_size),
-        0,
-        new_count * element_size
-      );
-    }
-  }
-  self->size += new_count - old_count;
-}
-
-/// A binary search routine, based on Rust's `std::slice::binary_search_by`.
-/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`.
-#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \
-  do { \
-    *(_index) = start; \
-    *(_exists) = false; \
-    uint32_t size = (self)->size - *(_index); \
-    if (size == 0) break; \
-    int comparison; \
-    while (size > 1) { \
-      uint32_t half_size = size / 2; \
-      uint32_t mid_index = *(_index) + half_size; \
-      comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \
-      if (comparison <= 0) *(_index) = mid_index; \
-      size -= half_size; \
-    } \
-    comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \
-    if (comparison == 0) *(_exists) = true; \
-    else if (comparison < 0) *(_index) += 1; \
-  } while (0)
-
-/// Helper macro for the `_sorted_by` routines below. This takes the left (existing)
-/// parameter by reference in order to work with the generic sorting function above.
-#define _compare_int(a, b) ((int)*(a) - (int)(b))
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#elif defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // TREE_SITTER_ARRAY_H_
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/parser.h b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/parser.h
deleted file mode 100644
index 858107d..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/src/tree_sitter/parser.h
+++ /dev/null
@@ -1,286 +0,0 @@
-#ifndef TREE_SITTER_PARSER_H_
-#define TREE_SITTER_PARSER_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-#define ts_builtin_sym_error ((TSSymbol)-1)
-#define ts_builtin_sym_end 0
-#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024
-
-#ifndef TREE_SITTER_API_H_
-typedef uint16_t TSStateId;
-typedef uint16_t TSSymbol;
-typedef uint16_t TSFieldId;
-typedef struct TSLanguage TSLanguage;
-typedef struct TSLanguageMetadata {
-  uint8_t major_version;
-  uint8_t minor_version;
-  uint8_t patch_version;
-} TSLanguageMetadata;
-#endif
-
-typedef struct {
-  TSFieldId field_id;
-  uint8_t child_index;
-  bool inherited;
-} TSFieldMapEntry;
-
-// Used to index the field and supertype maps.
-typedef struct {
-  uint16_t index;
-  uint16_t length;
-} TSMapSlice;
-
-typedef struct {
-  bool visible;
-  bool named;
-  bool supertype;
-} TSSymbolMetadata;
-
-typedef struct TSLexer TSLexer;
-
-struct TSLexer {
-  int32_t lookahead;
-  TSSymbol result_symbol;
-  void (*advance)(TSLexer *, bool);
-  void (*mark_end)(TSLexer *);
-  uint32_t (*get_column)(TSLexer *);
-  bool (*is_at_included_range_start)(const TSLexer *);
-  bool (*eof)(const TSLexer *);
-  void (*log)(const TSLexer *, const char *, ...);
-};
-
-typedef enum {
-  TSParseActionTypeShift,
-  TSParseActionTypeReduce,
-  TSParseActionTypeAccept,
-  TSParseActionTypeRecover,
-} TSParseActionType;
-
-typedef union {
-  struct {
-    uint8_t type;
-    TSStateId state;
-    bool extra;
-    bool repetition;
-  } shift;
-  struct {
-    uint8_t type;
-    uint8_t child_count;
-    TSSymbol symbol;
-    int16_t dynamic_precedence;
-    uint16_t production_id;
-  } reduce;
-  uint8_t type;
-} TSParseAction;
-
-typedef struct {
-  uint16_t lex_state;
-  uint16_t external_lex_state;
-} TSLexMode;
-
-typedef struct {
-  uint16_t lex_state;
-  uint16_t external_lex_state;
-  uint16_t reserved_word_set_id;
-} TSLexerMode;
-
-typedef union {
-  TSParseAction action;
-  struct {
-    uint8_t count;
-    bool reusable;
-  } entry;
-} TSParseActionEntry;
-
-typedef struct {
-  int32_t start;
-  int32_t end;
-} TSCharacterRange;
-
-struct TSLanguage {
-  uint32_t abi_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 TSMapSlice *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 TSLexerMode *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;
-  const char *name;
-  const TSSymbol *reserved_words;
-  uint16_t max_reserved_word_set_size;
-  uint32_t supertype_count;
-  const TSSymbol *supertype_symbols;
-  const TSMapSlice *supertype_map_slices;
-  const TSSymbol *supertype_map_entries;
-  TSLanguageMetadata metadata;
-};
-
-static inline bool set_contains(const TSCharacterRange *ranges, uint32_t len, int32_t lookahead) {
-  uint32_t index = 0;
-  uint32_t size = len - index;
-  while (size > 1) {
-    uint32_t half_size = size / 2;
-    uint32_t mid_index = index + half_size;
-    const TSCharacterRange *range = &ranges[mid_index];
-    if (lookahead >= range->start && lookahead <= range->end) {
-      return true;
-    } else if (lookahead > range->end) {
-      index = mid_index;
-    }
-    size -= half_size;
-  }
-  const TSCharacterRange *range = &ranges[index];
-  return (lookahead >= range->start && lookahead <= range->end);
-}
-
-/*
- *  Lexer Macros
- */
-
-#ifdef _MSC_VER
-#define UNUSED __pragma(warning(suppress : 4101))
-#else
-#define UNUSED __attribute__((unused))
-#endif
-
-#define START_LEXER()           \
-  bool result = false;          \
-  bool skip = false;            \
-  UNUSED                        \
-  bool eof = false;             \
-  int32_t lookahead;            \
-  goto start;                   \
-  next_state:                   \
-  lexer->advance(lexer, skip);  \
-  start:                        \
-  skip = false;                 \
-  lookahead = lexer->lookahead;
-
-#define ADVANCE(state_value) \
-  {                          \
-    state = state_value;     \
-    goto next_state;         \
-  }
-
-#define ADVANCE_MAP(...)                                              \
-  {                                                                   \
-    static const uint16_t map[] = { __VA_ARGS__ };                    \
-    for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) {  \
-      if (map[i] == lookahead) {                                      \
-        state = map[i + 1];                                           \
-        goto next_state;                                              \
-      }                                                               \
-    }                                                                 \
-  }
-
-#define SKIP(state_value) \
-  {                       \
-    skip = true;          \
-    state = state_value;  \
-    goto next_state;      \
-  }
-
-#define ACCEPT_TOKEN(symbol_value)     \
-  result = true;                       \
-  lexer->result_symbol = symbol_value; \
-  lexer->mark_end(lexer);
-
-#define END_STATE() return result;
-
-/*
- *  Parse Table Macros
- */
-
-#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT)
-
-#define STATE(id) id
-
-#define ACTIONS(id) id
-
-#define SHIFT(state_value)            \
-  {{                                  \
-    .shift = {                        \
-      .type = TSParseActionTypeShift, \
-      .state = (state_value)          \
-    }                                 \
-  }}
-
-#define SHIFT_REPEAT(state_value)     \
-  {{                                  \
-    .shift = {                        \
-      .type = TSParseActionTypeShift, \
-      .state = (state_value),         \
-      .repetition = true              \
-    }                                 \
-  }}
-
-#define SHIFT_EXTRA()                 \
-  {{                                  \
-    .shift = {                        \
-      .type = TSParseActionTypeShift, \
-      .extra = true                   \
-    }                                 \
-  }}
-
-#define REDUCE(symbol_name, children, precedence, prod_id) \
-  {{                                                       \
-    .reduce = {                                            \
-      .type = TSParseActionTypeReduce,                     \
-      .symbol = symbol_name,                               \
-      .child_count = children,                             \
-      .dynamic_precedence = precedence,                    \
-      .production_id = prod_id                             \
-    },                                                     \
-  }}
-
-#define RECOVER()                    \
-  {{                                 \
-    .type = TSParseActionTypeRecover \
-  }}
-
-#define ACCEPT_INPUT()              \
-  {{                                \
-    .type = TSParseActionTypeAccept \
-  }}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // TREE_SITTER_PARSER_H_
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test.baba b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test.baba
deleted file mode 100644
index cbe8255..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test.baba
+++ /dev/null
@@ -1,3 +0,0 @@
-add : (Int, Int) -> Int;
-add a b -> a + b;
-
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/expressions.txt b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/expressions.txt
deleted file mode 100644
index 25ece22..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/expressions.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-==================
-Function definitions and implementations
-==================
-
-add : (Int, Int) -> Int;
-add a b -> a + b;
-
-multiply : x -> y -> x * y;
-
----
-
-(program
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type))
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type))
-  (function_implementation
-    name: (identifier)
-    parameters: (identifier)
-    parameters: (identifier)
-    body: (binary_expression
-      left: (identifier)
-      operator: +
-      right: (identifier)))
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (identifier))
-    return_type: (function_type
-      parameters: (parameter_list
-        (identifier))
-      return_type: (binary_expression
-        left: (identifier)
-        operator: *
-        right: (identifier)))))
-
-==================
-When expressions
-==================
-
-result : when 5 is
-  0 then "zero"
-  _ then "other";
-
----
-
-(program
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (when_expression
-        subject: (number)
-        patterns: (when_pattern
-          pattern: (number)
-          result: (string))
-        patterns: (when_pattern
-          pattern: (wildcard_pattern)
-          result: (string))))))
-
-==================
-Function calls
-==================
-
-greet : String -> String;
-greet name -> str.concat "Hello, " name;
-
----
-
-(program
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type))
-  (function_implementation
-    name: (identifier)
-    parameters: (identifier)
-    body: (function_call
-      function: (member_access
-        object: (identifier)
-        member: (identifier))
-      arguments: (string)
-      arguments: (identifier))))
-
-==================
-Lists and tables
-==================
-
-numbers : [Int];
-numbers -> [1, 2, 3];
-
-config : {name: String, age: Int};
-config -> {name: "Alice", age: 30};
-
----
-
-(program
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (list_type
-        type: (primitive_type))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: ->
-      right: (list_expression
-        elements: (number)
-        elements: (number)
-        elements: (number))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (table_type
-        fields: (table_type_field
-          key: (identifier)
-          value: (primitive_type))
-        fields: (table_type_field
-          key: (identifier)
-          value: (primitive_type)))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: ->
-      right: (table_expression
-        fields: (table_field
-          key: (identifier)
-          value: (string))
-        fields: (table_field
-          key: (identifier)
-          value: (number))))))
-
-==================
-Comments
-==================
-
-// This is a comment
-add : (Int, Int) -> Int;
-
----
-
-(program
-  (comment)
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type))
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type)))
diff --git a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/simple.txt b/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/simple.txt
deleted file mode 100644
index 3945781..0000000
--- a/js/baba-yaga/dev/helix/tree-sitter-baba-yaga/test/corpus/simple.txt
+++ /dev/null
@@ -1,154 +0,0 @@
-==================
-Simple function definition
-==================
-
-add : (Int, Int) -> Int;
-add a b -> a + b;
-
----
-
-(program
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type))
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type))
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (identifier)
-      (identifier))
-    return_type: (binary_expression
-      left: (identifier)
-      operator: +
-      right: (identifier))))
-
-==================
-Simple when expression
-==================
-
-result : when 5 is
-  0 then "zero"
-  _ then "other";
-
----
-
-(program
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (when_expression
-        subject: (number)
-        patterns: (when_pattern
-          pattern: (number)
-          result: (string))
-        patterns: (when_pattern
-          pattern: (wildcard_pattern)
-          result: (string))))))
-
-==================
-Simple function call
-==================
-
-greet : String -> String;
-greet name -> str.concat "Hello, " name;
-
----
-
-(program
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type))
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (identifier))
-    return_type: (function_call
-      function: (member_access
-        object: (identifier)
-        member: (identifier))
-      arguments: (string)
-      arguments: (identifier))))
-
-==================
-Simple list and table
-==================
-
-numbers : [Int];
-numbers -> [1, 2, 3];
-
-config : {name: String, age: Int};
-config -> {name: "Alice", age: 30};
-
----
-
-(program
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (list_type
-        type: (primitive_type))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: ->
-      right: (list_expression
-        elements: (number)
-        elements: (number)
-        elements: (number))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: :
-      right: (table_type
-        fields: (table_type_field
-          key: (identifier)
-          value: (primitive_type))
-        fields: (table_type_field
-          key: (identifier)
-          value: (primitive_type)))))
-  (expression_statement
-    (binary_expression
-      left: (identifier)
-      operator: ->
-      right: (table_expression
-        fields: (table_field
-          key: (identifier)
-          value: (string))
-        fields: (table_field
-          key: (identifier)
-          value: (number))))))
-
-==================
-Comments
-==================
-
-// This is a comment
-add : (Int, Int) -> Int;
-
----
-
-(program
-  (comment)
-  (function_definition
-    name: (identifier)
-    parameters: (parameter_list
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type))
-      (typed_parameter
-        name: (identifier)
-        type: (primitive_type)))
-    return_type: (primitive_type)))
-
diff --git a/js/baba-yaga/dev/micro/README.md b/js/baba-yaga/dev/micro/README.md
deleted file mode 100644
index 2eb608b..0000000
--- a/js/baba-yaga/dev/micro/README.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# Baba Yaga Micro Editor Support
-
-Syntax highlighting for the Baba Yaga programming language in Micro editor.
-
-## Installation
-
-### Method 1: Simple Installation (Recommended)
-1. Copy the simple syntax file to your Micro configuration directory:
-   ```bash
-   # Create the directory if it doesn't exist
-   mkdir -p ~/.config/micro/syntax
-   
-   # Copy the simple syntax file (recommended)
-   cp syntax/baba-yaga-simple.yaml ~/.config/micro/syntax/
-   ```
-
-2. Restart Micro
-
-### Method 2: Full Installation
-If the simple version works, try the full version:
-```bash
-cp syntax/baba-yaga.yaml ~/.config/micro/syntax/
-```
-
-### Method 3: Using Git
-```bash
-cd ~/.config/micro/syntax
-git clone https://github.com/your-username/baba-yaga.git baba-yaga
-ln -s baba-yaga/syntax/baba-yaga-simple.yaml .
-```
-
-### Method 4: Plugin Installation
-If you have the Micro plugin manager installed:
-
-1. Open Micro
-2. Press `Ctrl+E` to open the command palette
-3. Type: `plugin install baba-yaga-syntax`
-
-## Features
-- Syntax highlighting for Baba Yaga language
-- Automatic filetype detection for `.baba` files
-- Support for:
-  - Keywords (when, then, is, Ok, Err, true, false, etc.)
-  - Types (Bool, Int, Float, String, List, Table, Result, Number)
-  - Operators (->, =>, +, -, *, /, %, =, !=, >, <, >=, <=, ..)
-  - Functions and variables
-  - Strings and numbers
-  - Comments (// and /* */)
-  - When expressions
-  - Built-in functions (io.out, io.in, str.*, math.*, etc.)
-  - Lists and tables
-  - Result literals (Ok, Err)
-
-## Usage
-Open any `.baba` file and Micro should automatically detect the language and apply syntax highlighting.
-
-## Configuration
-You can customize the syntax highlighting by editing `~/.config/micro/settings.json`:
-
-```json
-{
-  "syntax": "baba-yaga",
-  "colorscheme": "default",
-  "tabsize": 2,
-  "indentchar": " ",
-  "autoindent": true
-}
-```
-
-## File Structure
-```
-dev/micro/
-โ”œโ”€โ”€ syntax/
-โ”‚   โ”œโ”€โ”€ baba-yaga.yaml         # Full Micro syntax highlighting rules
-โ”‚   โ””โ”€โ”€ baba-yaga-simple.yaml  # Simple syntax highlighting rules
-โ””โ”€โ”€ README.md                  # This file
-```
-
-## Troubleshooting
-
-### "Error parsing syntax file" or "Bad type []interface {}"
-This error indicates a YAML parsing issue. Try these solutions:
-
-1. **Use the simple syntax file first**:
-   ```bash
-   cp syntax/baba-yaga-simple.yaml ~/.config/micro/syntax/
-   ```
-
-2. **Check YAML syntax**:
-   ```bash
-   # Validate the YAML file
-   python3 -c "import yaml; yaml.safe_load(open('syntax/baba-yaga-simple.yaml'))"
-   ```
-
-3. **Remove problematic rules**:
-   If the simple version works, gradually add rules from the full version to identify the problematic one.
-
-4. **Check Micro version**:
-   ```bash
-   micro --version
-   ```
-   Some older versions of Micro have different YAML parsing requirements.
-
-### Syntax highlighting doesn't work
-If syntax highlighting doesn't work:
-
-1. Check that the syntax file is in the correct location: `~/.config/micro/syntax/baba-yaga.yaml`
-2. Verify filetype detection: `Ctrl+Shift+P` then type `set filetype baba-yaga`
-3. Force syntax highlighting: `Ctrl+Shift+P` then type `set syntax baba-yaga`
-4. Check for errors: `Ctrl+Shift+P` then type `log`
-
-### Common Issues
-- **"File not found"**: Make sure the syntax file is in the correct directory
-- **"Invalid syntax"**: Try the simple version first
-- **"No highlighting"**: Force the syntax mode manually
-
-## Customization
-You can customize the colors by modifying your Micro colorscheme. The syntax file uses these token types:
-
-- `comment` - Comments (// and /* */)
-- `string` - String literals
-- `constant` - Numbers and constants
-- `keyword` - Keywords and built-in functions
-- `operator` - Operators
-- `type` - Type names
-- `variable` - Variables and identifiers
-
-## Building from Source
-To modify the syntax highlighting:
-
-1. Edit `syntax/baba-yaga-simple.yaml` (start with the simple version)
-2. Test with a sample `.baba` file
-3. Copy to your Micro configuration directory
-4. If it works, gradually add more rules from the full version
-
-## Example
-The syntax highlighting will work with code like:
-
-```baba
-// This is a comment
-myVar : 42;
-myString : "Hello, Baba Yaga!";
-myFunction : x -> x + 1;
-myResult : when x is
-  1 then "One"
-  _ then "Other";
-```
-
-## Alternative: Use Built-in Syntax
-If the custom syntax doesn't work, you can use Micro's built-in syntax highlighting:
-
-1. Open a `.baba` file
-2. Press `Ctrl+Shift+P` and type `set syntax go` (similar syntax)
-3. Or use `set syntax javascript` for basic highlighting
-
-This will provide basic syntax highlighting while you troubleshoot the custom configuration.
diff --git a/js/baba-yaga/dev/micro/syntax/baba-yaga-simple.yaml b/js/baba-yaga/dev/micro/syntax/baba-yaga-simple.yaml
deleted file mode 100644
index 04f4586..0000000
--- a/js/baba-yaga/dev/micro/syntax/baba-yaga-simple.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-filetype: baba-yaga
-detect:
-    filename: "\\.baba$"
-
-rules:
-    - id: comment
-      type: comment
-      start: "//"
-      end: "$"
-
-    - id: string
-      type: string
-      start: "\""
-      end: "\""
-
-    - id: number
-      type: constant
-      match: "\\b\\d+\\b"
-
-    - id: keyword
-      type: keyword
-      match: "\\b(when|then|is|Ok|Err|true|false|PI|INFINITY|and|or|xor)\\b"
-
-    - id: function
-      type: keyword
-      match: "\\b(map|filter|reduce|append|set|merge|shape)\\b"
-
-    - id: io
-      type: keyword
-      match: "\\b(io\\.out|io\\.in)\\b"
-
-    - id: str-func
-      type: keyword
-      match: "\\b(str\\.concat|str\\.split|str\\.join|str\\.length|str\\.substring|str\\.replace|str\\.trim|str\\.upper|str\\.lower)\\b"
-
-    - id: math-func
-      type: keyword
-      match: "\\b(math\\.abs|math\\.sign|math\\.floor|math\\.ceil|math\\.round|math\\.trunc|math\\.min|math\\.max|math\\.clamp|math\\.pow|math\\.sqrt|math\\.exp|math\\.log|math\\.sin|math\\.cos|math\\.tan|math\\.asin|math\\.acos|math\\.atan|math\\.atan2|math\\.deg|math\\.rad|math\\.random|math\\.randomInt)\\b"
-
-    - id: operator
-      type: operator
-      match: "(\\+|-|\\*|/|%|=|!=|>|<|>=|<=|->|\\.\\.|:)"
-
-    - id: type
-      type: type
-      match: "\\b(Bool|Int|Float|String|List|Table|Result|Number)\\b"
-
-    - id: variable
-      type: variable
-      match: "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b"
diff --git a/js/baba-yaga/dev/micro/syntax/baba-yaga.yaml b/js/baba-yaga/dev/micro/syntax/baba-yaga.yaml
deleted file mode 100644
index f94c477..0000000
--- a/js/baba-yaga/dev/micro/syntax/baba-yaga.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-filetype: baba-yaga
-detect:
-    filename: "\\.baba$"
-
-rules:
-    # Comments
-    - id: comment
-      type: comment
-      start: "//"
-      end: "$"
-
-    # Strings
-    - id: string
-      type: string
-      start: "\""
-      end: "\""
-
-    # Numbers
-    - id: number
-      type: constant
-      match: "\\b\\d+\\b"
-
-    # Keywords
-    - id: keyword
-      type: keyword
-      match: "\\b(when|then|is|Ok|Err|true|false|PI|INFINITY|and|or|xor)\\b"
-
-    # Built-in functions
-    - id: function
-      type: keyword
-      match: "\\b(map|filter|reduce|append|set|merge|shape)\\b"
-
-    # IO functions
-    - id: io
-      type: keyword
-      match: "\\b(io\\.out|io\\.in)\\b"
-
-    # String functions
-    - id: str-func
-      type: keyword
-      match: "\\b(str\\.concat|str\\.split|str\\.join|str\\.length|str\\.substring|str\\.replace|str\\.trim|str\\.upper|str\\.lower)\\b"
-
-    # Math functions
-    - id: math-func
-      type: keyword
-      match: "\\b(math\\.abs|math\\.sign|math\\.floor|math\\.ceil|math\\.round|math\\.trunc|math\\.min|math\\.max|math\\.clamp|math\\.pow|math\\.sqrt|math\\.exp|math\\.log|math\\.sin|math\\.cos|math\\.tan|math\\.asin|math\\.acos|math\\.atan|math\\.atan2|math\\.deg|math\\.rad|math\\.random|math\\.randomInt)\\b"
-
-    # Operators
-    - id: operator
-      type: operator
-      match: "(\\+|-|\\*|/|%|=|!=|>|<|>=|<=|->|\\.\\.|:)"
-
-    # Types
-    - id: type
-      type: type
-      match: "\\b(Bool|Int|Float|String|List|Table|Result|Number)\\b"
-
-    # Variables
-    - id: variable
-      type: variable
-      match: "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b"
diff --git a/js/baba-yaga/dev/vscode/baba-yaga-1.0.3.vsix b/js/baba-yaga/dev/vscode/baba-yaga-1.0.3.vsix
new file mode 100644
index 0000000..13f8b6e
--- /dev/null
+++ b/js/baba-yaga/dev/vscode/baba-yaga-1.0.3.vsix
Binary files differdiff --git a/js/baba-yaga/dev/vscode/baba-yaga-1.0.4.vsix b/js/baba-yaga/dev/vscode/baba-yaga-1.0.4.vsix
new file mode 100644
index 0000000..ba62b81
--- /dev/null
+++ b/js/baba-yaga/dev/vscode/baba-yaga-1.0.4.vsix
Binary files differdiff --git a/js/baba-yaga/dev/vscode/extension.js b/js/baba-yaga/dev/vscode/extension.js
index 483c340..5759787 100644
--- a/js/baba-yaga/dev/vscode/extension.js
+++ b/js/baba-yaga/dev/vscode/extension.js
@@ -99,7 +99,7 @@ function isInBabaYagaCodeBlock(document, position) {
         
         for (let i = 0; i <= position.line; i++) {
             const currentLine = lines[i];
-            if (currentLine.trim().startsWith('```baba')) {
+            if (currentLine.trim().startsWith('```baba') || currentLine.trim().startsWith('```baba-yaga') || currentLine.trim().startsWith('```by')) {
                 inBabaBlock = true;
             } else if (currentLine.trim() === '```' && inBabaBlock) {
                 inBabaBlock = false;
@@ -270,7 +270,7 @@ class BabaYagaDiagnosticProvider {
     }
 
     onDidChangeTextDocument(event) {
-        if (event.document.languageId === 'baba-yaga' || event.document.languageId === 'markdown') {
+        if (event.document.languageId === 'baba-yaga' || event.document.languageId === 'markdown' || event.document.languageId === 'baba' || event.document.languageId === 'by') {
             this.updateDiagnostics(event.document);
         }
     }
@@ -371,16 +371,16 @@ class BabaYagaTypeHintsProvider {
             }
         });
         
-        // Above-line decorations (before expressions)
-        this.aboveDecorations = vscode.window.createTextEditorDecorationType({
-            before: {
-                contentText: '',
-                color: new vscode.ThemeColor('editorCodeLens.foreground'),
-                fontStyle: 'italic',
-                fontSize: '0.8em',
-                textDecoration: 'none; display: block; text-align: right; margin-right: 1em; line-height: 1;'
-            }
-        });
+        // Above-line decorations (on line above expressions) - DISABLED
+        // this.aboveDecorations = vscode.window.createTextEditorDecorationType({
+        //     after: {
+        //         contentText: '',
+        //         color: new vscode.ThemeColor('editorCodeLens.foreground'),
+        //         fontStyle: 'italic',
+        //         fontSize: '1em',
+        //         textDecoration: 'none; display: block; text-align: right; margin-right: 1em; line-height: 1.5;'
+        //     }
+        // });
     }
 
     updateTypeHints(editor) {
@@ -390,7 +390,7 @@ class BabaYagaTypeHintsProvider {
         
         // Clear previous decorations
         editor.setDecorations(this.inlineDecorations, []);
-        editor.setDecorations(this.aboveDecorations, []);
+        // editor.setDecorations(this.aboveDecorations, []);
         
         if (this.mode === 'none') {
             return; // No active type hints, only hover
@@ -399,7 +399,7 @@ class BabaYagaTypeHintsProvider {
         const document = editor.document;
         const text = document.getText();
         const inlineDecorations = [];
-        const aboveDecorations = [];
+        // const aboveDecorations = []; // Not used when above mode is disabled
 
         // Parse function definitions to build type map
         const functionTypes = new Map();
@@ -447,20 +447,22 @@ class BabaYagaTypeHintsProvider {
                                     }
                                 }
                             });
-                        } else if (this.mode === 'above') {
-                            const lineStart = new vscode.Position(startPos.line, 0);
-                            aboveDecorations.push({
-                                range: new vscode.Range(lineStart, lineStart),
-                                renderOptions: {
-                                    before: {
-                                        contentText: `${' '.repeat(Math.max(0, startPos.character - typeInfo.length - 3))} : ${typeInfo}\n`,
-                                        color: new vscode.ThemeColor('editorCodeLens.foreground'),
-                                        fontStyle: 'italic',
-                                        fontSize: '0.8em'
-                                    }
-                                }
-                            });
                         }
+                        // Above mode disabled - commented out
+                        // } else if (this.mode === 'above') {
+                        //     const lineAbove = new vscode.Position(Math.max(0, startPos.line - 1), 0);
+                        //     aboveDecorations.push({
+                        //         range: new vscode.Range(lineAbove, lineAbove),
+                        //         renderOptions: {
+                        //             after: {
+                        //                 contentText: `\n${' '.repeat(Math.max(0, startPos.character - typeInfo.length - 3))} : ${typeInfo}`,
+                        //                 color: new vscode.ThemeColor('editorCodeLens.foreground'),
+                        //                 fontStyle: 'italic',
+                        //                 fontSize: '0.8em'
+                        //             }
+                        //         }
+                        //     });
+                        // }
                     }
                 });
             }
@@ -489,20 +491,22 @@ class BabaYagaTypeHintsProvider {
                                     }
                                 }
                             });
-                        } else if (this.mode === 'above') {
-                            const lineStart = new vscode.Position(startPos.line, 0);
-                            aboveDecorations.push({
-                                range: new vscode.Range(lineStart, lineStart),
-                                renderOptions: {
-                                    before: {
-                                        contentText: `${' '.repeat(Math.max(0, startPos.character - typeInfo.length - 3))} : ${typeInfo}\n`,
-                                        color: new vscode.ThemeColor('editorCodeLens.foreground'),
-                                        fontStyle: 'italic',
-                                        fontSize: '0.8em'
-                                    }
-                                }
-                            });
                         }
+                        // Above mode disabled - commented out
+                        // else if (this.mode === 'above') {
+                        //     const lineAbove = new vscode.Position(Math.max(0, startPos.line - 1), 0);
+                        //     aboveDecorations.push({
+                        //         range: new vscode.Range(lineAbove, lineAbove),
+                        //         renderOptions: {
+                        //             after: {
+                        //                 contentText: `\n${' '.repeat(Math.max(0, startPos.character - typeInfo.length - 3))} : ${typeInfo}`,
+                        //                 color: new vscode.ThemeColor('editorCodeLens.foreground'),
+                        //                 fontStyle: 'italic',
+                        //                 fontSize: '0.8em'
+                        //             }
+                        //         }
+                        //     });
+                        // }
                     }
                 });
             }
@@ -526,20 +530,22 @@ class BabaYagaTypeHintsProvider {
                             }
                         }
                     });
-                } else if (this.mode === 'above') {
-                    const lineStart = new vscode.Position(startPos.line, 0);
-                    aboveDecorations.push({
-                        range: new vscode.Range(lineStart, lineStart),
-                        renderOptions: {
-                            before: {
-                                contentText: `${' '.repeat(Math.max(0, startPos.character - 18))} : Pattern Matching\n`,
-                                color: new vscode.ThemeColor('editorCodeLens.foreground'),
-                                fontStyle: 'italic',
-                                fontSize: '0.8em'
-                            }
-                        }
-                    });
                 }
+                // Above mode disabled - commented out
+                // else if (this.mode === 'above') {
+                //     const lineAbove = new vscode.Position(Math.max(0, startPos.line - 1), 0);
+                //     aboveDecorations.push({
+                //         range: new vscode.Range(lineAbove, lineAbove),
+                //         renderOptions: {
+                //             after: {
+                //                 contentText: `\n${' '.repeat(Math.max(0, startPos.character - 18))} : Pattern Matching`,
+                //                 color: new vscode.ThemeColor('editorCodeLens.foreground'),
+                //                 fontStyle: 'italic',
+                //                 fontSize: '0.8em'
+                //             }
+                //         }
+                //     });
+                // }
             }
 
             // Result constructors
@@ -565,20 +571,20 @@ class BabaYagaTypeHintsProvider {
                                 }
                             }
                         });
-                    } else if (this.mode === 'above') {
-                        const lineStart = new vscode.Position(startPos.line, 0);
-                        aboveDecorations.push({
-                            range: new vscode.Range(lineStart, lineStart),
-                            renderOptions: {
-                                before: {
-                                    contentText: `${' '.repeat(Math.max(0, startPos.character - 12))} : Result<T>\n`,
-                                    color: new vscode.ThemeColor('editorCodeLens.foreground'),
-                                    fontStyle: 'italic',
-                                    fontSize: '0.8em'
-                                }
-                            }
-                        });
                     }
+                    // Above mode disabled - commented out
+                    // else if (this.mode === 'above') {
+                    //     const lineAbove = new vscode.Position(Math.max(0, startPos.line - 1), 0);
+                    //     aboveDecorations.push({
+                    //         range: new vscode.Range(lineAbove, lineAbove),
+                    //         renderOptions: {
+                    //             after: {
+                    //                 contentText: `\n${' '.repeat(Math.max(0, startPos.character - 12))} : Result<T>`,
+                    //                 fontSize: '0.8em'
+                    //             }
+                    //         }
+                    //     });
+                    // }
                 }
             }
         }
@@ -586,9 +592,10 @@ class BabaYagaTypeHintsProvider {
         // Apply decorations based on mode
         if (this.mode === 'inline') {
             editor.setDecorations(this.inlineDecorations, inlineDecorations);
-        } else if (this.mode === 'above') {
-            editor.setDecorations(this.aboveDecorations, aboveDecorations);
         }
+        // if (this.mode === 'above') {
+        //     editor.setDecorations(this.aboveDecorations, aboveDecorations);
+        // }
     }
 
     getTypeInfo(funcName, functionTypes) {
@@ -618,7 +625,7 @@ class BabaYagaTypeHintsProvider {
 
     dispose() {
         this.inlineDecorations.dispose();
-        this.aboveDecorations.dispose();
+        // this.aboveDecorations.dispose();
     }
 }
 
diff --git a/js/baba-yaga/dev/vscode/package-lock.json b/js/baba-yaga/dev/vscode/package-lock.json
index 9735a2d..060e0e9 100644
--- a/js/baba-yaga/dev/vscode/package-lock.json
+++ b/js/baba-yaga/dev/vscode/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "baba-yaga",
-  "version": "1.0.3",
+  "version": "1.0.4",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "baba-yaga",
-      "version": "1.0.3",
+      "version": "1.0.4",
       "license": "MIT",
       "devDependencies": {
         "@vscode/vsce": "^2.15.0"
diff --git a/js/baba-yaga/dev/vscode/package.json b/js/baba-yaga/dev/vscode/package.json
index ccf6105..8f48448 100644
--- a/js/baba-yaga/dev/vscode/package.json
+++ b/js/baba-yaga/dev/vscode/package.json
@@ -2,7 +2,7 @@
   "name": "baba-yaga",
   "displayName": "Baba Yaga",
   "description": "Language support for Baba Yaga programming language",
-  "version": "1.0.3",
+  "version": "1.0.4",
   "publisher": "baba-yaga",
   "engines": {
     "vscode": "^1.74.0"