File tree-sitter-tcl-0+20241105.98015eb.obscpio of Package tree-sitter-tcl

07070100000000000081A4000000000000000000000001672A2240000001F6000000000000000000000000000000000000003100000000tree-sitter-tcl-0+20241105.98015eb/.editorconfigroot = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{json,toml,yml,gyp}]
indent_style = space
indent_size = 2

[*.js]
indent_style = space
indent_size = 2

[*.rs]
indent_style = space
indent_size = 4

[*.{c,cc,h}]
indent_style = space
indent_size = 4

[*.{py,pyi}]
indent_style = space
indent_size = 4

[*.swift]
indent_style = space
indent_size = 4

[*.go]
indent_style = tab
indent_size = 8

[Makefile]
indent_style = tab
indent_size = 8
07070100000001000081A4000000000000000000000001672A22400000010A000000000000000000000000000000000000003200000000tree-sitter-tcl-0+20241105.98015eb/.gitattributes* text eol=lf

src/*.json linguist-generated
src/parser.c linguist-generated
src/tree_sitter/* linguist-generated

bindings/** linguist-generated
binding.gyp linguist-generated
setup.py linguist-generated
Makefile linguist-generated
Package.swift linguist-generated
07070100000002000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002B00000000tree-sitter-tcl-0+20241105.98015eb/.github07070100000003000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003500000000tree-sitter-tcl-0+20241105.98015eb/.github/workflows07070100000004000081A4000000000000000000000001672A2240000004EB000000000000000000000000000000000000003C00000000tree-sitter-tcl-0+20241105.98015eb/.github/workflows/ci.ymlname: CI

on:
  push:
    branches: [main]
    paths:
      - grammar.js
      - src/**
      - test/**
      - bindings/**
      - binding.gyp
  pull_request:
    paths:
      - grammar.js
      - src/**
      - test/**
      - bindings/**
      - binding.gyp

concurrency:
  group: ${{github.workflow}}-${{github.ref}}
  cancel-in-progress: true

jobs:
  test:
    name: Run tests
    runs-on: ${{matrix.os}}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-14]
    steps:
      - uses: tree-sitter/parser-setup-action@v1.1
        with:
          node-version: ${{vars.NODE_VERSION}}
      - uses: tree-sitter/parser-test-action@v1.2
        with:
          test-library: false
  fuzz:
    name: Fuzz parser
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 2
      - name: Check for scanner changes
        id: scanner-changes
        run: |-
          if git diff --quiet HEAD^ -- src/scanner.c; then
            printf 'changed=false\n' >> "$GITHUB_OUTPUT"
          else
            printf 'changed=true\n' >> "$GITHUB_OUTPUT"
          fi
      - uses: tree-sitter/fuzz-action@v4
        if: steps.scanner-changes.outputs.changed == 'true'
07070100000005000081A4000000000000000000000001672A22400000001A000000000000000000000000000000000000002E00000000tree-sitter-tcl-0+20241105.98015eb/.gitignorebuild
node_modules
parser
07070100000006000081A4000000000000000000000001672A22400000020E000000000000000000000000000000000000002E00000000tree-sitter-tcl-0+20241105.98015eb/Cargo.toml[package]
name = "tree-sitter-tcl"
description = "TCL grammar for the tree-sitter parsing library"
version = "1.0.0"
keywords = ["incremental", "parsing", "TCL"]
categories = ["parsing", "text-editors"]
repository = "https://github.com/tree-sitter/tree-sitter-tcl"
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-language = "0.1.0"

[build-dependencies]
cc = "1.0"
07070100000007000081A4000000000000000000000001672A22400000042E000000000000000000000000000000000000002B00000000tree-sitter-tcl-0+20241105.98015eb/LICENSEMIT License

Copyright (c) 2022 Lewis Russell

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
07070100000008000081A4000000000000000000000001672A2240000000E7000000000000000000000000000000000000002C00000000tree-sitter-tcl-0+20241105.98015eb/Makefile.PHONY: build

build: parser/tcl.so

parser/tcl.so: src/parser.c src/scanner.c
	$(RM) $@
	mkdir -p parser
	tree-sitter build -o $@

src/parser.c: grammar.js
	tree-sitter generate

.PHONY: test
test: parser/tcl.so
	tree-sitter test
07070100000009000081A4000000000000000000000001672A2240000005EF000000000000000000000000000000000000003100000000tree-sitter-tcl-0+20241105.98015eb/Package.swift// swift-tools-version:5.3
import PackageDescription

let package = Package(
    name: "TreeSitterTcl",
    platforms: [.macOS(.v10_13), .iOS(.v11)],
    products: [
        .library(name: "TreeSitterTcl", targets: ["TreeSitterTcl"]),
    ],
    dependencies: [],
    targets: [
        .target(name: "TreeSitterTcl",
                path: ".",
                exclude: [
                    "Cargo.toml",
                    "Makefile",
                    "binding.gyp",
                    "bindings/c",
                    "bindings/go",
                    "bindings/node",
                    "bindings/python",
                    "bindings/rust",
                    "prebuilds",
                    "grammar.js",
                    "package.json",
                    "package-lock.json",
                    "pyproject.toml",
                    "setup.py",
                    "test",
                    "examples",
                    ".editorconfig",
                    ".github",
                    ".gitignore",
                    ".gitattributes",
                    ".gitmodules",
                ],
                sources: [
                    "src/parser.c",
                    // NOTE: if your language has an external scanner, add it here.
                ],
                resources: [
                    .copy("queries")
                ],
                publicHeadersPath: "bindings/swift",
                cSettings: [.headerSearchPath("src")])
    ],
    cLanguageStandard: .c11
)
0707010000000A000081A4000000000000000000000001672A224000000280000000000000000000000000000000000000002D00000000tree-sitter-tcl-0+20241105.98015eb/README.md[![CI][ci]](https://github.com/tree-sitter-grammars/tree-sitter-tcl/actions/workflows/ci.yml)
[![discord][discord]](https://discord.gg/w7nTvsVJhm)
[![matrix][matrix]](https://matrix.to/#/#nvim-treesitter:matrix.org)

A tree-sitter parser for TCL.

[nvim-treesitter]: https://github.com/nvim-treesitter/nvim-treesitter

[ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter-grammars/tree-sitter-tcl/ci.yml?logo=github&label=CI
[discord]: https://img.shields.io/discord/1063097320771698699?logo=discord&label=tree-sitter
[matrix]: https://img.shields.io/matrix/nvim-treesitter%3Amatrix.org?logo=matrix&label=nvim-treesitter
0707010000000B000081A4000000000000000000000001672A2240000001C7000000000000000000000000000000000000002F00000000tree-sitter-tcl-0+20241105.98015eb/binding.gyp{
  "targets": [
    {
      "target_name": "tree_sitter_tcl_binding",
      "dependencies": [
        "<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except",
      ],
      "include_dirs": [
        "src",
      ],
      "sources": [
        "bindings/node/binding.cc",
        "src/parser.c",
        # NOTE: if your language has an external scanner, add it here.
      ],
      "cflags_c": [
        "-std=c11",
      ],
    }
  ]
}
0707010000000C000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002C00000000tree-sitter-tcl-0+20241105.98015eb/bindings0707010000000D000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002E00000000tree-sitter-tcl-0+20241105.98015eb/bindings/c0707010000000E000081A4000000000000000000000001672A2240000000EA000000000000000000000000000000000000004000000000tree-sitter-tcl-0+20241105.98015eb/bindings/c/tree-sitter-tcl.h#ifndef TREE_SITTER_TCL_H_
#define TREE_SITTER_TCL_H_

typedef struct TSLanguage TSLanguage;

#ifdef __cplusplus
extern "C" {
#endif

const TSLanguage *tree_sitter_tcl(void);

#ifdef __cplusplus
}
#endif

#endif // TREE_SITTER_TCL_H_
0707010000000F000081A4000000000000000000000001672A2240000000F9000000000000000000000000000000000000004400000000tree-sitter-tcl-0+20241105.98015eb/bindings/c/tree-sitter-tcl.pc.inprefix=@PREFIX@
libdir=@LIBDIR@
includedir=@INCLUDEDIR@

Name: tree-sitter-tcl
Description: Tcl grammar for tree-sitter
URL: @URL@
Version: @VERSION@
Requires: @REQUIRES@
Libs: -L${libdir} @ADDITIONAL_LIBS@ -ltree-sitter-tcl
Cflags: -I${includedir}
07070100000010000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002F00000000tree-sitter-tcl-0+20241105.98015eb/bindings/go07070100000011000081A4000000000000000000000001672A22400000013A000000000000000000000000000000000000003A00000000tree-sitter-tcl-0+20241105.98015eb/bindings/go/binding.gopackage tree_sitter_tcl

// #cgo CFLAGS: -std=c11 -fPIC
// #include "../../src/parser.c"
// // NOTE: if your language has an external scanner, add it here.
import "C"

import "unsafe"

// Get the tree-sitter Language for this grammar.
func Language() unsafe.Pointer {
	return unsafe.Pointer(C.tree_sitter_tcl())
}
07070100000012000081A4000000000000000000000001672A22400000015D000000000000000000000000000000000000003F00000000tree-sitter-tcl-0+20241105.98015eb/bindings/go/binding_test.gopackage tree_sitter_tcl_test

import (
	"testing"

	tree_sitter "github.com/tree-sitter/go-tree-sitter"
	tree_sitter_tcl "github.com/tree-sitter/tree-sitter-tcl/bindings/go"
)

func TestCanLoadGrammar(t *testing.T) {
	language := tree_sitter.NewLanguage(tree_sitter_tcl.Language())
	if language == nil {
		t.Errorf("Error loading Tcl grammar")
	}
}
07070100000013000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003100000000tree-sitter-tcl-0+20241105.98015eb/bindings/node07070100000014000081A4000000000000000000000001672A22400000023B000000000000000000000000000000000000003C00000000tree-sitter-tcl-0+20241105.98015eb/bindings/node/binding.cc#include <napi.h>

typedef struct TSLanguage TSLanguage;

extern "C" TSLanguage *tree_sitter_tcl();

// "tree-sitter", "language" hashed with BLAKE2
const napi_type_tag LANGUAGE_TYPE_TAG = {
  0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16
};

Napi::Object Init(Napi::Env env, Napi::Object exports) {
    exports["name"] = Napi::String::New(env, "tcl");
    auto language = Napi::External<TSLanguage>::New(env, tree_sitter_tcl());
    language.TypeTag(&LANGUAGE_TYPE_TAG);
    exports["language"] = language;
    return exports;
}

NODE_API_MODULE(tree_sitter_tcl_binding, Init)
07070100000015000081A4000000000000000000000001672A224000000104000000000000000000000000000000000000004100000000tree-sitter-tcl-0+20241105.98015eb/bindings/node/binding_test.js/// <reference types="node" />

const assert = require("node:assert");
const { test } = require("node:test");

test("can load grammar", () => {
  const parser = new (require("tree-sitter"))();
  assert.doesNotThrow(() => parser.setLanguage(require(".")));
});
07070100000016000081A4000000000000000000000001672A2240000001C4000000000000000000000000000000000000003C00000000tree-sitter-tcl-0+20241105.98015eb/bindings/node/index.d.tstype BaseNode = {
  type: string;
  named: boolean;
};

type ChildNode = {
  multiple: boolean;
  required: boolean;
  types: BaseNode[];
};

type NodeInfo =
  | (BaseNode & {
      subtypes: BaseNode[];
    })
  | (BaseNode & {
      fields: { [name: string]: ChildNode };
      children: ChildNode[];
    });

type Language = {
  name: string;
  language: unknown;
  nodeTypeInfo: NodeInfo[];
};

declare const language: Language;
export = language;
07070100000017000081A4000000000000000000000001672A2240000000C9000000000000000000000000000000000000003A00000000tree-sitter-tcl-0+20241105.98015eb/bindings/node/index.jsconst root = require("path").join(__dirname, "..", "..");

module.exports = require("node-gyp-build")(root);

try {
  module.exports.nodeTypeInfo = require("../../src/node-types.json");
} catch (_) {}
07070100000018000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003300000000tree-sitter-tcl-0+20241105.98015eb/bindings/python07070100000019000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003900000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tests0707010000001A000081A4000000000000000000000001672A22400000011F000000000000000000000000000000000000004900000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tests/test_binding.pyfrom unittest import TestCase

import tree_sitter, tree_sitter_tcl


class TestLanguage(TestCase):
    def test_can_load_grammar(self):
        try:
            tree_sitter.Language(tree_sitter_tcl.language())
        except Exception:
            self.fail("Error loading Tcl grammar")
0707010000001B000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000004300000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tree_sitter_tcl0707010000001C000081A4000000000000000000000001672A224000000056000000000000000000000000000000000000004F00000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tree_sitter_tcl/__init__.py"Tcl grammar for tree-sitter"

from ._binding import language

__all__ = ["language"]
0707010000001D000081A4000000000000000000000001672A22400000001B000000000000000000000000000000000000005000000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tree_sitter_tcl/__init__.pyidef language() -> int: ...
0707010000001E000081A4000000000000000000000001672A2240000002A5000000000000000000000000000000000000004D00000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tree_sitter_tcl/binding.c#include <Python.h>

typedef struct TSLanguage TSLanguage;

TSLanguage *tree_sitter_tcl(void);

static PyObject* _binding_language(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args)) {
    return PyCapsule_New(tree_sitter_tcl(), "tree_sitter.Language", NULL);
}

static PyMethodDef methods[] = {
    {"language", _binding_language, METH_NOARGS,
     "Get the tree-sitter language for this grammar."},
    {NULL, NULL, 0, NULL}
};

static struct PyModuleDef module = {
    .m_base = PyModuleDef_HEAD_INIT,
    .m_name = "_binding",
    .m_doc = NULL,
    .m_size = -1,
    .m_methods = methods
};

PyMODINIT_FUNC PyInit__binding(void) {
    return PyModule_Create(&module);
}
0707010000001F000081A4000000000000000000000001672A224000000000000000000000000000000000000000000000004C00000000tree-sitter-tcl-0+20241105.98015eb/bindings/python/tree_sitter_tcl/py.typed07070100000020000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003100000000tree-sitter-tcl-0+20241105.98015eb/bindings/rust07070100000021000081A4000000000000000000000001672A224000000557000000000000000000000000000000000000003A00000000tree-sitter-tcl-0+20241105.98015eb/bindings/rust/build.rsfn main() {
    let src_dir = std::path::Path::new("src");

    let mut c_config = cc::Build::new();
    c_config.include(&src_dir);
    c_config
        .flag_if_supported("-Wno-unused-parameter")
        .flag_if_supported("-Wno-unused-but-set-variable")
        .flag_if_supported("-Wno-trigraphs");
    #[cfg(target_env = "msvc")]
    c_config.flag("-utf-8");

    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());
    */
}
07070100000022000081A4000000000000000000000001672A22400000079D000000000000000000000000000000000000003800000000tree-sitter-tcl-0+20241105.98015eb/bindings/rust/lib.rs//! This crate provides Tcl language support for the [tree-sitter][] parsing library.
//!
//! Typically, you will use the [language][language func] function to add this language to a
//! tree-sitter [Parser][], and then use the parser to parse some code:
//!
//! ```
//! let code = r#"
//! "#;
//! let mut parser = tree_sitter::Parser::new();
//! let language = tree_sitter_tcl::LANGUAGE;
//! parser
//!     .set_language(&language.into())
//!     .expect("Error loading Tcl parser");
//! let tree = parser.parse(code, None).unwrap();
//! assert!(!tree.root_node().has_error());
//! ```
//!
//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
//! [language func]: fn.language.html
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
//! [tree-sitter]: https://tree-sitter.github.io/

use tree_sitter_language::LanguageFn;

extern "C" {
    fn tree_sitter_tcl() -> *const ();
}

/// The tree-sitter [`LanguageFn`] for this grammar.
pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_tcl) };

/// The content of the [`node-types.json`][] file for this grammar.
///
/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types
pub const NODE_TYPES: &str = include_str!("../../src/node-types.json");

// NOTE: uncomment these to include any queries that this grammar contains:

// pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm");
// pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm");
// pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm");
// pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm");

#[cfg(test)]
mod tests {
    #[test]
    fn test_can_load_grammar() {
        let mut parser = tree_sitter::Parser::new();
        parser
            .set_language(&super::LANGUAGE.into())
            .expect("Error loading Tcl parser");
    }
}
07070100000023000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003200000000tree-sitter-tcl-0+20241105.98015eb/bindings/swift07070100000024000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000004000000000tree-sitter-tcl-0+20241105.98015eb/bindings/swift/TreeSitterTcl07070100000025000081A4000000000000000000000001672A2240000000EA000000000000000000000000000000000000004600000000tree-sitter-tcl-0+20241105.98015eb/bindings/swift/TreeSitterTcl/tcl.h#ifndef TREE_SITTER_TCL_H_
#define TREE_SITTER_TCL_H_

typedef struct TSLanguage TSLanguage;

#ifdef __cplusplus
extern "C" {
#endif

const TSLanguage *tree_sitter_tcl(void);

#ifdef __cplusplus
}
#endif

#endif // TREE_SITTER_TCL_H_
07070100000026000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000004500000000tree-sitter-tcl-0+20241105.98015eb/bindings/swift/TreeSitterTclTests07070100000027000081A4000000000000000000000001672A224000000163000000000000000000000000000000000000005E00000000tree-sitter-tcl-0+20241105.98015eb/bindings/swift/TreeSitterTclTests/TreeSitterTclTests.swiftimport XCTest
import SwiftTreeSitter
import TreeSitterTcl

final class TreeSitterTclTests: XCTestCase {
    func testCanLoadGrammar() throws {
        let parser = Parser()
        let language = Language(language: tree_sitter_tcl())
        XCTAssertNoThrow(try parser.setLanguage(language),
                         "Error loading Tcl grammar")
    }
}
07070100000028000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002C00000000tree-sitter-tcl-0+20241105.98015eb/ftplugin07070100000029000081A4000000000000000000000001672A224000000017000000000000000000000000000000000000003400000000tree-sitter-tcl-0+20241105.98015eb/ftplugin/tcl.luavim.treesitter.start()
0707010000002A000081A4000000000000000000000001672A22400000006C000000000000000000000000000000000000002A00000000tree-sitter-tcl-0+20241105.98015eb/go.modmodule github.com/tree-sitter/tree-sitter-tcl

go 1.23

require github.com/tree-sitter/go-tree-sitter v0.23
0707010000002B000081A4000000000000000000000001672A224000001F9E000000000000000000000000000000000000002E00000000tree-sitter-tcl-0+20241105.98015eb/grammar.js// Taken from the expr man page
const PREC = {
  unary        : 150, // - + ~ !
  exp          : 140, // **
  muldiv       : 130, // * / %
  addsub       : 120, // + -
  shift        : 110, // << >>
  compare      : 100, // > < >= <=
  equal_bool   : 90, // == !=
  equal_string : 80, // eq ne
  contain      : 70, // in ni
  and_bit      : 60, // &
  xor_bit      : 50, // ^
  or_bit       : 40, // |
  and_logical  : 30, // &&
  or_logical   : 20, // ||
  ternary      : 10, // x ? y : z
}

const interleaved1 = (rule, delim) => seq(rule, repeat(seq(delim, rule)))

module.exports = grammar({
  name: 'tcl',

  word: $ => $.simple_word,

  externals: $ => [
    $._concat,
    $._immediate,
  ],

  inline: $ => [
    $._builtin,
    $._terminator,
    $._word,
  ],

  extras: $ => [
    /\s+/,
    /\\\r?\n/
  ],

  rules: {
    source_file: $ => repeat(seq(
      optional($._command),
      $._terminator
    )),

    _terminator: _ => choice('\n', ';'),

    comment: _ => /#[^\n]*/,

    _builtin: $ => choice(
      $.conditional,
      $.global,
      $.namespace,
      $.procedure,
      $.set,
      $.try,
      $.foreach,
      $.expr_cmd,
      $.while,
      $.catch,
      $.regexp,
    ),

    // regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?
    regexp: $ => seq(
      'regexp',
      $._word_simple, // exp
      $._concat_word, // string
      repeat($._concat_word),
    ),

    while: $ => seq('while', $.expr, $._word),

    expr_cmd: $ => seq('expr', $.expr),

    foreach: $ => seq("foreach", $.arguments, $._word_simple, $._word),

    global: $ => seq("global", repeat($._concat_word)),

    namespace: $ => seq('namespace', $.word_list),

    try: $ => seq(
      "try",
      $._word,
      optional(seq(
        "on",
        "error",
        $.arguments,
        $._word,
      )),
      optional($.finally)
    ),

    finally: $=> seq('finally', $._word),

    _command: $ => choice(
      $._builtin,
      $.comment,
      $.command
    ),

    command: $ => seq(
      field('name', $._word),
      optional(field('arguments', $.word_list))
    ),

    word_list: $ => repeat1($._word),

    unpack: _ => '{*}',

    _word: $ => seq(
      optional($.unpack),
      choice(
        $.braced_word,
        $._concat_word,
      )
    ),

    _word_simple: $ => interleaved1(
      choice(
        $.escaped_character,
        $.command_substitution,
        $.simple_word,
        $.quoted_word,
        $.variable_substitution,
        $.braced_word_simple,
      ),
      $._concat,
    ),

    _concat_word: $ => interleaved1(
      choice(
        $.escaped_character,
        $.command_substitution,
        seq($.simple_word, optional($.array_index)),
        $.quoted_word,
        $.variable_substitution,
      ),
      $._concat,
    ),

    _ns_delim: _ => token.immediate("::"),

    _ident_imm: _ => token.immediate(/[a-zA-Z_][a-zA-Z0-9_]*/),
    _ident: _ => /[a-zA-Z_][a-zA-Z0-9_]*/,

    _id_immediate: $ => seq(
      optional($._ns_delim), $._ident_imm,
      repeat(seq($._ns_delim, $._ident_imm))
    ),

    id: $ => seq(
      choice(seq("::", $._ident_imm), $._ident),
      repeat(seq($._ns_delim, $._ident_imm))
    ),

    array_index: $ => seq(token.immediate('('), $._word_simple, ')'),

    variable_substitution: $ => seq(
      choice(
        seq('$', alias($._id_immediate, $.id)),
        seq('$', '{', /[^}]+/, '}'),
      ),
      optional($.array_index)
    ),

    braced_word: $ => seq('{', optional(seq(
      interleaved1($._command, repeat1($._terminator)),
      repeat($._terminator)
    )), '}'),

    braced_word_simple: $ => seq('{', repeat($._word_simple), '}'),

    set: $ => seq(
      "set",
      choice(
        seq($.id, optional($.array_index)),
        seq('$', '{', /[^}]+/, '}'),
      ),
      optional($._word_simple)
    ),


    procedure: $ => seq(
      "proc",
      field('name', $._word),
      field('arguments', $.arguments),
      field('body', $._word)
    ),

    _argument_word: $ => choice($.simple_word, $.quoted_word, $.braced_word),

    argument: $ => choice(
      field('name', $.simple_word),
      seq(
        '{',
         field('name', $.simple_word),
         optional(field('default', $._argument_word)),
         '}'
      )
    ),

    arguments: $ => choice(
      seq('{', repeat($.argument) , '}'),
      $.simple_word,
    ),

    _number: $ => /[0-9]+(\.[0-9]+)?([eE][+-]?[0-9]+)?/,
    _boolean: $ => token(choice(
      "1", "0",
      /[Tt][Rr][Uu][Ee]/,
      /[Ff][Aa][Ll][Ss][Ee]/
    )),

    _expr_atom_no_brace: $ => choice(
      // As a numeric value, either integer or floating-point.
      $._number,

      // As a boolean value, using any form understood by string is boolean.
      $._boolean,

      // As a mathematical function whose arguments have any of the above
      // forms for operands, such as sin($x). See MATH FUNCTIONS below for a
      // discussion of how mathematical functions are handled.
      seq($.simple_word, "(", $._expr, ")"),

      // As a Tcl command enclosed in brackets. The command will be executed
      // and its result will be used as the operand.
      $.command_substitution,

      // As a string enclosed in double-quotes. The expression parser will
      // perform backslash, variable, and command substitutions on the
      // information between the quotes, and use the resulting value as the
      // operand
      $.quoted_word,

      // As a Tcl variable, using standard $ notation. The variable's value
      // will be used as the operand.
      $.variable_substitution,
    ),

    _expr: $ => choice(
      $.unary_expr,
      $.binop_expr,
      $.ternary_expr,
      $.escaped_character,
      seq("(", $._expr, ")"),
      $._expr_atom_no_brace,

      // As a string enclosed in braces. The characters between the open
      // brace and matching close brace will be used as the operand without
      // any substitutions.
      $.braced_word_simple,
    ),

    expr: $ => choice(
      seq('{', $._expr, '}'),
      $._expr_atom_no_brace,
    ),

    unary_expr: $ => prec.left(PREC.unary, seq(choice("-", "+", "~", "!"), $._expr)),

    binop_expr: $ => choice(
      prec.left(PREC.exp,          seq($._expr, "**", $._expr)),
      prec.left(PREC.muldiv,       seq($._expr, choice("/", "*", "%"), $._expr)),
      prec.left(PREC.addsub,       seq($._expr, choice("+", "-"), $._expr)),
      prec.left(PREC.shift,        seq($._expr, choice("<<", ">>"), $._expr)),
      prec.left(PREC.compare,      seq($._expr, choice(">", "<", ">=", "<="), $._expr)),
      prec.left(PREC.equal_bool,   seq($._expr, choice("==", "!="), $._expr)),
      prec.left(PREC.equal_string, seq($._expr, choice("eq", "ne"), $._expr)),
      prec.left(PREC.contain,      seq($._expr, choice("in", "ni"), $._expr)),
      prec.left(PREC.and_bit,      seq($._expr, "&",  $._expr)),
      prec.left(PREC.xor_bit,      seq($._expr, "^",  $._expr)),
      prec.left(PREC.or_bit,       seq($._expr, "|",  $._expr)),
      prec.left(PREC.and_logical,  seq($._expr, "&&", $._expr)),
      prec.left(PREC.or_logical,   seq($._expr, "||", $._expr)),
    ),

    ternary_expr: $ => prec.left(PREC.ternary, seq($._expr, '?', $._expr, ':', $._expr)),

    elseif: $ => seq(
      "elseif",
      field('condition', $.expr),
      $._word,
    ),

    else: $ => seq(
      "else",
      $._word,
    ),

    conditional: $ => seq(
      "if",
      field('condition', $.expr),
      $._word,
      repeat($.elseif),
      optional($.else),
    ),

    // catch script ?varName?
    catch: $ => seq(
      "catch",
      $._word,
      optional($._concat_word),
    ),

    quoted_word: $ => seq(
      '"',
      repeat(choice(
        $.variable_substitution,
        $._quoted_word_content,
        $.command_substitution,
        $.escaped_character,
      )),
      '"',
    ),

    escaped_character: _ => /\\./,

    _quoted_word_content: _ => token(prec(-1, /[^$\\\[\]"]+/)),

    command_substitution: $ => seq('[', $._command, ']'),

    simple_word: _ => /[^!$\s\\\[\]{}();"]+/,
  }

});
0707010000002C000081A4000000000000000000000001672A22400000A451000000000000000000000000000000000000003500000000tree-sitter-tcl-0+20241105.98015eb/package-lock.json{
  "name": "tree-sitter-tcl",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "tree-sitter-tcl",
      "version": "1.0.0",
      "license": "MIT",
      "dependencies": {
        "nan": "^2.18.0"
      },
      "devDependencies": {
        "eslint": "^8.56.0",
        "eslint-config-google": "^0.14.0",
        "tree-sitter-cli": "^0.21.0"
      }
    },
    "node_modules/@aashutoshrathi/word-wrap": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/@eslint-community/eslint-utils": {
      "version": "4.4.0",
      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
      "dev": true,
      "dependencies": {
        "eslint-visitor-keys": "^3.3.0"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      },
      "peerDependencies": {
        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
      }
    },
    "node_modules/@eslint-community/regexpp": {
      "version": "4.10.0",
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
      "dev": true,
      "engines": {
        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
      }
    },
    "node_modules/@eslint/eslintrc": {
      "version": "2.1.4",
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
      "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
      "dev": true,
      "dependencies": {
        "ajv": "^6.12.4",
        "debug": "^4.3.2",
        "espree": "^9.6.0",
        "globals": "^13.19.0",
        "ignore": "^5.2.0",
        "import-fresh": "^3.2.1",
        "js-yaml": "^4.1.0",
        "minimatch": "^3.1.2",
        "strip-json-comments": "^3.1.1"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      },
      "funding": {
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/@eslint/js": {
      "version": "8.57.0",
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
      "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
      "dev": true,
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      }
    },
    "node_modules/@humanwhocodes/config-array": {
      "version": "0.11.14",
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
      "dev": true,
      "dependencies": {
        "@humanwhocodes/object-schema": "^2.0.2",
        "debug": "^4.3.1",
        "minimatch": "^3.0.5"
      },
      "engines": {
        "node": ">=10.10.0"
      }
    },
    "node_modules/@humanwhocodes/module-importer": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
      "dev": true,
      "engines": {
        "node": ">=12.22"
      },
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/nzakas"
      }
    },
    "node_modules/@humanwhocodes/object-schema": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
      "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
      "dev": true
    },
    "node_modules/@nodelib/fs.scandir": {
      "version": "2.1.5",
      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
      "dev": true,
      "dependencies": {
        "@nodelib/fs.stat": "2.0.5",
        "run-parallel": "^1.1.9"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/@nodelib/fs.stat": {
      "version": "2.0.5",
      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
      "dev": true,
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/@nodelib/fs.walk": {
      "version": "1.2.8",
      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
      "dev": true,
      "dependencies": {
        "@nodelib/fs.scandir": "2.1.5",
        "fastq": "^1.6.0"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/@ungap/structured-clone": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
      "dev": true
    },
    "node_modules/acorn": {
      "version": "8.11.3",
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
      "dev": true,
      "bin": {
        "acorn": "bin/acorn"
      },
      "engines": {
        "node": ">=0.4.0"
      }
    },
    "node_modules/acorn-jsx": {
      "version": "5.3.2",
      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
      "dev": true,
      "peerDependencies": {
        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
      }
    },
    "node_modules/ajv": {
      "version": "6.12.6",
      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
      "dev": true,
      "dependencies": {
        "fast-deep-equal": "^3.1.1",
        "fast-json-stable-stringify": "^2.0.0",
        "json-schema-traverse": "^0.4.1",
        "uri-js": "^4.2.2"
      },
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/epoberezkin"
      }
    },
    "node_modules/ansi-regex": {
      "version": "5.0.1",
      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
      "dev": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/ansi-styles": {
      "version": "4.3.0",
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
      "dev": true,
      "dependencies": {
        "color-convert": "^2.0.1"
      },
      "engines": {
        "node": ">=8"
      },
      "funding": {
        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
      }
    },
    "node_modules/argparse": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
      "dev": true
    },
    "node_modules/balanced-match": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
      "dev": true
    },
    "node_modules/brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
      "dev": true,
      "dependencies": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "node_modules/callsites": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
      "dev": true,
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/chalk": {
      "version": "4.1.2",
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
      "dev": true,
      "dependencies": {
        "ansi-styles": "^4.1.0",
        "supports-color": "^7.1.0"
      },
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/chalk/chalk?sponsor=1"
      }
    },
    "node_modules/color-convert": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
      "dev": true,
      "dependencies": {
        "color-name": "~1.1.4"
      },
      "engines": {
        "node": ">=7.0.0"
      }
    },
    "node_modules/color-name": {
      "version": "1.1.4",
      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
      "dev": true
    },
    "node_modules/concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
      "dev": true
    },
    "node_modules/cross-spawn": {
      "version": "7.0.3",
      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
      "dev": true,
      "dependencies": {
        "path-key": "^3.1.0",
        "shebang-command": "^2.0.0",
        "which": "^2.0.1"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/debug": {
      "version": "4.3.4",
      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
      "dev": true,
      "dependencies": {
        "ms": "2.1.2"
      },
      "engines": {
        "node": ">=6.0"
      },
      "peerDependenciesMeta": {
        "supports-color": {
          "optional": true
        }
      }
    },
    "node_modules/deep-is": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
      "dev": true
    },
    "node_modules/doctrine": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
      "dev": true,
      "dependencies": {
        "esutils": "^2.0.2"
      },
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/escape-string-regexp": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
      "dev": true,
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/eslint": {
      "version": "8.57.0",
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
      "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
        "@eslint-community/regexpp": "^4.6.1",
        "@eslint/eslintrc": "^2.1.4",
        "@eslint/js": "8.57.0",
        "@humanwhocodes/config-array": "^0.11.14",
        "@humanwhocodes/module-importer": "^1.0.1",
        "@nodelib/fs.walk": "^1.2.8",
        "@ungap/structured-clone": "^1.2.0",
        "ajv": "^6.12.4",
        "chalk": "^4.0.0",
        "cross-spawn": "^7.0.2",
        "debug": "^4.3.2",
        "doctrine": "^3.0.0",
        "escape-string-regexp": "^4.0.0",
        "eslint-scope": "^7.2.2",
        "eslint-visitor-keys": "^3.4.3",
        "espree": "^9.6.1",
        "esquery": "^1.4.2",
        "esutils": "^2.0.2",
        "fast-deep-equal": "^3.1.3",
        "file-entry-cache": "^6.0.1",
        "find-up": "^5.0.0",
        "glob-parent": "^6.0.2",
        "globals": "^13.19.0",
        "graphemer": "^1.4.0",
        "ignore": "^5.2.0",
        "imurmurhash": "^0.1.4",
        "is-glob": "^4.0.0",
        "is-path-inside": "^3.0.3",
        "js-yaml": "^4.1.0",
        "json-stable-stringify-without-jsonify": "^1.0.1",
        "levn": "^0.4.1",
        "lodash.merge": "^4.6.2",
        "minimatch": "^3.1.2",
        "natural-compare": "^1.4.0",
        "optionator": "^0.9.3",
        "strip-ansi": "^6.0.1",
        "text-table": "^0.2.0"
      },
      "bin": {
        "eslint": "bin/eslint.js"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      },
      "funding": {
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/eslint-config-google": {
      "version": "0.14.0",
      "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
      "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      },
      "peerDependencies": {
        "eslint": ">=5.16.0"
      }
    },
    "node_modules/eslint-scope": {
      "version": "7.2.2",
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
      "dev": true,
      "dependencies": {
        "esrecurse": "^4.3.0",
        "estraverse": "^5.2.0"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      },
      "funding": {
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/eslint-visitor-keys": {
      "version": "3.4.3",
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
      "dev": true,
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      },
      "funding": {
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/espree": {
      "version": "9.6.1",
      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
      "dev": true,
      "dependencies": {
        "acorn": "^8.9.0",
        "acorn-jsx": "^5.3.2",
        "eslint-visitor-keys": "^3.4.1"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
      },
      "funding": {
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/esquery": {
      "version": "1.5.0",
      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
      "dev": true,
      "dependencies": {
        "estraverse": "^5.1.0"
      },
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/esrecurse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
      "dev": true,
      "dependencies": {
        "estraverse": "^5.2.0"
      },
      "engines": {
        "node": ">=4.0"
      }
    },
    "node_modules/estraverse": {
      "version": "5.3.0",
      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
      "dev": true,
      "engines": {
        "node": ">=4.0"
      }
    },
    "node_modules/esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/fast-deep-equal": {
      "version": "3.1.3",
      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
      "dev": true
    },
    "node_modules/fast-json-stable-stringify": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
      "dev": true
    },
    "node_modules/fast-levenshtein": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
      "dev": true
    },
    "node_modules/fastq": {
      "version": "1.17.1",
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
      "dev": true,
      "dependencies": {
        "reusify": "^1.0.4"
      }
    },
    "node_modules/file-entry-cache": {
      "version": "6.0.1",
      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
      "dev": true,
      "dependencies": {
        "flat-cache": "^3.0.4"
      },
      "engines": {
        "node": "^10.12.0 || >=12.0.0"
      }
    },
    "node_modules/find-up": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
      "dev": true,
      "dependencies": {
        "locate-path": "^6.0.0",
        "path-exists": "^4.0.0"
      },
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/flat-cache": {
      "version": "3.2.0",
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
      "dev": true,
      "dependencies": {
        "flatted": "^3.2.9",
        "keyv": "^4.5.3",
        "rimraf": "^3.0.2"
      },
      "engines": {
        "node": "^10.12.0 || >=12.0.0"
      }
    },
    "node_modules/flatted": {
      "version": "3.3.1",
      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
      "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
      "dev": true
    },
    "node_modules/fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
      "dev": true
    },
    "node_modules/glob": {
      "version": "7.2.3",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
      "dev": true,
      "dependencies": {
        "fs.realpath": "^1.0.0",
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "^3.1.1",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      },
      "engines": {
        "node": "*"
      },
      "funding": {
        "url": "https://github.com/sponsors/isaacs"
      }
    },
    "node_modules/glob-parent": {
      "version": "6.0.2",
      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
      "dev": true,
      "dependencies": {
        "is-glob": "^4.0.3"
      },
      "engines": {
        "node": ">=10.13.0"
      }
    },
    "node_modules/globals": {
      "version": "13.24.0",
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
      "dev": true,
      "dependencies": {
        "type-fest": "^0.20.2"
      },
      "engines": {
        "node": ">=8"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/graphemer": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
      "dev": true
    },
    "node_modules/has-flag": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
      "dev": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/ignore": {
      "version": "5.3.1",
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
      "dev": true,
      "engines": {
        "node": ">= 4"
      }
    },
    "node_modules/import-fresh": {
      "version": "3.3.0",
      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
      "dev": true,
      "dependencies": {
        "parent-module": "^1.0.0",
        "resolve-from": "^4.0.0"
      },
      "engines": {
        "node": ">=6"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/imurmurhash": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
      "dev": true,
      "engines": {
        "node": ">=0.8.19"
      }
    },
    "node_modules/inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
      "dev": true,
      "dependencies": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "node_modules/inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
      "dev": true
    },
    "node_modules/is-extglob": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/is-glob": {
      "version": "4.0.3",
      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
      "dev": true,
      "dependencies": {
        "is-extglob": "^2.1.1"
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/is-path-inside": {
      "version": "3.0.3",
      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
      "dev": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/isexe": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
      "dev": true
    },
    "node_modules/js-yaml": {
      "version": "4.1.0",
      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
      "dev": true,
      "dependencies": {
        "argparse": "^2.0.1"
      },
      "bin": {
        "js-yaml": "bin/js-yaml.js"
      }
    },
    "node_modules/json-buffer": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
      "dev": true
    },
    "node_modules/json-schema-traverse": {
      "version": "0.4.1",
      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
      "dev": true
    },
    "node_modules/json-stable-stringify-without-jsonify": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
      "dev": true
    },
    "node_modules/keyv": {
      "version": "4.5.4",
      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
      "dev": true,
      "dependencies": {
        "json-buffer": "3.0.1"
      }
    },
    "node_modules/levn": {
      "version": "0.4.1",
      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
      "dev": true,
      "dependencies": {
        "prelude-ls": "^1.2.1",
        "type-check": "~0.4.0"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/locate-path": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
      "dev": true,
      "dependencies": {
        "p-locate": "^5.0.0"
      },
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/lodash.merge": {
      "version": "4.6.2",
      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
      "dev": true
    },
    "node_modules/minimatch": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
      "dev": true,
      "dependencies": {
        "brace-expansion": "^1.1.7"
      },
      "engines": {
        "node": "*"
      }
    },
    "node_modules/ms": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
      "dev": true
    },
    "node_modules/nan": {
      "version": "2.18.0",
      "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
      "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w=="
    },
    "node_modules/natural-compare": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
      "dev": true
    },
    "node_modules/once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
      "dev": true,
      "dependencies": {
        "wrappy": "1"
      }
    },
    "node_modules/optionator": {
      "version": "0.9.3",
      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
      "dev": true,
      "dependencies": {
        "@aashutoshrathi/word-wrap": "^1.2.3",
        "deep-is": "^0.1.3",
        "fast-levenshtein": "^2.0.6",
        "levn": "^0.4.1",
        "prelude-ls": "^1.2.1",
        "type-check": "^0.4.0"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/p-limit": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
      "dev": true,
      "dependencies": {
        "yocto-queue": "^0.1.0"
      },
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/p-locate": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
      "dev": true,
      "dependencies": {
        "p-limit": "^3.0.2"
      },
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/parent-module": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
      "dev": true,
      "dependencies": {
        "callsites": "^3.0.0"
      },
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/path-exists": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
      "dev": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/path-key": {
      "version": "3.1.1",
      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
      "dev": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/prelude-ls": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
      "dev": true,
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/punycode": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
      "dev": true,
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/queue-microtask": {
      "version": "1.2.3",
      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
      "dev": true,
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/feross"
        },
        {
          "type": "patreon",
          "url": "https://www.patreon.com/feross"
        },
        {
          "type": "consulting",
          "url": "https://feross.org/support"
        }
      ]
    },
    "node_modules/resolve-from": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
      "dev": true,
      "engines": {
        "node": ">=4"
      }
    },
    "node_modules/reusify": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
      "dev": true,
      "engines": {
        "iojs": ">=1.0.0",
        "node": ">=0.10.0"
      }
    },
    "node_modules/rimraf": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
      "dev": true,
      "dependencies": {
        "glob": "^7.1.3"
      },
      "bin": {
        "rimraf": "bin.js"
      },
      "funding": {
        "url": "https://github.com/sponsors/isaacs"
      }
    },
    "node_modules/run-parallel": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
      "dev": true,
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/feross"
        },
        {
          "type": "patreon",
          "url": "https://www.patreon.com/feross"
        },
        {
          "type": "consulting",
          "url": "https://feross.org/support"
        }
      ],
      "dependencies": {
        "queue-microtask": "^1.2.2"
      }
    },
    "node_modules/shebang-command": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
      "dev": true,
      "dependencies": {
        "shebang-regex": "^3.0.0"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/shebang-regex": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
      "dev": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/strip-ansi": {
      "version": "6.0.1",
      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
      "dev": true,
      "dependencies": {
        "ansi-regex": "^5.0.1"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/strip-json-comments": {
      "version": "3.1.1",
      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
      "dev": true,
      "engines": {
        "node": ">=8"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/supports-color": {
      "version": "7.2.0",
      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
      "dev": true,
      "dependencies": {
        "has-flag": "^4.0.0"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/text-table": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
      "dev": true
    },
    "node_modules/tree-sitter-cli": {
      "version": "0.21.0",
      "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.21.0.tgz",
      "integrity": "sha512-wA7wT5724fNQW82XDH6zT6ZcYonjrAKLCHHuhLsPcAKULrhp3rNuMvlgBdB5FUBvmjHNhtTZF/qpHenMoRJPBw==",
      "dev": true,
      "hasInstallScript": true,
      "bin": {
        "tree-sitter": "cli.js"
      }
    },
    "node_modules/type-check": {
      "version": "0.4.0",
      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
      "dev": true,
      "dependencies": {
        "prelude-ls": "^1.2.1"
      },
      "engines": {
        "node": ">= 0.8.0"
      }
    },
    "node_modules/type-fest": {
      "version": "0.20.2",
      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
      "dev": true,
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/uri-js": {
      "version": "4.4.1",
      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
      "dev": true,
      "dependencies": {
        "punycode": "^2.1.0"
      }
    },
    "node_modules/which": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
      "dev": true,
      "dependencies": {
        "isexe": "^2.0.0"
      },
      "bin": {
        "node-which": "bin/node-which"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
      "dev": true
    },
    "node_modules/yocto-queue": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
      "dev": true,
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    }
  }
}
0707010000002D000081A4000000000000000000000001672A22400000048B000000000000000000000000000000000000003000000000tree-sitter-tcl-0+20241105.98015eb/package.json{
  "name": "tree-sitter-tcl",
  "version": "1.0.0",
  "description": "Treesitter parser for TCL",
  "main": "bindings/node",
  "types": "bindings/node",
  "keywords": [
    "tree-sitter",
    "parser",
    "lexer",
    "tcl"
  ],
  "files": [
    "grammar.js",
    "binding.gyp",
    "prebuilds/**",
    "bindings/node/*",
    "queries/*",
    "src/**"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/tree-sitter-grammars/tree-sitter-tcl.git"
  },
  "scripts": {
    "install": "node-gyp-build",
    "prestart": "tree-sitter build --wasm",
    "start": "tree-sitter playground",
    "test": "node --test bindings/node/*_test.js",
    "prebuildify": "prebuildify --napi --strip"
  },
  "author": "Lewis Russell <lewis6991@gmail.com>",
  "license": "MIT",
  "dependencies": {
    "node-addon-api": "^7.1.0",
    "node-gyp-build": "^4.8.0"
  },
  "peerDependencies": {
    "tree-sitter": "^0.21.0"
  },
  "peerDependenciesMeta": {
    "tree_sitter": {
      "optional": true
    }
  },
  "devDependencies": {
    "eslint": "^8.56.0",
    "eslint-config-google": "^0.14.0",
    "tree-sitter-cli": "^0.21.0",
    "prebuildify": "^6.0.0"
  }
}0707010000002E000081A4000000000000000000000001672A2240000002DC000000000000000000000000000000000000003200000000tree-sitter-tcl-0+20241105.98015eb/pyproject.toml[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "tree-sitter-tcl"
description = "Tcl grammar for tree-sitter"
version = "0.0.1"
keywords = ["incremental", "parsing", "tree-sitter", "tcl"]
classifiers = [
  "Intended Audience :: Developers",
  "License :: OSI Approved :: MIT License",
  "Topic :: Software Development :: Compilers",
  "Topic :: Text Processing :: Linguistic",
  "Typing :: Typed"
]
requires-python = ">=3.8"
license.text = "MIT"
readme = "README.md"

[project.urls]
Homepage = "https://github.com/tree-sitter/tree-sitter-tcl"

[project.optional-dependencies]
core = ["tree-sitter~=0.21"]

[tool.cibuildwheel]
build = "cp38-*"
build-frontend = "build"
0707010000002F000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002B00000000tree-sitter-tcl-0+20241105.98015eb/queries07070100000030000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002F00000000tree-sitter-tcl-0+20241105.98015eb/queries/tcl07070100000031000081A4000000000000000000000001672A224000000014000000000000000000000000000000000000003900000000tree-sitter-tcl-0+20241105.98015eb/queries/tcl/folds.scm(braced_word) @fold
07070100000032000081A4000000000000000000000001672A224000000BB5000000000000000000000000000000000000003E00000000tree-sitter-tcl-0+20241105.98015eb/queries/tcl/highlights.scm
(comment) @comment @spell

(command name: (simple_word) @function)

"proc" @keyword.function

(procedure
  name: (_) @variable
)

(set (simple_word) @variable)

(argument
  name: (_) @variable.parameter
)

((simple_word) @variable.builtin
               (#any-of? @variable.builtin
                "argc"
                "argv"
                "argv0"
                "auto_path"
                "env"
                "errorCode"
                "errorInfo"
                "tcl_interactive"
                "tcl_library"
                "tcl_nonwordchars"
                "tcl_patchLevel"
                "tcl_pkgPath"
                "tcl_platform"
                "tcl_precision"
                "tcl_rcFileName"
                "tcl_traceCompile"
                "tcl_traceExec"
                "tcl_wordchars"
                "tcl_version"))


"expr" @function.builtin

(command
  name: (simple_word) @function.builtin
  (#any-of? @function.builtin
   "cd"
   "exec"
   "exit"
   "incr"
   "info"
   "join"
   "puts"
   "regexp"
   "regsub"
   "split"
   "subst"
   "trace"
   "source"))

(command name: (simple_word) @keyword
         (#any-of? @keyword
          "append"
          "break"
          "catch"
          "continue"
          "default"
          "dict"
          "error"
          "eval"
          "global"
          "lappend"
          "lassign"
          "lindex"
          "linsert"
          "list"
          "llength"
          "lmap"
          "lrange"
          "lrepeat"
          "lreplace"
          "lreverse"
          "lsearch"
          "lset"
          "lsort"
          "package"
          "return"
          "switch"
          "throw"
          "unset"
          "variable"))

[
 "error"
 "namespace"
 "on"
 "set"
 "try"
 ] @keyword

(unpack) @operator

[
 "while"
 "foreach"
 ; "for"
 ] @repeat

[
 "if"
 "else"
 "elseif"
 ] @conditional

[
 "**"
 "/" "*" "%" "+" "-"
 "<<" ">>"
 ">" "<" ">=" "<="
 "==" "!="
 "eq" "ne"
 "in" "ni"
 "&"
 "^"
 "|"
 "&&"
 "||"
 ] @operator

(variable_substitution) @variable
(quoted_word) @string
(escaped_character) @string.escape

[
 "{" "}"
 "[" "]"
 ";"
 ] @punctuation.delimiter

((simple_word) @number
               (#lua-match? @number "^[0-9]+$"))

((simple_word) @boolean
               (#any-of? @boolean "true" "false"))

; after apply array auto_execok auto_import auto_load auto_mkindex auto_qualify
; auto_reset bgerror binary chan clock close coroutine dde encoding eof fblocked
; fconfigure fcopy file fileevent filename flush format gets glob history http
; interp load mathfunc mathop memory msgcat my next nextto open parray pid
; pkg::create pkg_mkIndex platform platform::shell pwd re_syntax read refchan
; registry rename safe scan seek self socket source string tailcall tcl::prefix
; tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord
; tcl_wordBreakAfter tcl_wordBreakBefore tcltest tell time timerate tm
; transchan unknown unload update uplevel upvar vwait yield yieldto zlib
07070100000033000081A4000000000000000000000001672A224000000152000000000000000000000000000000000000003B00000000tree-sitter-tcl-0+20241105.98015eb/queries/tcl/indents.scm[
 (braced_word_simple)
 (namespace)
 (command)
 (conditional)
 (foreach)
 (while)
 (try)
 (procedure)
 (command_substitution)
 ] @indent.begin

(quoted_word) @indent.align

([
  (expr)
  (arguments)
] @indent.align
  (#set! "indent.open_delimiter" "{")
  (#set! "indent.close_delimiter" "}"))

[
  "}"
  "]"
] @indent.branch @indent.end
07070100000034000081A4000000000000000000000001672A224000000634000000000000000000000000000000000000002C00000000tree-sitter-tcl-0+20241105.98015eb/setup.pyfrom os.path import isdir, join
from platform import system

from setuptools import Extension, find_packages, setup
from setuptools.command.build import build
from wheel.bdist_wheel import bdist_wheel


class Build(build):
    def run(self):
        if isdir("queries"):
            dest = join(self.build_lib, "tree_sitter_tcl", "queries")
            self.copy_tree("queries", dest)
        super().run()


class BdistWheel(bdist_wheel):
    def get_tag(self):
        python, abi, platform = super().get_tag()
        if python.startswith("cp"):
            python, abi = "cp38", "abi3"
        return python, abi, platform


setup(
    packages=find_packages("bindings/python"),
    package_dir={"": "bindings/python"},
    package_data={
        "tree_sitter_tcl": ["*.pyi", "py.typed"],
        "tree_sitter_tcl.queries": ["*.scm"],
    },
    ext_package="tree_sitter_tcl",
    ext_modules=[
        Extension(
            name="_binding",
            sources=[
                "bindings/python/tree_sitter_tcl/binding.c",
                "src/parser.c",
                # NOTE: if your language uses an external scanner, add it here.
            ],
            extra_compile_args=(
                ["-std=c11"] if system() != 'Windows' else []
            ),
            define_macros=[
                ("Py_LIMITED_API", "0x03080000"),
                ("PY_SSIZE_T_CLEAN", None)
            ],
            include_dirs=["src"],
            py_limited_api=True,
        )
    ],
    cmdclass={
        "build": Build,
        "bdist_wheel": BdistWheel
    },
    zip_safe=False
)
07070100000035000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002700000000tree-sitter-tcl-0+20241105.98015eb/src07070100000036000081A4000000000000000000000001672A2240000092C9000000000000000000000000000000000000003400000000tree-sitter-tcl-0+20241105.98015eb/src/grammar.json{
  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
  "name": "tcl",
  "word": "simple_word",
  "rules": {
    "source_file": {
      "type": "REPEAT",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_command"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_terminator"
          }
        ]
      }
    },
    "_terminator": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "\n"
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "comment": {
      "type": "PATTERN",
      "value": "#[^\\n]*"
    },
    "_builtin": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "conditional"
        },
        {
          "type": "SYMBOL",
          "name": "global"
        },
        {
          "type": "SYMBOL",
          "name": "namespace"
        },
        {
          "type": "SYMBOL",
          "name": "procedure"
        },
        {
          "type": "SYMBOL",
          "name": "set"
        },
        {
          "type": "SYMBOL",
          "name": "try"
        },
        {
          "type": "SYMBOL",
          "name": "foreach"
        },
        {
          "type": "SYMBOL",
          "name": "expr_cmd"
        },
        {
          "type": "SYMBOL",
          "name": "while"
        },
        {
          "type": "SYMBOL",
          "name": "catch"
        },
        {
          "type": "SYMBOL",
          "name": "regexp"
        }
      ]
    },
    "regexp": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "regexp"
        },
        {
          "type": "SYMBOL",
          "name": "_word_simple"
        },
        {
          "type": "SYMBOL",
          "name": "_concat_word"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_concat_word"
          }
        }
      ]
    },
    "while": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "while"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        }
      ]
    },
    "expr_cmd": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "expr"
        },
        {
          "type": "SYMBOL",
          "name": "expr"
        }
      ]
    },
    "foreach": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "foreach"
        },
        {
          "type": "SYMBOL",
          "name": "arguments"
        },
        {
          "type": "SYMBOL",
          "name": "_word_simple"
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        }
      ]
    },
    "global": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "global"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_concat_word"
          }
        }
      ]
    },
    "namespace": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "namespace"
        },
        {
          "type": "SYMBOL",
          "name": "word_list"
        }
      ]
    },
    "try": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "try"
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "on"
                },
                {
                  "type": "STRING",
                  "value": "error"
                },
                {
                  "type": "SYMBOL",
                  "name": "arguments"
                },
                {
                  "type": "SYMBOL",
                  "name": "_word"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "finally"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "finally": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "finally"
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        }
      ]
    },
    "_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_builtin"
        },
        {
          "type": "SYMBOL",
          "name": "comment"
        },
        {
          "type": "SYMBOL",
          "name": "command"
        }
      ]
    },
    "command": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "_word"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "arguments",
              "content": {
                "type": "SYMBOL",
                "name": "word_list"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "word_list": {
      "type": "REPEAT1",
      "content": {
        "type": "SYMBOL",
        "name": "_word"
      }
    },
    "unpack": {
      "type": "STRING",
      "value": "{*}"
    },
    "_word": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "unpack"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "braced_word"
            },
            {
              "type": "SYMBOL",
              "name": "_concat_word"
            }
          ]
        }
      ]
    },
    "_word_simple": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "escaped_character"
            },
            {
              "type": "SYMBOL",
              "name": "command_substitution"
            },
            {
              "type": "SYMBOL",
              "name": "simple_word"
            },
            {
              "type": "SYMBOL",
              "name": "quoted_word"
            },
            {
              "type": "SYMBOL",
              "name": "variable_substitution"
            },
            {
              "type": "SYMBOL",
              "name": "braced_word_simple"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_concat"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "escaped_character"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "command_substitution"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "simple_word"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "quoted_word"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "variable_substitution"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "braced_word_simple"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "_concat_word": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "escaped_character"
            },
            {
              "type": "SYMBOL",
              "name": "command_substitution"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "simple_word"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "array_index"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "quoted_word"
            },
            {
              "type": "SYMBOL",
              "name": "variable_substitution"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_concat"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "escaped_character"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "command_substitution"
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "simple_word"
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "array_index"
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "SYMBOL",
                    "name": "quoted_word"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "variable_substitution"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "_ns_delim": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "STRING",
        "value": "::"
      }
    },
    "_ident_imm": {
      "type": "IMMEDIATE_TOKEN",
      "content": {
        "type": "PATTERN",
        "value": "[a-zA-Z_][a-zA-Z0-9_]*"
      }
    },
    "_ident": {
      "type": "PATTERN",
      "value": "[a-zA-Z_][a-zA-Z0-9_]*"
    },
    "_id_immediate": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_ns_delim"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_ident_imm"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_ns_delim"
              },
              {
                "type": "SYMBOL",
                "name": "_ident_imm"
              }
            ]
          }
        }
      ]
    },
    "id": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "::"
                },
                {
                  "type": "SYMBOL",
                  "name": "_ident_imm"
                }
              ]
            },
            {
              "type": "SYMBOL",
              "name": "_ident"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_ns_delim"
              },
              {
                "type": "SYMBOL",
                "name": "_ident_imm"
              }
            ]
          }
        }
      ]
    },
    "array_index": {
      "type": "SEQ",
      "members": [
        {
          "type": "IMMEDIATE_TOKEN",
          "content": {
            "type": "STRING",
            "value": "("
          }
        },
        {
          "type": "SYMBOL",
          "name": "_word_simple"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "variable_substitution": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "$"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_id_immediate"
                  },
                  "named": true,
                  "value": "id"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "$"
                },
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "PATTERN",
                  "value": "[^}]+"
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "array_index"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "braced_word": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_command"
                    },
                    {
                      "type": "REPEAT",
                      "content": {
                        "type": "SEQ",
                        "members": [
                          {
                            "type": "REPEAT1",
                            "content": {
                              "type": "SYMBOL",
                              "name": "_terminator"
                            }
                          },
                          {
                            "type": "SYMBOL",
                            "name": "_command"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_terminator"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "braced_word_simple": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_word_simple"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "set": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "set"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "id"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "array_index"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "$"
                },
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "PATTERN",
                  "value": "[^}]+"
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_word_simple"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "procedure": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "proc"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "_word"
          }
        },
        {
          "type": "FIELD",
          "name": "arguments",
          "content": {
            "type": "SYMBOL",
            "name": "arguments"
          }
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "_word"
          }
        }
      ]
    },
    "_argument_word": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "simple_word"
        },
        {
          "type": "SYMBOL",
          "name": "quoted_word"
        },
        {
          "type": "SYMBOL",
          "name": "braced_word"
        }
      ]
    },
    "argument": {
      "type": "CHOICE",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "simple_word"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "FIELD",
              "name": "name",
              "content": {
                "type": "SYMBOL",
                "name": "simple_word"
              }
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "FIELD",
                  "name": "default",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_argument_word"
                  }
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "STRING",
              "value": "}"
            }
          ]
        }
      ]
    },
    "arguments": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "argument"
              }
            },
            {
              "type": "STRING",
              "value": "}"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "simple_word"
        }
      ]
    },
    "_number": {
      "type": "PATTERN",
      "value": "[0-9]+(\\.[0-9]+)?([eE][+-]?[0-9]+)?"
    },
    "_boolean": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "STRING",
            "value": "1"
          },
          {
            "type": "STRING",
            "value": "0"
          },
          {
            "type": "PATTERN",
            "value": "[Tt][Rr][Uu][Ee]"
          },
          {
            "type": "PATTERN",
            "value": "[Ff][Aa][Ll][Ss][Ee]"
          }
        ]
      }
    },
    "_expr_atom_no_brace": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_number"
        },
        {
          "type": "SYMBOL",
          "name": "_boolean"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "simple_word"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SYMBOL",
              "name": "_expr"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "command_substitution"
        },
        {
          "type": "SYMBOL",
          "name": "quoted_word"
        },
        {
          "type": "SYMBOL",
          "name": "variable_substitution"
        }
      ]
    },
    "_expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "unary_expr"
        },
        {
          "type": "SYMBOL",
          "name": "binop_expr"
        },
        {
          "type": "SYMBOL",
          "name": "ternary_expr"
        },
        {
          "type": "SYMBOL",
          "name": "escaped_character"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "SYMBOL",
              "name": "_expr"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_expr_atom_no_brace"
        },
        {
          "type": "SYMBOL",
          "name": "braced_word_simple"
        }
      ]
    },
    "expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "{"
            },
            {
              "type": "SYMBOL",
              "name": "_expr"
            },
            {
              "type": "STRING",
              "value": "}"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "_expr_atom_no_brace"
        }
      ]
    },
    "unary_expr": {
      "type": "PREC_LEFT",
      "value": 150,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "-"
              },
              {
                "type": "STRING",
                "value": "+"
              },
              {
                "type": "STRING",
                "value": "~"
              },
              {
                "type": "STRING",
                "value": "!"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_expr"
          }
        ]
      }
    },
    "binop_expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_LEFT",
          "value": 140,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "STRING",
                "value": "**"
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 130,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "/"
                  },
                  {
                    "type": "STRING",
                    "value": "*"
                  },
                  {
                    "type": "STRING",
                    "value": "%"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 120,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "+"
                  },
                  {
                    "type": "STRING",
                    "value": "-"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 110,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "<<"
                  },
                  {
                    "type": "STRING",
                    "value": ">>"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 100,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": ">"
                  },
                  {
                    "type": "STRING",
                    "value": "<"
                  },
                  {
                    "type": "STRING",
                    "value": ">="
                  },
                  {
                    "type": "STRING",
                    "value": "<="
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 90,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "=="
                  },
                  {
                    "type": "STRING",
                    "value": "!="
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 80,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "eq"
                  },
                  {
                    "type": "STRING",
                    "value": "ne"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 70,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "in"
                  },
                  {
                    "type": "STRING",
                    "value": "ni"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 60,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "STRING",
                "value": "&"
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 50,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "STRING",
                "value": "^"
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 40,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "STRING",
                "value": "|"
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 30,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "STRING",
                "value": "&&"
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 20,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_expr"
              },
              {
                "type": "STRING",
                "value": "||"
              },
              {
                "type": "SYMBOL",
                "name": "_expr"
              }
            ]
          }
        }
      ]
    },
    "ternary_expr": {
      "type": "PREC_LEFT",
      "value": 10,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_expr"
          },
          {
            "type": "STRING",
            "value": "?"
          },
          {
            "type": "SYMBOL",
            "name": "_expr"
          },
          {
            "type": "STRING",
            "value": ":"
          },
          {
            "type": "SYMBOL",
            "name": "_expr"
          }
        ]
      }
    },
    "elseif": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "elseif"
        },
        {
          "type": "FIELD",
          "name": "condition",
          "content": {
            "type": "SYMBOL",
            "name": "expr"
          }
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        }
      ]
    },
    "else": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "else"
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        }
      ]
    },
    "conditional": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "if"
        },
        {
          "type": "FIELD",
          "name": "condition",
          "content": {
            "type": "SYMBOL",
            "name": "expr"
          }
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "elseif"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "else"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "catch": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "catch"
        },
        {
          "type": "SYMBOL",
          "name": "_word"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_concat_word"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "quoted_word": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "\""
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "variable_substitution"
              },
              {
                "type": "SYMBOL",
                "name": "_quoted_word_content"
              },
              {
                "type": "SYMBOL",
                "name": "command_substitution"
              },
              {
                "type": "SYMBOL",
                "name": "escaped_character"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "\""
        }
      ]
    },
    "escaped_character": {
      "type": "PATTERN",
      "value": "\\\\."
    },
    "_quoted_word_content": {
      "type": "TOKEN",
      "content": {
        "type": "PREC",
        "value": -1,
        "content": {
          "type": "PATTERN",
          "value": "[^$\\\\\\[\\]\"]+"
        }
      }
    },
    "command_substitution": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "SYMBOL",
          "name": "_command"
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "simple_word": {
      "type": "PATTERN",
      "value": "[^!$\\s\\\\\\[\\]{}();\"]+"
    }
  },
  "extras": [
    {
      "type": "PATTERN",
      "value": "\\s+"
    },
    {
      "type": "PATTERN",
      "value": "\\\\\\r?\\n"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "_concat"
    },
    {
      "type": "SYMBOL",
      "name": "_immediate"
    }
  ],
  "inline": [
    "_builtin",
    "_terminator",
    "_word"
  ],
  "supertypes": []
}
07070100000037000081A4000000000000000000000001672A224000006856000000000000000000000000000000000000003700000000tree-sitter-tcl-0+20241105.98015eb/src/node-types.json[
  {
    "type": "argument",
    "named": true,
    "fields": {
      "default": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "braced_word",
            "named": true
          },
          {
            "type": "quoted_word",
            "named": true
          },
          {
            "type": "simple_word",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "simple_word",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "argument",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_index",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "binop_expr",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "binop_expr",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "ternary_expr",
          "named": true
        },
        {
          "type": "unary_expr",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "braced_word",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "catch",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "comment",
          "named": true
        },
        {
          "type": "conditional",
          "named": true
        },
        {
          "type": "expr_cmd",
          "named": true
        },
        {
          "type": "foreach",
          "named": true
        },
        {
          "type": "global",
          "named": true
        },
        {
          "type": "namespace",
          "named": true
        },
        {
          "type": "procedure",
          "named": true
        },
        {
          "type": "regexp",
          "named": true
        },
        {
          "type": "set",
          "named": true
        },
        {
          "type": "try",
          "named": true
        },
        {
          "type": "while",
          "named": true
        }
      ]
    }
  },
  {
    "type": "braced_word_simple",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "command",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "word_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "array_index",
            "named": true
          },
          {
            "type": "braced_word",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "escaped_character",
            "named": true
          },
          {
            "type": "quoted_word",
            "named": true
          },
          {
            "type": "simple_word",
            "named": true
          },
          {
            "type": "unpack",
            "named": true
          },
          {
            "type": "variable_substitution",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "command_substitution",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "catch",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "comment",
          "named": true
        },
        {
          "type": "conditional",
          "named": true
        },
        {
          "type": "expr_cmd",
          "named": true
        },
        {
          "type": "foreach",
          "named": true
        },
        {
          "type": "global",
          "named": true
        },
        {
          "type": "namespace",
          "named": true
        },
        {
          "type": "procedure",
          "named": true
        },
        {
          "type": "regexp",
          "named": true
        },
        {
          "type": "set",
          "named": true
        },
        {
          "type": "try",
          "named": true
        },
        {
          "type": "while",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional",
    "named": true,
    "fields": {
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expr",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "else",
          "named": true
        },
        {
          "type": "elseif",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "else",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "elseif",
    "named": true,
    "fields": {
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expr",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expr",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "binop_expr",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "ternary_expr",
          "named": true
        },
        {
          "type": "unary_expr",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expr_cmd",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expr",
          "named": true
        }
      ]
    }
  },
  {
    "type": "finally",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "global",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "id",
    "named": true,
    "fields": {}
  },
  {
    "type": "namespace",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "word_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "procedure",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "array_index",
            "named": true
          },
          {
            "type": "braced_word",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "escaped_character",
            "named": true
          },
          {
            "type": "quoted_word",
            "named": true
          },
          {
            "type": "simple_word",
            "named": true
          },
          {
            "type": "unpack",
            "named": true
          },
          {
            "type": "variable_substitution",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "array_index",
            "named": true
          },
          {
            "type": "braced_word",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "escaped_character",
            "named": true
          },
          {
            "type": "quoted_word",
            "named": true
          },
          {
            "type": "simple_word",
            "named": true
          },
          {
            "type": "unpack",
            "named": true
          },
          {
            "type": "variable_substitution",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "quoted_word",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "regexp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "set",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "id",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "source_file",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "catch",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "comment",
          "named": true
        },
        {
          "type": "conditional",
          "named": true
        },
        {
          "type": "expr_cmd",
          "named": true
        },
        {
          "type": "foreach",
          "named": true
        },
        {
          "type": "global",
          "named": true
        },
        {
          "type": "namespace",
          "named": true
        },
        {
          "type": "procedure",
          "named": true
        },
        {
          "type": "regexp",
          "named": true
        },
        {
          "type": "set",
          "named": true
        },
        {
          "type": "try",
          "named": true
        },
        {
          "type": "while",
          "named": true
        }
      ]
    }
  },
  {
    "type": "ternary_expr",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "binop_expr",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "ternary_expr",
          "named": true
        },
        {
          "type": "unary_expr",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "try",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "finally",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unary_expr",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "binop_expr",
          "named": true
        },
        {
          "type": "braced_word_simple",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "ternary_expr",
          "named": true
        },
        {
          "type": "unary_expr",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variable_substitution",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "id",
          "named": true
        }
      ]
    }
  },
  {
    "type": "while",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "expr",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "word_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_index",
          "named": true
        },
        {
          "type": "braced_word",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escaped_character",
          "named": true
        },
        {
          "type": "quoted_word",
          "named": true
        },
        {
          "type": "simple_word",
          "named": true
        },
        {
          "type": "unpack",
          "named": true
        },
        {
          "type": "variable_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "\n",
    "named": false
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "$",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "**",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": "::",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "comment",
    "named": true
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "elseif",
    "named": false
  },
  {
    "type": "eq",
    "named": false
  },
  {
    "type": "error",
    "named": false
  },
  {
    "type": "escaped_character",
    "named": true
  },
  {
    "type": "expr",
    "named": false
  },
  {
    "type": "finally",
    "named": false
  },
  {
    "type": "foreach",
    "named": false
  },
  {
    "type": "global",
    "named": false
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "namespace",
    "named": false
  },
  {
    "type": "ne",
    "named": false
  },
  {
    "type": "ni",
    "named": false
  },
  {
    "type": "on",
    "named": false
  },
  {
    "type": "proc",
    "named": false
  },
  {
    "type": "regexp",
    "named": false
  },
  {
    "type": "set",
    "named": false
  },
  {
    "type": "simple_word",
    "named": true
  },
  {
    "type": "try",
    "named": false
  },
  {
    "type": "unpack",
    "named": true
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  },
  {
    "type": "~",
    "named": false
  }
]07070100000038000081A4000000000000000000000001672A22400006C73A000000000000000000000000000000000000003000000000tree-sitter-tcl-0+20241105.98015eb/src/parser.c#include "tree_sitter/parser.h"

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#define LANGUAGE_VERSION 14
#define STATE_COUNT 710
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 119
#define ALIAS_COUNT 0
#define TOKEN_COUNT 69
#define EXTERNAL_TOKEN_COUNT 2
#define FIELD_COUNT 5
#define MAX_ALIAS_SEQUENCE_LENGTH 9
#define PRODUCTION_ID_COUNT 12

enum ts_symbol_identifiers {
  sym_simple_word = 1,
  anon_sym_LF = 2,
  anon_sym_SEMI = 3,
  sym_comment = 4,
  anon_sym_regexp = 5,
  anon_sym_while = 6,
  anon_sym_expr = 7,
  anon_sym_foreach = 8,
  anon_sym_global = 9,
  anon_sym_namespace = 10,
  anon_sym_try = 11,
  anon_sym_on = 12,
  anon_sym_error = 13,
  anon_sym_finally = 14,
  sym_unpack = 15,
  anon_sym_COLON_COLON = 16,
  sym__ident_imm = 17,
  sym__ident = 18,
  anon_sym_COLON_COLON2 = 19,
  anon_sym_LPAREN = 20,
  anon_sym_RPAREN = 21,
  anon_sym_DOLLAR = 22,
  anon_sym_LBRACE = 23,
  aux_sym_variable_substitution_token1 = 24,
  anon_sym_RBRACE = 25,
  anon_sym_set = 26,
  anon_sym_proc = 27,
  sym__number = 28,
  sym__boolean = 29,
  anon_sym_LPAREN2 = 30,
  anon_sym_DASH = 31,
  anon_sym_PLUS = 32,
  anon_sym_TILDE = 33,
  anon_sym_BANG = 34,
  anon_sym_STAR_STAR = 35,
  anon_sym_SLASH = 36,
  anon_sym_STAR = 37,
  anon_sym_PERCENT = 38,
  anon_sym_LT_LT = 39,
  anon_sym_GT_GT = 40,
  anon_sym_GT = 41,
  anon_sym_LT = 42,
  anon_sym_GT_EQ = 43,
  anon_sym_LT_EQ = 44,
  anon_sym_EQ_EQ = 45,
  anon_sym_BANG_EQ = 46,
  anon_sym_eq = 47,
  anon_sym_ne = 48,
  anon_sym_in = 49,
  anon_sym_ni = 50,
  anon_sym_AMP = 51,
  anon_sym_CARET = 52,
  anon_sym_PIPE = 53,
  anon_sym_AMP_AMP = 54,
  anon_sym_PIPE_PIPE = 55,
  anon_sym_QMARK = 56,
  anon_sym_COLON = 57,
  anon_sym_elseif = 58,
  anon_sym_else = 59,
  anon_sym_if = 60,
  anon_sym_catch = 61,
  anon_sym_DQUOTE = 62,
  sym_escaped_character = 63,
  sym__quoted_word_content = 64,
  anon_sym_LBRACK = 65,
  anon_sym_RBRACK = 66,
  sym__concat = 67,
  sym__immediate = 68,
  sym_source_file = 69,
  sym_regexp = 70,
  sym_while = 71,
  sym_expr_cmd = 72,
  sym_foreach = 73,
  sym_global = 74,
  sym_namespace = 75,
  sym_try = 76,
  sym_finally = 77,
  sym__command = 78,
  sym_command = 79,
  sym_word_list = 80,
  sym__word_simple = 81,
  sym__concat_word = 82,
  sym__ns_delim = 83,
  sym__id_immediate = 84,
  sym_id = 85,
  sym_array_index = 86,
  sym_variable_substitution = 87,
  sym_braced_word = 88,
  sym_braced_word_simple = 89,
  sym_set = 90,
  sym_procedure = 91,
  sym__argument_word = 92,
  sym_argument = 93,
  sym_arguments = 94,
  sym__expr_atom_no_brace = 95,
  sym__expr = 96,
  sym_expr = 97,
  sym_unary_expr = 98,
  sym_binop_expr = 99,
  sym_ternary_expr = 100,
  sym_elseif = 101,
  sym_else = 102,
  sym_conditional = 103,
  sym_catch = 104,
  sym_quoted_word = 105,
  sym_command_substitution = 106,
  aux_sym_source_file_repeat1 = 107,
  aux_sym_regexp_repeat1 = 108,
  aux_sym_word_list_repeat1 = 109,
  aux_sym__word_simple_repeat1 = 110,
  aux_sym__concat_word_repeat1 = 111,
  aux_sym__id_immediate_repeat1 = 112,
  aux_sym_braced_word_repeat1 = 113,
  aux_sym_braced_word_repeat2 = 114,
  aux_sym_braced_word_simple_repeat1 = 115,
  aux_sym_arguments_repeat1 = 116,
  aux_sym_conditional_repeat1 = 117,
  aux_sym_quoted_word_repeat1 = 118,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [sym_simple_word] = "simple_word",
  [anon_sym_LF] = "\n",
  [anon_sym_SEMI] = ";",
  [sym_comment] = "comment",
  [anon_sym_regexp] = "regexp",
  [anon_sym_while] = "while",
  [anon_sym_expr] = "expr",
  [anon_sym_foreach] = "foreach",
  [anon_sym_global] = "global",
  [anon_sym_namespace] = "namespace",
  [anon_sym_try] = "try",
  [anon_sym_on] = "on",
  [anon_sym_error] = "error",
  [anon_sym_finally] = "finally",
  [sym_unpack] = "unpack",
  [anon_sym_COLON_COLON] = "::",
  [sym__ident_imm] = "_ident_imm",
  [sym__ident] = "_ident",
  [anon_sym_COLON_COLON2] = "::",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_DOLLAR] = "$",
  [anon_sym_LBRACE] = "{",
  [aux_sym_variable_substitution_token1] = "variable_substitution_token1",
  [anon_sym_RBRACE] = "}",
  [anon_sym_set] = "set",
  [anon_sym_proc] = "proc",
  [sym__number] = "_number",
  [sym__boolean] = "_boolean",
  [anon_sym_LPAREN2] = "(",
  [anon_sym_DASH] = "-",
  [anon_sym_PLUS] = "+",
  [anon_sym_TILDE] = "~",
  [anon_sym_BANG] = "!",
  [anon_sym_STAR_STAR] = "**",
  [anon_sym_SLASH] = "/",
  [anon_sym_STAR] = "*",
  [anon_sym_PERCENT] = "%",
  [anon_sym_LT_LT] = "<<",
  [anon_sym_GT_GT] = ">>",
  [anon_sym_GT] = ">",
  [anon_sym_LT] = "<",
  [anon_sym_GT_EQ] = ">=",
  [anon_sym_LT_EQ] = "<=",
  [anon_sym_EQ_EQ] = "==",
  [anon_sym_BANG_EQ] = "!=",
  [anon_sym_eq] = "eq",
  [anon_sym_ne] = "ne",
  [anon_sym_in] = "in",
  [anon_sym_ni] = "ni",
  [anon_sym_AMP] = "&",
  [anon_sym_CARET] = "^",
  [anon_sym_PIPE] = "|",
  [anon_sym_AMP_AMP] = "&&",
  [anon_sym_PIPE_PIPE] = "||",
  [anon_sym_QMARK] = "\?",
  [anon_sym_COLON] = ":",
  [anon_sym_elseif] = "elseif",
  [anon_sym_else] = "else",
  [anon_sym_if] = "if",
  [anon_sym_catch] = "catch",
  [anon_sym_DQUOTE] = "\"",
  [sym_escaped_character] = "escaped_character",
  [sym__quoted_word_content] = "_quoted_word_content",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [sym__concat] = "_concat",
  [sym__immediate] = "_immediate",
  [sym_source_file] = "source_file",
  [sym_regexp] = "regexp",
  [sym_while] = "while",
  [sym_expr_cmd] = "expr_cmd",
  [sym_foreach] = "foreach",
  [sym_global] = "global",
  [sym_namespace] = "namespace",
  [sym_try] = "try",
  [sym_finally] = "finally",
  [sym__command] = "_command",
  [sym_command] = "command",
  [sym_word_list] = "word_list",
  [sym__word_simple] = "_word_simple",
  [sym__concat_word] = "_concat_word",
  [sym__ns_delim] = "_ns_delim",
  [sym__id_immediate] = "id",
  [sym_id] = "id",
  [sym_array_index] = "array_index",
  [sym_variable_substitution] = "variable_substitution",
  [sym_braced_word] = "braced_word",
  [sym_braced_word_simple] = "braced_word_simple",
  [sym_set] = "set",
  [sym_procedure] = "procedure",
  [sym__argument_word] = "_argument_word",
  [sym_argument] = "argument",
  [sym_arguments] = "arguments",
  [sym__expr_atom_no_brace] = "_expr_atom_no_brace",
  [sym__expr] = "_expr",
  [sym_expr] = "expr",
  [sym_unary_expr] = "unary_expr",
  [sym_binop_expr] = "binop_expr",
  [sym_ternary_expr] = "ternary_expr",
  [sym_elseif] = "elseif",
  [sym_else] = "else",
  [sym_conditional] = "conditional",
  [sym_catch] = "catch",
  [sym_quoted_word] = "quoted_word",
  [sym_command_substitution] = "command_substitution",
  [aux_sym_source_file_repeat1] = "source_file_repeat1",
  [aux_sym_regexp_repeat1] = "regexp_repeat1",
  [aux_sym_word_list_repeat1] = "word_list_repeat1",
  [aux_sym__word_simple_repeat1] = "_word_simple_repeat1",
  [aux_sym__concat_word_repeat1] = "_concat_word_repeat1",
  [aux_sym__id_immediate_repeat1] = "_id_immediate_repeat1",
  [aux_sym_braced_word_repeat1] = "braced_word_repeat1",
  [aux_sym_braced_word_repeat2] = "braced_word_repeat2",
  [aux_sym_braced_word_simple_repeat1] = "braced_word_simple_repeat1",
  [aux_sym_arguments_repeat1] = "arguments_repeat1",
  [aux_sym_conditional_repeat1] = "conditional_repeat1",
  [aux_sym_quoted_word_repeat1] = "quoted_word_repeat1",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [sym_simple_word] = sym_simple_word,
  [anon_sym_LF] = anon_sym_LF,
  [anon_sym_SEMI] = anon_sym_SEMI,
  [sym_comment] = sym_comment,
  [anon_sym_regexp] = anon_sym_regexp,
  [anon_sym_while] = anon_sym_while,
  [anon_sym_expr] = anon_sym_expr,
  [anon_sym_foreach] = anon_sym_foreach,
  [anon_sym_global] = anon_sym_global,
  [anon_sym_namespace] = anon_sym_namespace,
  [anon_sym_try] = anon_sym_try,
  [anon_sym_on] = anon_sym_on,
  [anon_sym_error] = anon_sym_error,
  [anon_sym_finally] = anon_sym_finally,
  [sym_unpack] = sym_unpack,
  [anon_sym_COLON_COLON] = anon_sym_COLON_COLON,
  [sym__ident_imm] = sym__ident_imm,
  [sym__ident] = sym__ident,
  [anon_sym_COLON_COLON2] = anon_sym_COLON_COLON,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_DOLLAR] = anon_sym_DOLLAR,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [aux_sym_variable_substitution_token1] = aux_sym_variable_substitution_token1,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_set] = anon_sym_set,
  [anon_sym_proc] = anon_sym_proc,
  [sym__number] = sym__number,
  [sym__boolean] = sym__boolean,
  [anon_sym_LPAREN2] = anon_sym_LPAREN,
  [anon_sym_DASH] = anon_sym_DASH,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [anon_sym_TILDE] = anon_sym_TILDE,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_STAR_STAR] = anon_sym_STAR_STAR,
  [anon_sym_SLASH] = anon_sym_SLASH,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_PERCENT] = anon_sym_PERCENT,
  [anon_sym_LT_LT] = anon_sym_LT_LT,
  [anon_sym_GT_GT] = anon_sym_GT_GT,
  [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_EQ] = anon_sym_EQ_EQ,
  [anon_sym_BANG_EQ] = anon_sym_BANG_EQ,
  [anon_sym_eq] = anon_sym_eq,
  [anon_sym_ne] = anon_sym_ne,
  [anon_sym_in] = anon_sym_in,
  [anon_sym_ni] = anon_sym_ni,
  [anon_sym_AMP] = anon_sym_AMP,
  [anon_sym_CARET] = anon_sym_CARET,
  [anon_sym_PIPE] = anon_sym_PIPE,
  [anon_sym_AMP_AMP] = anon_sym_AMP_AMP,
  [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE,
  [anon_sym_QMARK] = anon_sym_QMARK,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_elseif] = anon_sym_elseif,
  [anon_sym_else] = anon_sym_else,
  [anon_sym_if] = anon_sym_if,
  [anon_sym_catch] = anon_sym_catch,
  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
  [sym_escaped_character] = sym_escaped_character,
  [sym__quoted_word_content] = sym__quoted_word_content,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [sym__concat] = sym__concat,
  [sym__immediate] = sym__immediate,
  [sym_source_file] = sym_source_file,
  [sym_regexp] = sym_regexp,
  [sym_while] = sym_while,
  [sym_expr_cmd] = sym_expr_cmd,
  [sym_foreach] = sym_foreach,
  [sym_global] = sym_global,
  [sym_namespace] = sym_namespace,
  [sym_try] = sym_try,
  [sym_finally] = sym_finally,
  [sym__command] = sym__command,
  [sym_command] = sym_command,
  [sym_word_list] = sym_word_list,
  [sym__word_simple] = sym__word_simple,
  [sym__concat_word] = sym__concat_word,
  [sym__ns_delim] = sym__ns_delim,
  [sym__id_immediate] = sym_id,
  [sym_id] = sym_id,
  [sym_array_index] = sym_array_index,
  [sym_variable_substitution] = sym_variable_substitution,
  [sym_braced_word] = sym_braced_word,
  [sym_braced_word_simple] = sym_braced_word_simple,
  [sym_set] = sym_set,
  [sym_procedure] = sym_procedure,
  [sym__argument_word] = sym__argument_word,
  [sym_argument] = sym_argument,
  [sym_arguments] = sym_arguments,
  [sym__expr_atom_no_brace] = sym__expr_atom_no_brace,
  [sym__expr] = sym__expr,
  [sym_expr] = sym_expr,
  [sym_unary_expr] = sym_unary_expr,
  [sym_binop_expr] = sym_binop_expr,
  [sym_ternary_expr] = sym_ternary_expr,
  [sym_elseif] = sym_elseif,
  [sym_else] = sym_else,
  [sym_conditional] = sym_conditional,
  [sym_catch] = sym_catch,
  [sym_quoted_word] = sym_quoted_word,
  [sym_command_substitution] = sym_command_substitution,
  [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
  [aux_sym_regexp_repeat1] = aux_sym_regexp_repeat1,
  [aux_sym_word_list_repeat1] = aux_sym_word_list_repeat1,
  [aux_sym__word_simple_repeat1] = aux_sym__word_simple_repeat1,
  [aux_sym__concat_word_repeat1] = aux_sym__concat_word_repeat1,
  [aux_sym__id_immediate_repeat1] = aux_sym__id_immediate_repeat1,
  [aux_sym_braced_word_repeat1] = aux_sym_braced_word_repeat1,
  [aux_sym_braced_word_repeat2] = aux_sym_braced_word_repeat2,
  [aux_sym_braced_word_simple_repeat1] = aux_sym_braced_word_simple_repeat1,
  [aux_sym_arguments_repeat1] = aux_sym_arguments_repeat1,
  [aux_sym_conditional_repeat1] = aux_sym_conditional_repeat1,
  [aux_sym_quoted_word_repeat1] = aux_sym_quoted_word_repeat1,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [sym_simple_word] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LF] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SEMI] = {
    .visible = true,
    .named = false,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_regexp] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_while] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_expr] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_foreach] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_global] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_namespace] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_try] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_on] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_error] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_finally] = {
    .visible = true,
    .named = false,
  },
  [sym_unpack] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_COLON_COLON] = {
    .visible = true,
    .named = false,
  },
  [sym__ident_imm] = {
    .visible = false,
    .named = true,
  },
  [sym__ident] = {
    .visible = false,
    .named = true,
  },
  [anon_sym_COLON_COLON2] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOLLAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_variable_substitution_token1] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_set] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_proc] = {
    .visible = true,
    .named = false,
  },
  [sym__number] = {
    .visible = false,
    .named = true,
  },
  [sym__boolean] = {
    .visible = false,
    .named = true,
  },
  [anon_sym_LPAREN2] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_TILDE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PERCENT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_LT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_GT] = {
    .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_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_eq] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ne] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_in] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ni] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_QMARK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_elseif] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_else] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_if] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_catch] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [sym_escaped_character] = {
    .visible = true,
    .named = true,
  },
  [sym__quoted_word_content] = {
    .visible = false,
    .named = true,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [sym__concat] = {
    .visible = false,
    .named = true,
  },
  [sym__immediate] = {
    .visible = false,
    .named = true,
  },
  [sym_source_file] = {
    .visible = true,
    .named = true,
  },
  [sym_regexp] = {
    .visible = true,
    .named = true,
  },
  [sym_while] = {
    .visible = true,
    .named = true,
  },
  [sym_expr_cmd] = {
    .visible = true,
    .named = true,
  },
  [sym_foreach] = {
    .visible = true,
    .named = true,
  },
  [sym_global] = {
    .visible = true,
    .named = true,
  },
  [sym_namespace] = {
    .visible = true,
    .named = true,
  },
  [sym_try] = {
    .visible = true,
    .named = true,
  },
  [sym_finally] = {
    .visible = true,
    .named = true,
  },
  [sym__command] = {
    .visible = false,
    .named = true,
  },
  [sym_command] = {
    .visible = true,
    .named = true,
  },
  [sym_word_list] = {
    .visible = true,
    .named = true,
  },
  [sym__word_simple] = {
    .visible = false,
    .named = true,
  },
  [sym__concat_word] = {
    .visible = false,
    .named = true,
  },
  [sym__ns_delim] = {
    .visible = false,
    .named = true,
  },
  [sym__id_immediate] = {
    .visible = true,
    .named = true,
  },
  [sym_id] = {
    .visible = true,
    .named = true,
  },
  [sym_array_index] = {
    .visible = true,
    .named = true,
  },
  [sym_variable_substitution] = {
    .visible = true,
    .named = true,
  },
  [sym_braced_word] = {
    .visible = true,
    .named = true,
  },
  [sym_braced_word_simple] = {
    .visible = true,
    .named = true,
  },
  [sym_set] = {
    .visible = true,
    .named = true,
  },
  [sym_procedure] = {
    .visible = true,
    .named = true,
  },
  [sym__argument_word] = {
    .visible = false,
    .named = true,
  },
  [sym_argument] = {
    .visible = true,
    .named = true,
  },
  [sym_arguments] = {
    .visible = true,
    .named = true,
  },
  [sym__expr_atom_no_brace] = {
    .visible = false,
    .named = true,
  },
  [sym__expr] = {
    .visible = false,
    .named = true,
  },
  [sym_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_unary_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_binop_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_ternary_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_elseif] = {
    .visible = true,
    .named = true,
  },
  [sym_else] = {
    .visible = true,
    .named = true,
  },
  [sym_conditional] = {
    .visible = true,
    .named = true,
  },
  [sym_catch] = {
    .visible = true,
    .named = true,
  },
  [sym_quoted_word] = {
    .visible = true,
    .named = true,
  },
  [sym_command_substitution] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_source_file_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_regexp_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_word_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__word_simple_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__concat_word_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__id_immediate_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_braced_word_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_braced_word_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_braced_word_simple_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_arguments_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_conditional_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_quoted_word_repeat1] = {
    .visible = false,
    .named = false,
  },
};

enum ts_field_identifiers {
  field_arguments = 1,
  field_body = 2,
  field_condition = 3,
  field_default = 4,
  field_name = 5,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_arguments] = "arguments",
  [field_body] = "body",
  [field_condition] = "condition",
  [field_default] = "default",
  [field_name] = "name",
};

static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 1},
  [2] = {.index = 1, .length = 2},
  [3] = {.index = 3, .length = 2},
  [4] = {.index = 5, .length = 3},
  [5] = {.index = 8, .length = 1},
  [6] = {.index = 9, .length = 3},
  [7] = {.index = 12, .length = 1},
  [8] = {.index = 13, .length = 4},
  [9] = {.index = 17, .length = 4},
  [10] = {.index = 21, .length = 2},
  [11] = {.index = 23, .length = 5},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_name, 0},
  [1] =
    {field_name, 0},
    {field_name, 1},
  [3] =
    {field_arguments, 1},
    {field_name, 0},
  [5] =
    {field_arguments, 2},
    {field_name, 0},
    {field_name, 1},
  [8] =
    {field_condition, 1},
  [9] =
    {field_arguments, 2},
    {field_body, 3},
    {field_name, 1},
  [12] =
    {field_name, 1},
  [13] =
    {field_arguments, 3},
    {field_body, 4},
    {field_name, 1},
    {field_name, 2},
  [17] =
    {field_arguments, 2},
    {field_body, 3},
    {field_body, 4},
    {field_name, 1},
  [21] =
    {field_default, 2},
    {field_name, 1},
  [23] =
    {field_arguments, 3},
    {field_body, 4},
    {field_body, 5},
    {field_name, 1},
    {field_name, 2},
};

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] = 4,
  [6] = 6,
  [7] = 6,
  [8] = 4,
  [9] = 4,
  [10] = 6,
  [11] = 6,
  [12] = 4,
  [13] = 6,
  [14] = 14,
  [15] = 15,
  [16] = 15,
  [17] = 15,
  [18] = 15,
  [19] = 15,
  [20] = 20,
  [21] = 20,
  [22] = 20,
  [23] = 20,
  [24] = 20,
  [25] = 20,
  [26] = 20,
  [27] = 20,
  [28] = 20,
  [29] = 20,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 34,
  [35] = 35,
  [36] = 36,
  [37] = 37,
  [38] = 38,
  [39] = 39,
  [40] = 40,
  [41] = 41,
  [42] = 42,
  [43] = 43,
  [44] = 44,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 51,
  [52] = 52,
  [53] = 53,
  [54] = 54,
  [55] = 55,
  [56] = 56,
  [57] = 57,
  [58] = 58,
  [59] = 59,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 66,
  [67] = 64,
  [68] = 66,
  [69] = 66,
  [70] = 64,
  [71] = 71,
  [72] = 72,
  [73] = 73,
  [74] = 74,
  [75] = 75,
  [76] = 76,
  [77] = 77,
  [78] = 78,
  [79] = 79,
  [80] = 80,
  [81] = 81,
  [82] = 82,
  [83] = 83,
  [84] = 84,
  [85] = 85,
  [86] = 82,
  [87] = 74,
  [88] = 88,
  [89] = 82,
  [90] = 74,
  [91] = 91,
  [92] = 92,
  [93] = 93,
  [94] = 94,
  [95] = 95,
  [96] = 96,
  [97] = 97,
  [98] = 98,
  [99] = 99,
  [100] = 100,
  [101] = 34,
  [102] = 30,
  [103] = 96,
  [104] = 32,
  [105] = 31,
  [106] = 33,
  [107] = 97,
  [108] = 108,
  [109] = 109,
  [110] = 110,
  [111] = 110,
  [112] = 98,
  [113] = 99,
  [114] = 100,
  [115] = 115,
  [116] = 116,
  [117] = 30,
  [118] = 118,
  [119] = 32,
  [120] = 120,
  [121] = 36,
  [122] = 34,
  [123] = 31,
  [124] = 37,
  [125] = 120,
  [126] = 126,
  [127] = 32,
  [128] = 128,
  [129] = 120,
  [130] = 126,
  [131] = 131,
  [132] = 120,
  [133] = 126,
  [134] = 134,
  [135] = 33,
  [136] = 136,
  [137] = 120,
  [138] = 126,
  [139] = 139,
  [140] = 140,
  [141] = 35,
  [142] = 142,
  [143] = 143,
  [144] = 144,
  [145] = 126,
  [146] = 146,
  [147] = 147,
  [148] = 148,
  [149] = 149,
  [150] = 148,
  [151] = 151,
  [152] = 152,
  [153] = 153,
  [154] = 154,
  [155] = 155,
  [156] = 156,
  [157] = 153,
  [158] = 158,
  [159] = 159,
  [160] = 160,
  [161] = 161,
  [162] = 162,
  [163] = 163,
  [164] = 159,
  [165] = 108,
  [166] = 115,
  [167] = 167,
  [168] = 160,
  [169] = 147,
  [170] = 170,
  [171] = 154,
  [172] = 109,
  [173] = 34,
  [174] = 174,
  [175] = 34,
  [176] = 33,
  [177] = 30,
  [178] = 33,
  [179] = 30,
  [180] = 31,
  [181] = 181,
  [182] = 182,
  [183] = 32,
  [184] = 156,
  [185] = 185,
  [186] = 167,
  [187] = 31,
  [188] = 188,
  [189] = 181,
  [190] = 155,
  [191] = 161,
  [192] = 32,
  [193] = 174,
  [194] = 162,
  [195] = 195,
  [196] = 163,
  [197] = 182,
  [198] = 195,
  [199] = 149,
  [200] = 200,
  [201] = 201,
  [202] = 202,
  [203] = 203,
  [204] = 204,
  [205] = 136,
  [206] = 109,
  [207] = 116,
  [208] = 208,
  [209] = 209,
  [210] = 35,
  [211] = 134,
  [212] = 212,
  [213] = 118,
  [214] = 131,
  [215] = 42,
  [216] = 216,
  [217] = 139,
  [218] = 140,
  [219] = 144,
  [220] = 36,
  [221] = 44,
  [222] = 37,
  [223] = 128,
  [224] = 224,
  [225] = 34,
  [226] = 33,
  [227] = 30,
  [228] = 36,
  [229] = 31,
  [230] = 142,
  [231] = 32,
  [232] = 212,
  [233] = 41,
  [234] = 234,
  [235] = 200,
  [236] = 34,
  [237] = 33,
  [238] = 30,
  [239] = 32,
  [240] = 200,
  [241] = 32,
  [242] = 242,
  [243] = 243,
  [244] = 244,
  [245] = 245,
  [246] = 246,
  [247] = 247,
  [248] = 242,
  [249] = 208,
  [250] = 250,
  [251] = 250,
  [252] = 209,
  [253] = 243,
  [254] = 245,
  [255] = 255,
  [256] = 234,
  [257] = 201,
  [258] = 255,
  [259] = 202,
  [260] = 203,
  [261] = 204,
  [262] = 262,
  [263] = 39,
  [264] = 246,
  [265] = 244,
  [266] = 247,
  [267] = 200,
  [268] = 43,
  [269] = 224,
  [270] = 200,
  [271] = 200,
  [272] = 200,
  [273] = 200,
  [274] = 200,
  [275] = 200,
  [276] = 38,
  [277] = 200,
  [278] = 200,
  [279] = 31,
  [280] = 280,
  [281] = 37,
  [282] = 36,
  [283] = 142,
  [284] = 35,
  [285] = 285,
  [286] = 37,
  [287] = 36,
  [288] = 285,
  [289] = 289,
  [290] = 170,
  [291] = 152,
  [292] = 158,
  [293] = 285,
  [294] = 285,
  [295] = 295,
  [296] = 151,
  [297] = 188,
  [298] = 146,
  [299] = 285,
  [300] = 185,
  [301] = 35,
  [302] = 302,
  [303] = 303,
  [304] = 216,
  [305] = 170,
  [306] = 35,
  [307] = 31,
  [308] = 188,
  [309] = 42,
  [310] = 43,
  [311] = 37,
  [312] = 39,
  [313] = 32,
  [314] = 314,
  [315] = 44,
  [316] = 146,
  [317] = 41,
  [318] = 318,
  [319] = 36,
  [320] = 38,
  [321] = 152,
  [322] = 158,
  [323] = 34,
  [324] = 33,
  [325] = 30,
  [326] = 318,
  [327] = 327,
  [328] = 327,
  [329] = 36,
  [330] = 36,
  [331] = 262,
  [332] = 109,
  [333] = 333,
  [334] = 39,
  [335] = 333,
  [336] = 314,
  [337] = 302,
  [338] = 38,
  [339] = 339,
  [340] = 340,
  [341] = 142,
  [342] = 342,
  [343] = 43,
  [344] = 289,
  [345] = 44,
  [346] = 44,
  [347] = 339,
  [348] = 348,
  [349] = 349,
  [350] = 340,
  [351] = 38,
  [352] = 352,
  [353] = 52,
  [354] = 339,
  [355] = 280,
  [356] = 349,
  [357] = 340,
  [358] = 216,
  [359] = 39,
  [360] = 35,
  [361] = 339,
  [362] = 349,
  [363] = 340,
  [364] = 339,
  [365] = 53,
  [366] = 339,
  [367] = 349,
  [368] = 339,
  [369] = 349,
  [370] = 339,
  [371] = 349,
  [372] = 372,
  [373] = 262,
  [374] = 39,
  [375] = 339,
  [376] = 41,
  [377] = 295,
  [378] = 342,
  [379] = 340,
  [380] = 53,
  [381] = 349,
  [382] = 340,
  [383] = 303,
  [384] = 43,
  [385] = 385,
  [386] = 42,
  [387] = 387,
  [388] = 41,
  [389] = 349,
  [390] = 52,
  [391] = 42,
  [392] = 37,
  [393] = 349,
  [394] = 37,
  [395] = 170,
  [396] = 327,
  [397] = 397,
  [398] = 152,
  [399] = 158,
  [400] = 314,
  [401] = 188,
  [402] = 146,
  [403] = 32,
  [404] = 404,
  [405] = 34,
  [406] = 35,
  [407] = 33,
  [408] = 30,
  [409] = 409,
  [410] = 37,
  [411] = 31,
  [412] = 39,
  [413] = 35,
  [414] = 303,
  [415] = 32,
  [416] = 416,
  [417] = 36,
  [418] = 289,
  [419] = 302,
  [420] = 318,
  [421] = 421,
  [422] = 39,
  [423] = 41,
  [424] = 43,
  [425] = 42,
  [426] = 44,
  [427] = 38,
  [428] = 428,
  [429] = 34,
  [430] = 33,
  [431] = 30,
  [432] = 432,
  [433] = 40,
  [434] = 280,
  [435] = 31,
  [436] = 404,
  [437] = 109,
  [438] = 352,
  [439] = 428,
  [440] = 41,
  [441] = 43,
  [442] = 142,
  [443] = 44,
  [444] = 444,
  [445] = 445,
  [446] = 348,
  [447] = 39,
  [448] = 38,
  [449] = 262,
  [450] = 385,
  [451] = 397,
  [452] = 42,
  [453] = 216,
  [454] = 372,
  [455] = 455,
  [456] = 432,
  [457] = 36,
  [458] = 41,
  [459] = 38,
  [460] = 460,
  [461] = 461,
  [462] = 462,
  [463] = 463,
  [464] = 36,
  [465] = 463,
  [466] = 466,
  [467] = 467,
  [468] = 280,
  [469] = 469,
  [470] = 470,
  [471] = 43,
  [472] = 42,
  [473] = 461,
  [474] = 44,
  [475] = 463,
  [476] = 39,
  [477] = 466,
  [478] = 467,
  [479] = 461,
  [480] = 463,
  [481] = 318,
  [482] = 482,
  [483] = 467,
  [484] = 461,
  [485] = 327,
  [486] = 303,
  [487] = 463,
  [488] = 488,
  [489] = 467,
  [490] = 461,
  [491] = 109,
  [492] = 461,
  [493] = 493,
  [494] = 461,
  [495] = 302,
  [496] = 35,
  [497] = 461,
  [498] = 461,
  [499] = 461,
  [500] = 38,
  [501] = 289,
  [502] = 462,
  [503] = 43,
  [504] = 314,
  [505] = 467,
  [506] = 37,
  [507] = 461,
  [508] = 44,
  [509] = 39,
  [510] = 318,
  [511] = 289,
  [512] = 314,
  [513] = 327,
  [514] = 170,
  [515] = 280,
  [516] = 516,
  [517] = 303,
  [518] = 216,
  [519] = 445,
  [520] = 262,
  [521] = 444,
  [522] = 152,
  [523] = 158,
  [524] = 188,
  [525] = 52,
  [526] = 342,
  [527] = 516,
  [528] = 146,
  [529] = 53,
  [530] = 302,
  [531] = 531,
  [532] = 40,
  [533] = 533,
  [534] = 534,
  [535] = 535,
  [536] = 536,
  [537] = 537,
  [538] = 538,
  [539] = 539,
  [540] = 540,
  [541] = 541,
  [542] = 39,
  [543] = 543,
  [544] = 544,
  [545] = 545,
  [546] = 342,
  [547] = 547,
  [548] = 455,
  [549] = 549,
  [550] = 488,
  [551] = 409,
  [552] = 416,
  [553] = 470,
  [554] = 554,
  [555] = 555,
  [556] = 556,
  [557] = 557,
  [558] = 38,
  [559] = 559,
  [560] = 482,
  [561] = 493,
  [562] = 562,
  [563] = 563,
  [564] = 564,
  [565] = 41,
  [566] = 566,
  [567] = 555,
  [568] = 52,
  [569] = 569,
  [570] = 570,
  [571] = 571,
  [572] = 559,
  [573] = 43,
  [574] = 574,
  [575] = 42,
  [576] = 576,
  [577] = 577,
  [578] = 578,
  [579] = 579,
  [580] = 574,
  [581] = 44,
  [582] = 570,
  [583] = 583,
  [584] = 53,
  [585] = 585,
  [586] = 586,
  [587] = 587,
  [588] = 534,
  [589] = 589,
  [590] = 170,
  [591] = 152,
  [592] = 158,
  [593] = 188,
  [594] = 146,
  [595] = 595,
  [596] = 596,
  [597] = 597,
  [598] = 598,
  [599] = 599,
  [600] = 597,
  [601] = 601,
  [602] = 544,
  [603] = 603,
  [604] = 554,
  [605] = 586,
  [606] = 541,
  [607] = 601,
  [608] = 608,
  [609] = 608,
  [610] = 599,
  [611] = 597,
  [612] = 603,
  [613] = 613,
  [614] = 587,
  [615] = 601,
  [616] = 616,
  [617] = 608,
  [618] = 599,
  [619] = 597,
  [620] = 603,
  [621] = 599,
  [622] = 571,
  [623] = 601,
  [624] = 562,
  [625] = 608,
  [626] = 599,
  [627] = 531,
  [628] = 603,
  [629] = 601,
  [630] = 597,
  [631] = 601,
  [632] = 579,
  [633] = 608,
  [634] = 599,
  [635] = 597,
  [636] = 603,
  [637] = 545,
  [638] = 601,
  [639] = 608,
  [640] = 599,
  [641] = 597,
  [642] = 603,
  [643] = 643,
  [644] = 599,
  [645] = 603,
  [646] = 599,
  [647] = 603,
  [648] = 557,
  [649] = 599,
  [650] = 564,
  [651] = 597,
  [652] = 556,
  [653] = 653,
  [654] = 603,
  [655] = 583,
  [656] = 595,
  [657] = 608,
  [658] = 653,
  [659] = 659,
  [660] = 608,
  [661] = 549,
  [662] = 409,
  [663] = 569,
  [664] = 601,
  [665] = 608,
  [666] = 535,
  [667] = 563,
  [668] = 653,
  [669] = 659,
  [670] = 576,
  [671] = 671,
  [672] = 653,
  [673] = 608,
  [674] = 674,
  [675] = 653,
  [676] = 416,
  [677] = 585,
  [678] = 653,
  [679] = 599,
  [680] = 601,
  [681] = 653,
  [682] = 597,
  [683] = 613,
  [684] = 653,
  [685] = 536,
  [686] = 603,
  [687] = 653,
  [688] = 589,
  [689] = 689,
  [690] = 653,
  [691] = 540,
  [692] = 547,
  [693] = 538,
  [694] = 694,
  [695] = 603,
  [696] = 599,
  [697] = 616,
  [698] = 689,
  [699] = 533,
  [700] = 598,
  [701] = 701,
  [702] = 537,
  [703] = 597,
  [704] = 601,
  [705] = 701,
  [706] = 643,
  [707] = 539,
  [708] = 616,
  [709] = 603,
};

static TSCharacterRange sym_simple_word_character_set_1[] = {
  {0, 0x08}, {0x0e, 0x1f}, {'#', '#'}, {'%', '\''}, {'*', ':'}, {'<', 'Z'}, {'^', 'z'}, {'|', '|'},
  {'~', 0x10ffff},
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(82);
      ADVANCE_MAP(
        '!', 120,
        '"', 172,
        '#', 88,
        '$', 102,
        '%', 128,
        '&', 152,
        '(', 100,
        ')', 101,
        '*', 125,
        '+', 118,
        '-', 116,
        '/', 124,
        ':', 165,
        ';', 87,
        '<', 135,
        '=', 180,
        '>', 133,
        '?', 163,
        'F', 195,
        '[', 177,
      );
      if (lookahead == '\\') SKIP(79);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '^') ADVANCE(155);
      if (lookahead == 'e') ADVANCE(186);
      if (lookahead == 'f') ADVANCE(185);
      if (lookahead == 'i') ADVANCE(189);
      if (lookahead == 'n') ADVANCE(182);
      if (lookahead == 'o') ADVANCE(190);
      if (lookahead == '{') ADVANCE(104);
      if (lookahead == '|') ADVANCE(156);
      if (lookahead == '}') ADVANCE(109);
      if (lookahead == '~') ADVANCE(119);
      if (lookahead == 'T' ||
          lookahead == 't') ADVANCE(198);
      if (lookahead == '0' ||
          lookahead == '1') ADVANCE(110);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(81);
      if (('2' <= lookahead && lookahead <= '9')) ADVANCE(110);
      if (lookahead != 0) ADVANCE(203);
      END_STATE();
    case 1:
      ADVANCE_MAP(
        '\n', 83,
        '"', 172,
        '#', 88,
        '$', 102,
        ';', 87,
        '[', 177,
        '\\', 2,
        '{', 104,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(1);
      if (lookahead != 0 &&
          (lookahead < ' ' || '$' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 2:
      if (lookahead == '\n') SKIP(1);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 3:
      if (lookahead == '\n') SKIP(39);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 4:
      if (lookahead == '\n') SKIP(37);
      END_STATE();
    case 5:
      if (lookahead == '\n') SKIP(37);
      if (lookahead == '\r') SKIP(4);
      END_STATE();
    case 6:
      if (lookahead == '\n') SKIP(38);
      END_STATE();
    case 7:
      if (lookahead == '\n') SKIP(38);
      if (lookahead == '\r') SKIP(6);
      END_STATE();
    case 8:
      if (lookahead == '\n') SKIP(34);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 9:
      if (lookahead == '\n') SKIP(30);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 10:
      if (lookahead == '\n') SKIP(47);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 11:
      if (lookahead == '\n') SKIP(48);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 12:
      if (lookahead == '\n') SKIP(46);
      END_STATE();
    case 13:
      if (lookahead == '\n') SKIP(46);
      if (lookahead == '\r') SKIP(12);
      END_STATE();
    case 14:
      if (lookahead == '\n') ADVANCE(84);
      if (lookahead == '(') ADVANCE(100);
      if (lookahead == ':') ADVANCE(54);
      if (lookahead == ';') ADVANCE(87);
      if (lookahead == '\\') SKIP(17);
      if (lookahead == 'e') ADVANCE(67);
      if (lookahead == 'f') ADVANCE(66);
      if (lookahead == 'o') ADVANCE(72);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(15);
      END_STATE();
    case 15:
      if (lookahead == '\n') ADVANCE(84);
      if (lookahead == ';') ADVANCE(87);
      if (lookahead == '\\') SKIP(17);
      if (lookahead == 'e') ADVANCE(67);
      if (lookahead == 'f') ADVANCE(66);
      if (lookahead == 'o') ADVANCE(72);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(15);
      END_STATE();
    case 16:
      if (lookahead == '\n') SKIP(15);
      END_STATE();
    case 17:
      if (lookahead == '\n') SKIP(15);
      if (lookahead == '\r') SKIP(16);
      END_STATE();
    case 18:
      if (lookahead == '\n') SKIP(49);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 19:
      if (lookahead == '\n') SKIP(60);
      END_STATE();
    case 20:
      if (lookahead == '\n') SKIP(60);
      if (lookahead == '\r') SKIP(19);
      END_STATE();
    case 21:
      if (lookahead == '\n') SKIP(51);
      END_STATE();
    case 22:
      if (lookahead == '\n') SKIP(51);
      if (lookahead == '\r') SKIP(21);
      END_STATE();
    case 23:
      if (lookahead == '\n') SKIP(61);
      END_STATE();
    case 24:
      if (lookahead == '\n') SKIP(61);
      if (lookahead == '\r') SKIP(23);
      END_STATE();
    case 25:
      if (lookahead == '\n') SKIP(52);
      END_STATE();
    case 26:
      if (lookahead == '\n') SKIP(52);
      if (lookahead == '\r') SKIP(25);
      END_STATE();
    case 27:
      if (lookahead == '\n') SKIP(33);
      if (lookahead == '\r') ADVANCE(173);
      if (lookahead != 0) ADVANCE(173);
      END_STATE();
    case 28:
      ADVANCE_MAP(
        '\n', 85,
        '"', 172,
        '$', 102,
        '(', 100,
        ':', 179,
        ';', 87,
        '[', 177,
        '\\', 9,
        '{', 104,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(30);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 29:
      ADVANCE_MAP(
        '\n', 85,
        '"', 172,
        '$', 102,
        '(', 100,
        ';', 87,
        '[', 177,
        '\\', 9,
        '{', 104,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(30);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 30:
      ADVANCE_MAP(
        '\n', 85,
        '"', 172,
        '$', 102,
        ';', 87,
        '[', 177,
        '\\', 9,
        '{', 104,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(30);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 31:
      ADVANCE_MAP(
        '\n', 86,
        '"', 172,
        '$', 102,
        '(', 100,
        ':', 179,
        ';', 87,
        '[', 177,
        '\\', 27,
        '{', 103,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(33);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 32:
      ADVANCE_MAP(
        '\n', 86,
        '"', 172,
        '$', 102,
        '(', 100,
        ';', 87,
        '[', 177,
        '\\', 27,
        '{', 103,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(33);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 33:
      ADVANCE_MAP(
        '\n', 86,
        '"', 172,
        '$', 102,
        ';', 87,
        '[', 177,
        '\\', 27,
        '{', 103,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(33);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 34:
      ADVANCE_MAP(
        '!', 120,
        '"', 172,
        '$', 102,
        '(', 114,
        '+', 118,
        '-', 116,
        '[', 177,
        '\\', 8,
        '{', 103,
        '~', 119,
        'F', 195,
        'f', 195,
        'T', 198,
        't', 198,
        '0', 110,
        '1', 110,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(34);
      if (('2' <= lookahead && lookahead <= '9')) ADVANCE(110);
      if (lookahead != 0 &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead) &&
          lookahead != '}' &&
          lookahead != '~') ADVANCE(203);
      END_STATE();
    case 35:
      ADVANCE_MAP(
        '!', 57,
        '%', 127,
        '&', 153,
        '(', 100,
        ')', 101,
        '*', 126,
        '+', 117,
        '-', 115,
        '/', 123,
        ':', 166,
        '<', 136,
        '=', 58,
        '>', 134,
        '?', 162,
      );
      if (lookahead == '\\') SKIP(5);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '^') ADVANCE(154);
      if (lookahead == 'e') ADVANCE(68);
      if (lookahead == 'f') ADVANCE(66);
      if (lookahead == 'i') ADVANCE(71);
      if (lookahead == 'n') ADVANCE(63);
      if (lookahead == 'o') ADVANCE(72);
      if (lookahead == '{') ADVANCE(103);
      if (lookahead == '|') ADVANCE(157);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(37);
      END_STATE();
    case 36:
      ADVANCE_MAP(
        '!', 57,
        '%', 127,
        '&', 153,
        '(', 100,
        ')', 101,
        '*', 126,
        '+', 117,
        '-', 115,
        '/', 123,
        ':', 164,
        '<', 136,
        '=', 58,
        '>', 134,
        '?', 162,
      );
      if (lookahead == '\\') SKIP(7);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '^') ADVANCE(154);
      if (lookahead == 'e') ADVANCE(74);
      if (lookahead == 'i') ADVANCE(71);
      if (lookahead == 'n') ADVANCE(63);
      if (lookahead == '|') ADVANCE(157);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(38);
      END_STATE();
    case 37:
      ADVANCE_MAP(
        '!', 57,
        '%', 127,
        '&', 153,
        ')', 101,
        '*', 126,
        '+', 117,
        '-', 115,
        '/', 123,
        ':', 164,
        '<', 136,
        '=', 58,
        '>', 134,
        '?', 162,
      );
      if (lookahead == '\\') SKIP(5);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '^') ADVANCE(154);
      if (lookahead == 'e') ADVANCE(68);
      if (lookahead == 'f') ADVANCE(66);
      if (lookahead == 'i') ADVANCE(71);
      if (lookahead == 'n') ADVANCE(63);
      if (lookahead == 'o') ADVANCE(72);
      if (lookahead == '{') ADVANCE(103);
      if (lookahead == '|') ADVANCE(157);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(37);
      END_STATE();
    case 38:
      ADVANCE_MAP(
        '!', 57,
        '%', 127,
        '&', 153,
        ')', 101,
        '*', 126,
        '+', 117,
        '-', 115,
        '/', 123,
        ':', 164,
        '<', 136,
        '=', 58,
        '>', 134,
        '?', 162,
      );
      if (lookahead == '\\') SKIP(7);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '^') ADVANCE(154);
      if (lookahead == 'e') ADVANCE(74);
      if (lookahead == 'i') ADVANCE(71);
      if (lookahead == 'n') ADVANCE(63);
      if (lookahead == '|') ADVANCE(157);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(38);
      END_STATE();
    case 39:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '#') ADVANCE(88);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(3);
      if (lookahead == '{') ADVANCE(104);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(39);
      if (lookahead != 0 &&
          (lookahead < ' ' || '$' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 40:
      ADVANCE_MAP(
        '"', 172,
        '$', 102,
        '(', 100,
        ':', 179,
        '[', 177,
        '\\', 10,
        ']', 178,
        '{', 104,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(47);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ':' &&
          lookahead != ';' &&
          lookahead != '}') ADVANCE(203);
      END_STATE();
    case 41:
      ADVANCE_MAP(
        '"', 172,
        '$', 102,
        '(', 100,
        ':', 179,
        '[', 177,
        '\\', 11,
        ']', 178,
        '{', 103,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(48);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ':' &&
          lookahead != ';') ADVANCE(203);
      END_STATE();
    case 42:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '(') ADVANCE(100);
      if (lookahead == ':') ADVANCE(175);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(18);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(174);
      if (lookahead != 0 &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(176);
      END_STATE();
    case 43:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '(') ADVANCE(100);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(10);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '{') ADVANCE(104);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(47);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          lookahead != '}') ADVANCE(203);
      END_STATE();
    case 44:
      ADVANCE_MAP(
        '"', 172,
        '$', 102,
        '(', 100,
        '[', 177,
        '\\', 11,
        ']', 178,
        '{', 103,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(48);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';') ADVANCE(203);
      END_STATE();
    case 45:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '(') ADVANCE(100);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(18);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(174);
      if (lookahead != 0 &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(176);
      END_STATE();
    case 46:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '(') ADVANCE(114);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') SKIP(13);
      if (lookahead == '{') ADVANCE(103);
      if (lookahead == 'F' ||
          lookahead == 'f') ADVANCE(195);
      if (lookahead == 'T' ||
          lookahead == 't') ADVANCE(198);
      if (lookahead == '0' ||
          lookahead == '1') ADVANCE(110);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(46);
      if (('2' <= lookahead && lookahead <= '9')) ADVANCE(110);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead) &&
          lookahead != '}') ADVANCE(203);
      END_STATE();
    case 47:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(10);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '{') ADVANCE(104);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(47);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          lookahead != '}') ADVANCE(203);
      END_STATE();
    case 48:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(11);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '{') ADVANCE(103);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(48);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';') ADVANCE(203);
      END_STATE();
    case 49:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(18);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(174);
      if (lookahead != 0 &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(176);
      END_STATE();
    case 50:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '(') ADVANCE(100);
      if (lookahead == ')') ADVANCE(101);
      if (lookahead == '\\') SKIP(22);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '{') ADVANCE(103);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(51);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '$' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 51:
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == ')') ADVANCE(101);
      if (lookahead == '\\') SKIP(22);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '{') ADVANCE(103);
      if (lookahead == '}') ADVANCE(109);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(51);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '$' &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 52:
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == ':') ADVANCE(56);
      if (lookahead == '\\') SKIP(26);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(52);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(98);
      END_STATE();
    case 53:
      if (lookahead == '(') ADVANCE(100);
      if (lookahead == ':') ADVANCE(179);
      if (lookahead == '\\') SKIP(20);
      if (lookahead == '{') ADVANCE(103);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(60);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '$' &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ':' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead) &&
          lookahead != '}') ADVANCE(203);
      END_STATE();
    case 54:
      if (lookahead == ':') ADVANCE(95);
      END_STATE();
    case 55:
      if (lookahead == ':') ADVANCE(54);
      if (lookahead == '\\') SKIP(24);
      if (lookahead == '{') ADVANCE(103);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(61);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(97);
      END_STATE();
    case 56:
      if (lookahead == ':') ADVANCE(99);
      END_STATE();
    case 57:
      if (lookahead == '=') ADVANCE(143);
      END_STATE();
    case 58:
      if (lookahead == '=') ADVANCE(141);
      END_STATE();
    case 59:
      if (lookahead == '\\') ADVANCE(105);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(107);
      if (lookahead != 0 &&
          lookahead != '}') ADVANCE(108);
      END_STATE();
    case 60:
      if (lookahead == '\\') SKIP(20);
      if (lookahead == '{') ADVANCE(103);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(60);
      if (lookahead != 0 &&
          (lookahead < ' ' || '"' < lookahead) &&
          lookahead != '$' &&
          lookahead != '(' &&
          lookahead != ')' &&
          lookahead != ';' &&
          (lookahead < '[' || ']' < lookahead) &&
          lookahead != '}') ADVANCE(203);
      END_STATE();
    case 61:
      if (lookahead == '\\') SKIP(24);
      if (lookahead == '{') ADVANCE(103);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(61);
      END_STATE();
    case 62:
      if (lookahead == 'a') ADVANCE(70);
      END_STATE();
    case 63:
      if (lookahead == 'e') ADVANCE(146);
      if (lookahead == 'i') ADVANCE(150);
      END_STATE();
    case 64:
      if (lookahead == 'e') ADVANCE(171);
      END_STATE();
    case 65:
      if (lookahead == 'f') ADVANCE(168);
      END_STATE();
    case 66:
      if (lookahead == 'i') ADVANCE(73);
      END_STATE();
    case 67:
      if (lookahead == 'l') ADVANCE(75);
      END_STATE();
    case 68:
      if (lookahead == 'l') ADVANCE(75);
      if (lookahead == 'q') ADVANCE(144);
      END_STATE();
    case 69:
      if (lookahead == 'l') ADVANCE(76);
      END_STATE();
    case 70:
      if (lookahead == 'l') ADVANCE(69);
      END_STATE();
    case 71:
      if (lookahead == 'n') ADVANCE(148);
      END_STATE();
    case 72:
      if (lookahead == 'n') ADVANCE(90);
      END_STATE();
    case 73:
      if (lookahead == 'n') ADVANCE(62);
      END_STATE();
    case 74:
      if (lookahead == 'q') ADVANCE(144);
      END_STATE();
    case 75:
      if (lookahead == 's') ADVANCE(64);
      END_STATE();
    case 76:
      if (lookahead == 'y') ADVANCE(92);
      END_STATE();
    case 77:
      if (lookahead == '}') ADVANCE(94);
      END_STATE();
    case 78:
      if (eof) ADVANCE(82);
      if (lookahead == '\n') SKIP(81);
      END_STATE();
    case 79:
      if (eof) ADVANCE(82);
      if (lookahead == '\n') SKIP(81);
      if (lookahead == '\r') SKIP(78);
      END_STATE();
    case 80:
      if (eof) ADVANCE(82);
      ADVANCE_MAP(
        '\n', 83,
        '"', 172,
        '#', 88,
        '$', 102,
        ';', 87,
        '[', 177,
        '\\', 2,
        '{', 104,
        '}', 109,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(80);
      if (lookahead != 0 &&
          (lookahead < ' ' || '$' < lookahead) &&
          lookahead != '(' &&
          lookahead != ')' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(203);
      END_STATE();
    case 81:
      if (eof) ADVANCE(82);
      ADVANCE_MAP(
        '!', 120,
        '"', 172,
        '#', 88,
        '$', 102,
        '%', 128,
        '&', 152,
        '(', 114,
        ')', 101,
        '*', 125,
        '+', 118,
        '-', 116,
        '/', 124,
        ':', 167,
        ';', 87,
        '<', 135,
        '=', 180,
        '>', 133,
        '?', 163,
        'F', 195,
        '[', 177,
      );
      if (lookahead == '\\') SKIP(79);
      if (lookahead == ']') ADVANCE(178);
      if (lookahead == '^') ADVANCE(155);
      if (lookahead == 'e') ADVANCE(186);
      if (lookahead == 'f') ADVANCE(185);
      if (lookahead == 'i') ADVANCE(189);
      if (lookahead == 'n') ADVANCE(182);
      if (lookahead == 'o') ADVANCE(190);
      if (lookahead == '{') ADVANCE(104);
      if (lookahead == '|') ADVANCE(156);
      if (lookahead == '}') ADVANCE(109);
      if (lookahead == '~') ADVANCE(119);
      if (lookahead == 'T' ||
          lookahead == 't') ADVANCE(198);
      if (lookahead == '0' ||
          lookahead == '1') ADVANCE(110);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(81);
      if (('2' <= lookahead && lookahead <= '9')) ADVANCE(110);
      if (lookahead != 0) ADVANCE(203);
      END_STATE();
    case 82:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 83:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(83);
      if (lookahead == '\\') ADVANCE(2);
      END_STATE();
    case 84:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(84);
      END_STATE();
    case 85:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(85);
      if (lookahead == '\\') ADVANCE(9);
      END_STATE();
    case 86:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(86);
      if (lookahead == '\\') ADVANCE(27);
      END_STATE();
    case 87:
      ACCEPT_TOKEN(anon_sym_SEMI);
      END_STATE();
    case 88:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\t' ||
          (0x0b <= lookahead && lookahead <= '\r') ||
          (' ' <= lookahead && lookahead <= '"') ||
          lookahead == '$' ||
          lookahead == '(' ||
          lookahead == ')' ||
          lookahead == ';' ||
          ('[' <= lookahead && lookahead <= ']') ||
          lookahead == '{' ||
          lookahead == '}') ADVANCE(89);
      if (lookahead != 0 &&
          (lookahead < '\t' || '\r' < lookahead)) ADVANCE(88);
      END_STATE();
    case 89:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(89);
      END_STATE();
    case 90:
      ACCEPT_TOKEN(anon_sym_on);
      END_STATE();
    case 91:
      ACCEPT_TOKEN(anon_sym_on);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 92:
      ACCEPT_TOKEN(anon_sym_finally);
      END_STATE();
    case 93:
      ACCEPT_TOKEN(anon_sym_finally);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 94:
      ACCEPT_TOKEN(sym_unpack);
      END_STATE();
    case 95:
      ACCEPT_TOKEN(anon_sym_COLON_COLON);
      END_STATE();
    case 96:
      ACCEPT_TOKEN(anon_sym_COLON_COLON);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 97:
      ACCEPT_TOKEN(sym__ident_imm);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(97);
      END_STATE();
    case 98:
      ACCEPT_TOKEN(sym__ident);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(98);
      END_STATE();
    case 99:
      ACCEPT_TOKEN(anon_sym_COLON_COLON2);
      END_STATE();
    case 100:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 101:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 102:
      ACCEPT_TOKEN(anon_sym_DOLLAR);
      END_STATE();
    case 103:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 104:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      if (lookahead == '*') ADVANCE(77);
      END_STATE();
    case 105:
      ACCEPT_TOKEN(aux_sym_variable_substitution_token1);
      if (lookahead == '\n') ADVANCE(107);
      if (lookahead == '\r') ADVANCE(106);
      if (lookahead != 0 &&
          lookahead != '}') ADVANCE(108);
      END_STATE();
    case 106:
      ACCEPT_TOKEN(aux_sym_variable_substitution_token1);
      if (lookahead == '\n') ADVANCE(107);
      if (lookahead != 0 &&
          lookahead != '}') ADVANCE(108);
      END_STATE();
    case 107:
      ACCEPT_TOKEN(aux_sym_variable_substitution_token1);
      if (lookahead == '\\') ADVANCE(105);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(107);
      if (lookahead != 0 &&
          lookahead != '}') ADVANCE(108);
      END_STATE();
    case 108:
      ACCEPT_TOKEN(aux_sym_variable_substitution_token1);
      if (lookahead != 0 &&
          lookahead != '}') ADVANCE(108);
      END_STATE();
    case 109:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 110:
      ACCEPT_TOKEN(sym__number);
      if (lookahead == '.') ADVANCE(201);
      if (lookahead == 'E' ||
          lookahead == 'e') ADVANCE(194);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(110);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 111:
      ACCEPT_TOKEN(sym__number);
      if (lookahead == 'E' ||
          lookahead == 'e') ADVANCE(194);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(111);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 112:
      ACCEPT_TOKEN(sym__number);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(112);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 113:
      ACCEPT_TOKEN(sym__boolean);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 114:
      ACCEPT_TOKEN(anon_sym_LPAREN2);
      END_STATE();
    case 115:
      ACCEPT_TOKEN(anon_sym_DASH);
      END_STATE();
    case 116:
      ACCEPT_TOKEN(anon_sym_DASH);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 117:
      ACCEPT_TOKEN(anon_sym_PLUS);
      END_STATE();
    case 118:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 119:
      ACCEPT_TOKEN(anon_sym_TILDE);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 120:
      ACCEPT_TOKEN(anon_sym_BANG);
      END_STATE();
    case 121:
      ACCEPT_TOKEN(anon_sym_STAR_STAR);
      END_STATE();
    case 122:
      ACCEPT_TOKEN(anon_sym_STAR_STAR);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 123:
      ACCEPT_TOKEN(anon_sym_SLASH);
      END_STATE();
    case 124:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 125:
      ACCEPT_TOKEN(anon_sym_STAR);
      if (lookahead == '*') ADVANCE(122);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 126:
      ACCEPT_TOKEN(anon_sym_STAR);
      if (lookahead == '*') ADVANCE(121);
      END_STATE();
    case 127:
      ACCEPT_TOKEN(anon_sym_PERCENT);
      END_STATE();
    case 128:
      ACCEPT_TOKEN(anon_sym_PERCENT);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 129:
      ACCEPT_TOKEN(anon_sym_LT_LT);
      END_STATE();
    case 130:
      ACCEPT_TOKEN(anon_sym_LT_LT);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 131:
      ACCEPT_TOKEN(anon_sym_GT_GT);
      END_STATE();
    case 132:
      ACCEPT_TOKEN(anon_sym_GT_GT);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 133:
      ACCEPT_TOKEN(anon_sym_GT);
      if (lookahead == '=') ADVANCE(138);
      if (lookahead == '>') ADVANCE(132);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 134:
      ACCEPT_TOKEN(anon_sym_GT);
      if (lookahead == '=') ADVANCE(137);
      if (lookahead == '>') ADVANCE(131);
      END_STATE();
    case 135:
      ACCEPT_TOKEN(anon_sym_LT);
      if (lookahead == '<') ADVANCE(130);
      if (lookahead == '=') ADVANCE(140);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 136:
      ACCEPT_TOKEN(anon_sym_LT);
      if (lookahead == '<') ADVANCE(129);
      if (lookahead == '=') ADVANCE(139);
      END_STATE();
    case 137:
      ACCEPT_TOKEN(anon_sym_GT_EQ);
      END_STATE();
    case 138:
      ACCEPT_TOKEN(anon_sym_GT_EQ);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 139:
      ACCEPT_TOKEN(anon_sym_LT_EQ);
      END_STATE();
    case 140:
      ACCEPT_TOKEN(anon_sym_LT_EQ);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 141:
      ACCEPT_TOKEN(anon_sym_EQ_EQ);
      END_STATE();
    case 142:
      ACCEPT_TOKEN(anon_sym_EQ_EQ);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 143:
      ACCEPT_TOKEN(anon_sym_BANG_EQ);
      END_STATE();
    case 144:
      ACCEPT_TOKEN(anon_sym_eq);
      END_STATE();
    case 145:
      ACCEPT_TOKEN(anon_sym_eq);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 146:
      ACCEPT_TOKEN(anon_sym_ne);
      END_STATE();
    case 147:
      ACCEPT_TOKEN(anon_sym_ne);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 148:
      ACCEPT_TOKEN(anon_sym_in);
      END_STATE();
    case 149:
      ACCEPT_TOKEN(anon_sym_in);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 150:
      ACCEPT_TOKEN(anon_sym_ni);
      END_STATE();
    case 151:
      ACCEPT_TOKEN(anon_sym_ni);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 152:
      ACCEPT_TOKEN(anon_sym_AMP);
      if (lookahead == '&') ADVANCE(159);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 153:
      ACCEPT_TOKEN(anon_sym_AMP);
      if (lookahead == '&') ADVANCE(158);
      END_STATE();
    case 154:
      ACCEPT_TOKEN(anon_sym_CARET);
      END_STATE();
    case 155:
      ACCEPT_TOKEN(anon_sym_CARET);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 156:
      ACCEPT_TOKEN(anon_sym_PIPE);
      if (lookahead == '|') ADVANCE(161);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 157:
      ACCEPT_TOKEN(anon_sym_PIPE);
      if (lookahead == '|') ADVANCE(160);
      END_STATE();
    case 158:
      ACCEPT_TOKEN(anon_sym_AMP_AMP);
      END_STATE();
    case 159:
      ACCEPT_TOKEN(anon_sym_AMP_AMP);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 160:
      ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
      END_STATE();
    case 161:
      ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 162:
      ACCEPT_TOKEN(anon_sym_QMARK);
      END_STATE();
    case 163:
      ACCEPT_TOKEN(anon_sym_QMARK);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 164:
      ACCEPT_TOKEN(anon_sym_COLON);
      END_STATE();
    case 165:
      ACCEPT_TOKEN(anon_sym_COLON);
      if (lookahead == ':') ADVANCE(96);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 166:
      ACCEPT_TOKEN(anon_sym_COLON);
      if (lookahead == ':') ADVANCE(95);
      END_STATE();
    case 167:
      ACCEPT_TOKEN(anon_sym_COLON);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 168:
      ACCEPT_TOKEN(anon_sym_elseif);
      END_STATE();
    case 169:
      ACCEPT_TOKEN(anon_sym_elseif);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 170:
      ACCEPT_TOKEN(anon_sym_else);
      if (lookahead == 'i') ADVANCE(184);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 171:
      ACCEPT_TOKEN(anon_sym_else);
      if (lookahead == 'i') ADVANCE(65);
      END_STATE();
    case 172:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      END_STATE();
    case 173:
      ACCEPT_TOKEN(sym_escaped_character);
      END_STATE();
    case 174:
      ACCEPT_TOKEN(sym__quoted_word_content);
      if (lookahead == '"') ADVANCE(172);
      if (lookahead == '$') ADVANCE(102);
      if (lookahead == '[') ADVANCE(177);
      if (lookahead == '\\') ADVANCE(18);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(174);
      if (lookahead != 0 &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(176);
      END_STATE();
    case 175:
      ACCEPT_TOKEN(sym__quoted_word_content);
      if (lookahead == ':') ADVANCE(95);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(176);
      END_STATE();
    case 176:
      ACCEPT_TOKEN(sym__quoted_word_content);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '[' || ']' < lookahead)) ADVANCE(176);
      END_STATE();
    case 177:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 178:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 179:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == ':') ADVANCE(96);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 180:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == '=') ADVANCE(142);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 181:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'a') ADVANCE(188);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 182:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'e') ADVANCE(147);
      if (lookahead == 'i') ADVANCE(151);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 183:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'e') ADVANCE(170);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 184:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'f') ADVANCE(169);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 185:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'i') ADVANCE(191);
      if (lookahead == 'A' ||
          lookahead == 'a') ADVANCE(197);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 186:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'l') ADVANCE(192);
      if (lookahead == 'q') ADVANCE(145);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 187:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'l') ADVANCE(193);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 188:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'l') ADVANCE(187);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 189:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'n') ADVANCE(149);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 190:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'n') ADVANCE(91);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 191:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'n') ADVANCE(181);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 192:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 's') ADVANCE(183);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 193:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'y') ADVANCE(93);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 194:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(202);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(112);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 195:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'A' ||
          lookahead == 'a') ADVANCE(197);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 196:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'E' ||
          lookahead == 'e') ADVANCE(113);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 197:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'L' ||
          lookahead == 'l') ADVANCE(199);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 198:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'R' ||
          lookahead == 'r') ADVANCE(200);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 199:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'S' ||
          lookahead == 's') ADVANCE(196);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 200:
      ACCEPT_TOKEN(sym_simple_word);
      if (lookahead == 'U' ||
          lookahead == 'u') ADVANCE(196);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 201:
      ACCEPT_TOKEN(sym_simple_word);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(111);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 202:
      ACCEPT_TOKEN(sym_simple_word);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(112);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    case 203:
      ACCEPT_TOKEN(sym_simple_word);
      if ((!eof && set_contains(sym_simple_word_character_set_1, 9, lookahead))) ADVANCE(203);
      END_STATE();
    default:
      return false;
  }
}

static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (lookahead == '\\') SKIP(1);
      if (lookahead == 'c') ADVANCE(2);
      if (lookahead == 'e') ADVANCE(3);
      if (lookahead == 'f') ADVANCE(4);
      if (lookahead == 'g') ADVANCE(5);
      if (lookahead == 'i') ADVANCE(6);
      if (lookahead == 'n') ADVANCE(7);
      if (lookahead == 'p') ADVANCE(8);
      if (lookahead == 'r') ADVANCE(9);
      if (lookahead == 's') ADVANCE(10);
      if (lookahead == 't') ADVANCE(11);
      if (lookahead == 'w') ADVANCE(12);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(0);
      END_STATE();
    case 1:
      if (lookahead == '\n') SKIP(0);
      if (lookahead == '\r') SKIP(13);
      END_STATE();
    case 2:
      if (lookahead == 'a') ADVANCE(14);
      END_STATE();
    case 3:
      if (lookahead == 'r') ADVANCE(15);
      if (lookahead == 'x') ADVANCE(16);
      END_STATE();
    case 4:
      if (lookahead == 'o') ADVANCE(17);
      END_STATE();
    case 5:
      if (lookahead == 'l') ADVANCE(18);
      END_STATE();
    case 6:
      if (lookahead == 'f') ADVANCE(19);
      END_STATE();
    case 7:
      if (lookahead == 'a') ADVANCE(20);
      END_STATE();
    case 8:
      if (lookahead == 'r') ADVANCE(21);
      END_STATE();
    case 9:
      if (lookahead == 'e') ADVANCE(22);
      END_STATE();
    case 10:
      if (lookahead == 'e') ADVANCE(23);
      END_STATE();
    case 11:
      if (lookahead == 'r') ADVANCE(24);
      END_STATE();
    case 12:
      if (lookahead == 'h') ADVANCE(25);
      END_STATE();
    case 13:
      if (lookahead == '\n') SKIP(0);
      END_STATE();
    case 14:
      if (lookahead == 't') ADVANCE(26);
      END_STATE();
    case 15:
      if (lookahead == 'r') ADVANCE(27);
      END_STATE();
    case 16:
      if (lookahead == 'p') ADVANCE(28);
      END_STATE();
    case 17:
      if (lookahead == 'r') ADVANCE(29);
      END_STATE();
    case 18:
      if (lookahead == 'o') ADVANCE(30);
      END_STATE();
    case 19:
      ACCEPT_TOKEN(anon_sym_if);
      END_STATE();
    case 20:
      if (lookahead == 'm') ADVANCE(31);
      END_STATE();
    case 21:
      if (lookahead == 'o') ADVANCE(32);
      END_STATE();
    case 22:
      if (lookahead == 'g') ADVANCE(33);
      END_STATE();
    case 23:
      if (lookahead == 't') ADVANCE(34);
      END_STATE();
    case 24:
      if (lookahead == 'y') ADVANCE(35);
      END_STATE();
    case 25:
      if (lookahead == 'i') ADVANCE(36);
      END_STATE();
    case 26:
      if (lookahead == 'c') ADVANCE(37);
      END_STATE();
    case 27:
      if (lookahead == 'o') ADVANCE(38);
      END_STATE();
    case 28:
      if (lookahead == 'r') ADVANCE(39);
      END_STATE();
    case 29:
      if (lookahead == 'e') ADVANCE(40);
      END_STATE();
    case 30:
      if (lookahead == 'b') ADVANCE(41);
      END_STATE();
    case 31:
      if (lookahead == 'e') ADVANCE(42);
      END_STATE();
    case 32:
      if (lookahead == 'c') ADVANCE(43);
      END_STATE();
    case 33:
      if (lookahead == 'e') ADVANCE(44);
      END_STATE();
    case 34:
      ACCEPT_TOKEN(anon_sym_set);
      END_STATE();
    case 35:
      ACCEPT_TOKEN(anon_sym_try);
      END_STATE();
    case 36:
      if (lookahead == 'l') ADVANCE(45);
      END_STATE();
    case 37:
      if (lookahead == 'h') ADVANCE(46);
      END_STATE();
    case 38:
      if (lookahead == 'r') ADVANCE(47);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(anon_sym_expr);
      END_STATE();
    case 40:
      if (lookahead == 'a') ADVANCE(48);
      END_STATE();
    case 41:
      if (lookahead == 'a') ADVANCE(49);
      END_STATE();
    case 42:
      if (lookahead == 's') ADVANCE(50);
      END_STATE();
    case 43:
      ACCEPT_TOKEN(anon_sym_proc);
      END_STATE();
    case 44:
      if (lookahead == 'x') ADVANCE(51);
      END_STATE();
    case 45:
      if (lookahead == 'e') ADVANCE(52);
      END_STATE();
    case 46:
      ACCEPT_TOKEN(anon_sym_catch);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(anon_sym_error);
      END_STATE();
    case 48:
      if (lookahead == 'c') ADVANCE(53);
      END_STATE();
    case 49:
      if (lookahead == 'l') ADVANCE(54);
      END_STATE();
    case 50:
      if (lookahead == 'p') ADVANCE(55);
      END_STATE();
    case 51:
      if (lookahead == 'p') ADVANCE(56);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(anon_sym_while);
      END_STATE();
    case 53:
      if (lookahead == 'h') ADVANCE(57);
      END_STATE();
    case 54:
      ACCEPT_TOKEN(anon_sym_global);
      END_STATE();
    case 55:
      if (lookahead == 'a') ADVANCE(58);
      END_STATE();
    case 56:
      ACCEPT_TOKEN(anon_sym_regexp);
      END_STATE();
    case 57:
      ACCEPT_TOKEN(anon_sym_foreach);
      END_STATE();
    case 58:
      if (lookahead == 'c') ADVANCE(59);
      END_STATE();
    case 59:
      if (lookahead == 'e') ADVANCE(60);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(anon_sym_namespace);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0, .external_lex_state = 1},
  [1] = {.lex_state = 80},
  [2] = {.lex_state = 80},
  [3] = {.lex_state = 80},
  [4] = {.lex_state = 80},
  [5] = {.lex_state = 80},
  [6] = {.lex_state = 80},
  [7] = {.lex_state = 80},
  [8] = {.lex_state = 80},
  [9] = {.lex_state = 80},
  [10] = {.lex_state = 80},
  [11] = {.lex_state = 80},
  [12] = {.lex_state = 80},
  [13] = {.lex_state = 80},
  [14] = {.lex_state = 80},
  [15] = {.lex_state = 39},
  [16] = {.lex_state = 39},
  [17] = {.lex_state = 39},
  [18] = {.lex_state = 39},
  [19] = {.lex_state = 39},
  [20] = {.lex_state = 39},
  [21] = {.lex_state = 39},
  [22] = {.lex_state = 39},
  [23] = {.lex_state = 39},
  [24] = {.lex_state = 39},
  [25] = {.lex_state = 39},
  [26] = {.lex_state = 39},
  [27] = {.lex_state = 39},
  [28] = {.lex_state = 39},
  [29] = {.lex_state = 39},
  [30] = {.lex_state = 35},
  [31] = {.lex_state = 35},
  [32] = {.lex_state = 35},
  [33] = {.lex_state = 35},
  [34] = {.lex_state = 35},
  [35] = {.lex_state = 36},
  [36] = {.lex_state = 35},
  [37] = {.lex_state = 36},
  [38] = {.lex_state = 36},
  [39] = {.lex_state = 36},
  [40] = {.lex_state = 36},
  [41] = {.lex_state = 36},
  [42] = {.lex_state = 36},
  [43] = {.lex_state = 36},
  [44] = {.lex_state = 36},
  [45] = {.lex_state = 36},
  [46] = {.lex_state = 36},
  [47] = {.lex_state = 36},
  [48] = {.lex_state = 36},
  [49] = {.lex_state = 36},
  [50] = {.lex_state = 36},
  [51] = {.lex_state = 36},
  [52] = {.lex_state = 36},
  [53] = {.lex_state = 36},
  [54] = {.lex_state = 36},
  [55] = {.lex_state = 36},
  [56] = {.lex_state = 36},
  [57] = {.lex_state = 36},
  [58] = {.lex_state = 36},
  [59] = {.lex_state = 36},
  [60] = {.lex_state = 36},
  [61] = {.lex_state = 36},
  [62] = {.lex_state = 36},
  [63] = {.lex_state = 36},
  [64] = {.lex_state = 35},
  [65] = {.lex_state = 35},
  [66] = {.lex_state = 35},
  [67] = {.lex_state = 35},
  [68] = {.lex_state = 35},
  [69] = {.lex_state = 35},
  [70] = {.lex_state = 35},
  [71] = {.lex_state = 80},
  [72] = {.lex_state = 34},
  [73] = {.lex_state = 34},
  [74] = {.lex_state = 34},
  [75] = {.lex_state = 34},
  [76] = {.lex_state = 80},
  [77] = {.lex_state = 34},
  [78] = {.lex_state = 34},
  [79] = {.lex_state = 34},
  [80] = {.lex_state = 34},
  [81] = {.lex_state = 34},
  [82] = {.lex_state = 34},
  [83] = {.lex_state = 34},
  [84] = {.lex_state = 34},
  [85] = {.lex_state = 34},
  [86] = {.lex_state = 34},
  [87] = {.lex_state = 34},
  [88] = {.lex_state = 34},
  [89] = {.lex_state = 34},
  [90] = {.lex_state = 34},
  [91] = {.lex_state = 34},
  [92] = {.lex_state = 34},
  [93] = {.lex_state = 34},
  [94] = {.lex_state = 34},
  [95] = {.lex_state = 34},
  [96] = {.lex_state = 29},
  [97] = {.lex_state = 29},
  [98] = {.lex_state = 32},
  [99] = {.lex_state = 29},
  [100] = {.lex_state = 29},
  [101] = {.lex_state = 28, .external_lex_state = 2},
  [102] = {.lex_state = 28, .external_lex_state = 2},
  [103] = {.lex_state = 43},
  [104] = {.lex_state = 28, .external_lex_state = 2},
  [105] = {.lex_state = 28, .external_lex_state = 2},
  [106] = {.lex_state = 28, .external_lex_state = 2},
  [107] = {.lex_state = 43},
  [108] = {.lex_state = 32},
  [109] = {.lex_state = 29, .external_lex_state = 2},
  [110] = {.lex_state = 43},
  [111] = {.lex_state = 43},
  [112] = {.lex_state = 44},
  [113] = {.lex_state = 43},
  [114] = {.lex_state = 43},
  [115] = {.lex_state = 32},
  [116] = {.lex_state = 29},
  [117] = {.lex_state = 40, .external_lex_state = 2},
  [118] = {.lex_state = 29},
  [119] = {.lex_state = 31},
  [120] = {.lex_state = 44},
  [121] = {.lex_state = 28, .external_lex_state = 2},
  [122] = {.lex_state = 40, .external_lex_state = 2},
  [123] = {.lex_state = 40, .external_lex_state = 2},
  [124] = {.lex_state = 29, .external_lex_state = 2},
  [125] = {.lex_state = 44},
  [126] = {.lex_state = 44},
  [127] = {.lex_state = 40, .external_lex_state = 2},
  [128] = {.lex_state = 31},
  [129] = {.lex_state = 44},
  [130] = {.lex_state = 44},
  [131] = {.lex_state = 29},
  [132] = {.lex_state = 44},
  [133] = {.lex_state = 44},
  [134] = {.lex_state = 31},
  [135] = {.lex_state = 40, .external_lex_state = 2},
  [136] = {.lex_state = 29},
  [137] = {.lex_state = 44},
  [138] = {.lex_state = 44},
  [139] = {.lex_state = 31},
  [140] = {.lex_state = 31},
  [141] = {.lex_state = 29, .external_lex_state = 2},
  [142] = {.lex_state = 29, .external_lex_state = 2},
  [143] = {.lex_state = 44},
  [144] = {.lex_state = 29},
  [145] = {.lex_state = 44},
  [146] = {.lex_state = 29, .external_lex_state = 2},
  [147] = {.lex_state = 43},
  [148] = {.lex_state = 43},
  [149] = {.lex_state = 43},
  [150] = {.lex_state = 43},
  [151] = {.lex_state = 29},
  [152] = {.lex_state = 29, .external_lex_state = 2},
  [153] = {.lex_state = 43},
  [154] = {.lex_state = 43},
  [155] = {.lex_state = 46},
  [156] = {.lex_state = 43},
  [157] = {.lex_state = 43},
  [158] = {.lex_state = 29, .external_lex_state = 2},
  [159] = {.lex_state = 43},
  [160] = {.lex_state = 43},
  [161] = {.lex_state = 43},
  [162] = {.lex_state = 43},
  [163] = {.lex_state = 43},
  [164] = {.lex_state = 43},
  [165] = {.lex_state = 44},
  [166] = {.lex_state = 44},
  [167] = {.lex_state = 46},
  [168] = {.lex_state = 43},
  [169] = {.lex_state = 43},
  [170] = {.lex_state = 29, .external_lex_state = 2},
  [171] = {.lex_state = 43},
  [172] = {.lex_state = 43, .external_lex_state = 2},
  [173] = {.lex_state = 14, .external_lex_state = 2},
  [174] = {.lex_state = 43},
  [175] = {.lex_state = 41, .external_lex_state = 2},
  [176] = {.lex_state = 41, .external_lex_state = 2},
  [177] = {.lex_state = 41, .external_lex_state = 2},
  [178] = {.lex_state = 14, .external_lex_state = 2},
  [179] = {.lex_state = 14, .external_lex_state = 2},
  [180] = {.lex_state = 41, .external_lex_state = 2},
  [181] = {.lex_state = 46},
  [182] = {.lex_state = 46},
  [183] = {.lex_state = 41, .external_lex_state = 2},
  [184] = {.lex_state = 43},
  [185] = {.lex_state = 29},
  [186] = {.lex_state = 46},
  [187] = {.lex_state = 14, .external_lex_state = 2},
  [188] = {.lex_state = 29, .external_lex_state = 2},
  [189] = {.lex_state = 46},
  [190] = {.lex_state = 46},
  [191] = {.lex_state = 43},
  [192] = {.lex_state = 14, .external_lex_state = 2},
  [193] = {.lex_state = 43},
  [194] = {.lex_state = 43},
  [195] = {.lex_state = 43},
  [196] = {.lex_state = 43},
  [197] = {.lex_state = 46},
  [198] = {.lex_state = 43},
  [199] = {.lex_state = 43},
  [200] = {.lex_state = 44},
  [201] = {.lex_state = 44},
  [202] = {.lex_state = 44},
  [203] = {.lex_state = 44},
  [204] = {.lex_state = 44},
  [205] = {.lex_state = 43},
  [206] = {.lex_state = 14, .external_lex_state = 2},
  [207] = {.lex_state = 43},
  [208] = {.lex_state = 44},
  [209] = {.lex_state = 44},
  [210] = {.lex_state = 43, .external_lex_state = 2},
  [211] = {.lex_state = 41},
  [212] = {.lex_state = 44},
  [213] = {.lex_state = 43},
  [214] = {.lex_state = 43},
  [215] = {.lex_state = 29, .external_lex_state = 2},
  [216] = {.lex_state = 29, .external_lex_state = 2},
  [217] = {.lex_state = 41},
  [218] = {.lex_state = 41},
  [219] = {.lex_state = 43},
  [220] = {.lex_state = 31},
  [221] = {.lex_state = 29, .external_lex_state = 2},
  [222] = {.lex_state = 43, .external_lex_state = 2},
  [223] = {.lex_state = 41},
  [224] = {.lex_state = 44},
  [225] = {.lex_state = 40},
  [226] = {.lex_state = 40},
  [227] = {.lex_state = 40},
  [228] = {.lex_state = 40, .external_lex_state = 2},
  [229] = {.lex_state = 40},
  [230] = {.lex_state = 43, .external_lex_state = 2},
  [231] = {.lex_state = 40},
  [232] = {.lex_state = 44},
  [233] = {.lex_state = 29, .external_lex_state = 2},
  [234] = {.lex_state = 44},
  [235] = {.lex_state = 44},
  [236] = {.lex_state = 35, .external_lex_state = 2},
  [237] = {.lex_state = 35, .external_lex_state = 2},
  [238] = {.lex_state = 35, .external_lex_state = 2},
  [239] = {.lex_state = 41},
  [240] = {.lex_state = 44},
  [241] = {.lex_state = 35, .external_lex_state = 2},
  [242] = {.lex_state = 44},
  [243] = {.lex_state = 44},
  [244] = {.lex_state = 44},
  [245] = {.lex_state = 44},
  [246] = {.lex_state = 44},
  [247] = {.lex_state = 44},
  [248] = {.lex_state = 44},
  [249] = {.lex_state = 44},
  [250] = {.lex_state = 44},
  [251] = {.lex_state = 44},
  [252] = {.lex_state = 44},
  [253] = {.lex_state = 44},
  [254] = {.lex_state = 44},
  [255] = {.lex_state = 44},
  [256] = {.lex_state = 44},
  [257] = {.lex_state = 44},
  [258] = {.lex_state = 44},
  [259] = {.lex_state = 44},
  [260] = {.lex_state = 44},
  [261] = {.lex_state = 44},
  [262] = {.lex_state = 29, .external_lex_state = 2},
  [263] = {.lex_state = 29, .external_lex_state = 2},
  [264] = {.lex_state = 44},
  [265] = {.lex_state = 44},
  [266] = {.lex_state = 44},
  [267] = {.lex_state = 44},
  [268] = {.lex_state = 29, .external_lex_state = 2},
  [269] = {.lex_state = 44},
  [270] = {.lex_state = 44},
  [271] = {.lex_state = 44},
  [272] = {.lex_state = 44},
  [273] = {.lex_state = 44},
  [274] = {.lex_state = 44},
  [275] = {.lex_state = 44},
  [276] = {.lex_state = 29, .external_lex_state = 2},
  [277] = {.lex_state = 44},
  [278] = {.lex_state = 44},
  [279] = {.lex_state = 35, .external_lex_state = 2},
  [280] = {.lex_state = 29},
  [281] = {.lex_state = 14, .external_lex_state = 2},
  [282] = {.lex_state = 14, .external_lex_state = 2},
  [283] = {.lex_state = 14, .external_lex_state = 2},
  [284] = {.lex_state = 44, .external_lex_state = 2},
  [285] = {.lex_state = 44},
  [286] = {.lex_state = 44, .external_lex_state = 2},
  [287] = {.lex_state = 41, .external_lex_state = 2},
  [288] = {.lex_state = 44},
  [289] = {.lex_state = 29},
  [290] = {.lex_state = 43, .external_lex_state = 2},
  [291] = {.lex_state = 43, .external_lex_state = 2},
  [292] = {.lex_state = 43, .external_lex_state = 2},
  [293] = {.lex_state = 44},
  [294] = {.lex_state = 44},
  [295] = {.lex_state = 29},
  [296] = {.lex_state = 43},
  [297] = {.lex_state = 43, .external_lex_state = 2},
  [298] = {.lex_state = 43, .external_lex_state = 2},
  [299] = {.lex_state = 44},
  [300] = {.lex_state = 43},
  [301] = {.lex_state = 14, .external_lex_state = 2},
  [302] = {.lex_state = 29},
  [303] = {.lex_state = 29},
  [304] = {.lex_state = 43, .external_lex_state = 2},
  [305] = {.lex_state = 14, .external_lex_state = 2},
  [306] = {.lex_state = 43},
  [307] = {.lex_state = 42},
  [308] = {.lex_state = 14, .external_lex_state = 2},
  [309] = {.lex_state = 43, .external_lex_state = 2},
  [310] = {.lex_state = 43, .external_lex_state = 2},
  [311] = {.lex_state = 43},
  [312] = {.lex_state = 32},
  [313] = {.lex_state = 42},
  [314] = {.lex_state = 43, .external_lex_state = 2},
  [315] = {.lex_state = 43, .external_lex_state = 2},
  [316] = {.lex_state = 14, .external_lex_state = 2},
  [317] = {.lex_state = 43, .external_lex_state = 2},
  [318] = {.lex_state = 43, .external_lex_state = 2},
  [319] = {.lex_state = 41},
  [320] = {.lex_state = 43, .external_lex_state = 2},
  [321] = {.lex_state = 14, .external_lex_state = 2},
  [322] = {.lex_state = 14, .external_lex_state = 2},
  [323] = {.lex_state = 42},
  [324] = {.lex_state = 42},
  [325] = {.lex_state = 42},
  [326] = {.lex_state = 44, .external_lex_state = 2},
  [327] = {.lex_state = 44, .external_lex_state = 2},
  [328] = {.lex_state = 43, .external_lex_state = 2},
  [329] = {.lex_state = 40},
  [330] = {.lex_state = 35, .external_lex_state = 2},
  [331] = {.lex_state = 43, .external_lex_state = 2},
  [332] = {.lex_state = 35, .external_lex_state = 2},
  [333] = {.lex_state = 43},
  [334] = {.lex_state = 43, .external_lex_state = 2},
  [335] = {.lex_state = 43},
  [336] = {.lex_state = 44, .external_lex_state = 2},
  [337] = {.lex_state = 43},
  [338] = {.lex_state = 14, .external_lex_state = 2},
  [339] = {.lex_state = 49},
  [340] = {.lex_state = 43},
  [341] = {.lex_state = 35, .external_lex_state = 2},
  [342] = {.lex_state = 44, .external_lex_state = 2},
  [343] = {.lex_state = 44, .external_lex_state = 2},
  [344] = {.lex_state = 43},
  [345] = {.lex_state = 44, .external_lex_state = 2},
  [346] = {.lex_state = 14, .external_lex_state = 2},
  [347] = {.lex_state = 49},
  [348] = {.lex_state = 14},
  [349] = {.lex_state = 49},
  [350] = {.lex_state = 43},
  [351] = {.lex_state = 44, .external_lex_state = 2},
  [352] = {.lex_state = 14},
  [353] = {.lex_state = 44, .external_lex_state = 2},
  [354] = {.lex_state = 49},
  [355] = {.lex_state = 43},
  [356] = {.lex_state = 49},
  [357] = {.lex_state = 43},
  [358] = {.lex_state = 14, .external_lex_state = 2},
  [359] = {.lex_state = 44, .external_lex_state = 2},
  [360] = {.lex_state = 35, .external_lex_state = 2},
  [361] = {.lex_state = 49},
  [362] = {.lex_state = 49},
  [363] = {.lex_state = 43},
  [364] = {.lex_state = 49},
  [365] = {.lex_state = 44, .external_lex_state = 2},
  [366] = {.lex_state = 49},
  [367] = {.lex_state = 49},
  [368] = {.lex_state = 49},
  [369] = {.lex_state = 49},
  [370] = {.lex_state = 49},
  [371] = {.lex_state = 49},
  [372] = {.lex_state = 14},
  [373] = {.lex_state = 14, .external_lex_state = 2},
  [374] = {.lex_state = 14, .external_lex_state = 2},
  [375] = {.lex_state = 49},
  [376] = {.lex_state = 44, .external_lex_state = 2},
  [377] = {.lex_state = 43},
  [378] = {.lex_state = 43, .external_lex_state = 2},
  [379] = {.lex_state = 43},
  [380] = {.lex_state = 43, .external_lex_state = 2},
  [381] = {.lex_state = 49},
  [382] = {.lex_state = 43},
  [383] = {.lex_state = 43},
  [384] = {.lex_state = 14, .external_lex_state = 2},
  [385] = {.lex_state = 14},
  [386] = {.lex_state = 44, .external_lex_state = 2},
  [387] = {.lex_state = 49},
  [388] = {.lex_state = 14, .external_lex_state = 2},
  [389] = {.lex_state = 49},
  [390] = {.lex_state = 43, .external_lex_state = 2},
  [391] = {.lex_state = 14, .external_lex_state = 2},
  [392] = {.lex_state = 35, .external_lex_state = 2},
  [393] = {.lex_state = 49},
  [394] = {.lex_state = 45},
  [395] = {.lex_state = 35, .external_lex_state = 2},
  [396] = {.lex_state = 43, .external_lex_state = 2},
  [397] = {.lex_state = 43},
  [398] = {.lex_state = 35, .external_lex_state = 2},
  [399] = {.lex_state = 35, .external_lex_state = 2},
  [400] = {.lex_state = 43, .external_lex_state = 2},
  [401] = {.lex_state = 35, .external_lex_state = 2},
  [402] = {.lex_state = 35, .external_lex_state = 2},
  [403] = {.lex_state = 14},
  [404] = {.lex_state = 43},
  [405] = {.lex_state = 53, .external_lex_state = 2},
  [406] = {.lex_state = 50, .external_lex_state = 2},
  [407] = {.lex_state = 53, .external_lex_state = 2},
  [408] = {.lex_state = 53, .external_lex_state = 2},
  [409] = {.lex_state = 43},
  [410] = {.lex_state = 50, .external_lex_state = 2},
  [411] = {.lex_state = 53, .external_lex_state = 2},
  [412] = {.lex_state = 43},
  [413] = {.lex_state = 45},
  [414] = {.lex_state = 14},
  [415] = {.lex_state = 53, .external_lex_state = 2},
  [416] = {.lex_state = 43},
  [417] = {.lex_state = 42},
  [418] = {.lex_state = 14},
  [419] = {.lex_state = 14},
  [420] = {.lex_state = 43, .external_lex_state = 2},
  [421] = {.lex_state = 50},
  [422] = {.lex_state = 44},
  [423] = {.lex_state = 43},
  [424] = {.lex_state = 43},
  [425] = {.lex_state = 43},
  [426] = {.lex_state = 43},
  [427] = {.lex_state = 43},
  [428] = {.lex_state = 43},
  [429] = {.lex_state = 14},
  [430] = {.lex_state = 14},
  [431] = {.lex_state = 14},
  [432] = {.lex_state = 14},
  [433] = {.lex_state = 43},
  [434] = {.lex_state = 14},
  [435] = {.lex_state = 14},
  [436] = {.lex_state = 44},
  [437] = {.lex_state = 50, .external_lex_state = 2},
  [438] = {.lex_state = 35},
  [439] = {.lex_state = 44},
  [440] = {.lex_state = 35, .external_lex_state = 2},
  [441] = {.lex_state = 35, .external_lex_state = 2},
  [442] = {.lex_state = 50, .external_lex_state = 2},
  [443] = {.lex_state = 35, .external_lex_state = 2},
  [444] = {.lex_state = 14},
  [445] = {.lex_state = 14},
  [446] = {.lex_state = 35},
  [447] = {.lex_state = 35, .external_lex_state = 2},
  [448] = {.lex_state = 35, .external_lex_state = 2},
  [449] = {.lex_state = 35, .external_lex_state = 2},
  [450] = {.lex_state = 35},
  [451] = {.lex_state = 44},
  [452] = {.lex_state = 35, .external_lex_state = 2},
  [453] = {.lex_state = 35, .external_lex_state = 2},
  [454] = {.lex_state = 35},
  [455] = {.lex_state = 14},
  [456] = {.lex_state = 35},
  [457] = {.lex_state = 53, .external_lex_state = 2},
  [458] = {.lex_state = 50, .external_lex_state = 2},
  [459] = {.lex_state = 49},
  [460] = {.lex_state = 50},
  [461] = {.lex_state = 55},
  [462] = {.lex_state = 50},
  [463] = {.lex_state = 14},
  [464] = {.lex_state = 14},
  [465] = {.lex_state = 14},
  [466] = {.lex_state = 50},
  [467] = {.lex_state = 14},
  [468] = {.lex_state = 35},
  [469] = {.lex_state = 14},
  [470] = {.lex_state = 14},
  [471] = {.lex_state = 50, .external_lex_state = 2},
  [472] = {.lex_state = 50, .external_lex_state = 2},
  [473] = {.lex_state = 55},
  [474] = {.lex_state = 50, .external_lex_state = 2},
  [475] = {.lex_state = 14},
  [476] = {.lex_state = 49},
  [477] = {.lex_state = 50},
  [478] = {.lex_state = 14},
  [479] = {.lex_state = 55},
  [480] = {.lex_state = 14},
  [481] = {.lex_state = 14, .external_lex_state = 2},
  [482] = {.lex_state = 14},
  [483] = {.lex_state = 14},
  [484] = {.lex_state = 55},
  [485] = {.lex_state = 14, .external_lex_state = 2},
  [486] = {.lex_state = 35},
  [487] = {.lex_state = 14},
  [488] = {.lex_state = 14},
  [489] = {.lex_state = 14},
  [490] = {.lex_state = 55},
  [491] = {.lex_state = 35, .external_lex_state = 2},
  [492] = {.lex_state = 55},
  [493] = {.lex_state = 14},
  [494] = {.lex_state = 55},
  [495] = {.lex_state = 35},
  [496] = {.lex_state = 14},
  [497] = {.lex_state = 55},
  [498] = {.lex_state = 55},
  [499] = {.lex_state = 55},
  [500] = {.lex_state = 50, .external_lex_state = 2},
  [501] = {.lex_state = 35},
  [502] = {.lex_state = 50},
  [503] = {.lex_state = 49},
  [504] = {.lex_state = 14, .external_lex_state = 2},
  [505] = {.lex_state = 14},
  [506] = {.lex_state = 14},
  [507] = {.lex_state = 55},
  [508] = {.lex_state = 49},
  [509] = {.lex_state = 50, .external_lex_state = 2},
  [510] = {.lex_state = 0, .external_lex_state = 2},
  [511] = {.lex_state = 50},
  [512] = {.lex_state = 0, .external_lex_state = 2},
  [513] = {.lex_state = 0, .external_lex_state = 2},
  [514] = {.lex_state = 50, .external_lex_state = 2},
  [515] = {.lex_state = 50},
  [516] = {.lex_state = 52},
  [517] = {.lex_state = 50},
  [518] = {.lex_state = 50, .external_lex_state = 2},
  [519] = {.lex_state = 35},
  [520] = {.lex_state = 50, .external_lex_state = 2},
  [521] = {.lex_state = 35},
  [522] = {.lex_state = 50, .external_lex_state = 2},
  [523] = {.lex_state = 50, .external_lex_state = 2},
  [524] = {.lex_state = 50, .external_lex_state = 2},
  [525] = {.lex_state = 14, .external_lex_state = 2},
  [526] = {.lex_state = 14, .external_lex_state = 2},
  [527] = {.lex_state = 52},
  [528] = {.lex_state = 50, .external_lex_state = 2},
  [529] = {.lex_state = 14, .external_lex_state = 2},
  [530] = {.lex_state = 50},
  [531] = {.lex_state = 14},
  [532] = {.lex_state = 14},
  [533] = {.lex_state = 14},
  [534] = {.lex_state = 50},
  [535] = {.lex_state = 14},
  [536] = {.lex_state = 14},
  [537] = {.lex_state = 14},
  [538] = {.lex_state = 14},
  [539] = {.lex_state = 14},
  [540] = {.lex_state = 14},
  [541] = {.lex_state = 14},
  [542] = {.lex_state = 14},
  [543] = {.lex_state = 50},
  [544] = {.lex_state = 14},
  [545] = {.lex_state = 14},
  [546] = {.lex_state = 0, .external_lex_state = 2},
  [547] = {.lex_state = 14},
  [548] = {.lex_state = 35},
  [549] = {.lex_state = 14},
  [550] = {.lex_state = 35},
  [551] = {.lex_state = 14},
  [552] = {.lex_state = 14},
  [553] = {.lex_state = 35},
  [554] = {.lex_state = 14},
  [555] = {.lex_state = 50},
  [556] = {.lex_state = 14},
  [557] = {.lex_state = 14},
  [558] = {.lex_state = 14},
  [559] = {.lex_state = 50},
  [560] = {.lex_state = 35},
  [561] = {.lex_state = 35},
  [562] = {.lex_state = 14},
  [563] = {.lex_state = 14},
  [564] = {.lex_state = 14},
  [565] = {.lex_state = 14},
  [566] = {.lex_state = 14},
  [567] = {.lex_state = 50},
  [568] = {.lex_state = 0, .external_lex_state = 2},
  [569] = {.lex_state = 14},
  [570] = {.lex_state = 50},
  [571] = {.lex_state = 14},
  [572] = {.lex_state = 50},
  [573] = {.lex_state = 14},
  [574] = {.lex_state = 50},
  [575] = {.lex_state = 14},
  [576] = {.lex_state = 14},
  [577] = {.lex_state = 50},
  [578] = {.lex_state = 50},
  [579] = {.lex_state = 14},
  [580] = {.lex_state = 50},
  [581] = {.lex_state = 14},
  [582] = {.lex_state = 50},
  [583] = {.lex_state = 14},
  [584] = {.lex_state = 0, .external_lex_state = 2},
  [585] = {.lex_state = 14},
  [586] = {.lex_state = 14},
  [587] = {.lex_state = 14},
  [588] = {.lex_state = 50},
  [589] = {.lex_state = 14},
  [590] = {.lex_state = 0, .external_lex_state = 2},
  [591] = {.lex_state = 0, .external_lex_state = 2},
  [592] = {.lex_state = 0, .external_lex_state = 2},
  [593] = {.lex_state = 0, .external_lex_state = 2},
  [594] = {.lex_state = 0, .external_lex_state = 2},
  [595] = {.lex_state = 14},
  [596] = {.lex_state = 14},
  [597] = {.lex_state = 0},
  [598] = {.lex_state = 50},
  [599] = {.lex_state = 55},
  [600] = {.lex_state = 0},
  [601] = {.lex_state = 55},
  [602] = {.lex_state = 0},
  [603] = {.lex_state = 0},
  [604] = {.lex_state = 0},
  [605] = {.lex_state = 0},
  [606] = {.lex_state = 0},
  [607] = {.lex_state = 55},
  [608] = {.lex_state = 0},
  [609] = {.lex_state = 0},
  [610] = {.lex_state = 55},
  [611] = {.lex_state = 0},
  [612] = {.lex_state = 0},
  [613] = {.lex_state = 0},
  [614] = {.lex_state = 0},
  [615] = {.lex_state = 55},
  [616] = {.lex_state = 46},
  [617] = {.lex_state = 0},
  [618] = {.lex_state = 55},
  [619] = {.lex_state = 0},
  [620] = {.lex_state = 0},
  [621] = {.lex_state = 55},
  [622] = {.lex_state = 0},
  [623] = {.lex_state = 55},
  [624] = {.lex_state = 0},
  [625] = {.lex_state = 0},
  [626] = {.lex_state = 55},
  [627] = {.lex_state = 0},
  [628] = {.lex_state = 0},
  [629] = {.lex_state = 55},
  [630] = {.lex_state = 0},
  [631] = {.lex_state = 55},
  [632] = {.lex_state = 0},
  [633] = {.lex_state = 0},
  [634] = {.lex_state = 55},
  [635] = {.lex_state = 0},
  [636] = {.lex_state = 0},
  [637] = {.lex_state = 0},
  [638] = {.lex_state = 55},
  [639] = {.lex_state = 0},
  [640] = {.lex_state = 55},
  [641] = {.lex_state = 0},
  [642] = {.lex_state = 0},
  [643] = {.lex_state = 55},
  [644] = {.lex_state = 55},
  [645] = {.lex_state = 0},
  [646] = {.lex_state = 55},
  [647] = {.lex_state = 0},
  [648] = {.lex_state = 0},
  [649] = {.lex_state = 55},
  [650] = {.lex_state = 0},
  [651] = {.lex_state = 0},
  [652] = {.lex_state = 0},
  [653] = {.lex_state = 59},
  [654] = {.lex_state = 0},
  [655] = {.lex_state = 0},
  [656] = {.lex_state = 0},
  [657] = {.lex_state = 0},
  [658] = {.lex_state = 59},
  [659] = {.lex_state = 59},
  [660] = {.lex_state = 0},
  [661] = {.lex_state = 0},
  [662] = {.lex_state = 0},
  [663] = {.lex_state = 0},
  [664] = {.lex_state = 55},
  [665] = {.lex_state = 0},
  [666] = {.lex_state = 0},
  [667] = {.lex_state = 0},
  [668] = {.lex_state = 59},
  [669] = {.lex_state = 59},
  [670] = {.lex_state = 0},
  [671] = {.lex_state = 0},
  [672] = {.lex_state = 59},
  [673] = {.lex_state = 0},
  [674] = {.lex_state = 0},
  [675] = {.lex_state = 59},
  [676] = {.lex_state = 0},
  [677] = {.lex_state = 0},
  [678] = {.lex_state = 59},
  [679] = {.lex_state = 55},
  [680] = {.lex_state = 55},
  [681] = {.lex_state = 59},
  [682] = {.lex_state = 0},
  [683] = {.lex_state = 0},
  [684] = {.lex_state = 59},
  [685] = {.lex_state = 0},
  [686] = {.lex_state = 0},
  [687] = {.lex_state = 59},
  [688] = {.lex_state = 0},
  [689] = {.lex_state = 35},
  [690] = {.lex_state = 59},
  [691] = {.lex_state = 0},
  [692] = {.lex_state = 0},
  [693] = {.lex_state = 0},
  [694] = {.lex_state = 50},
  [695] = {.lex_state = 0},
  [696] = {.lex_state = 55},
  [697] = {.lex_state = 46},
  [698] = {.lex_state = 35},
  [699] = {.lex_state = 0},
  [700] = {.lex_state = 50},
  [701] = {.lex_state = 50},
  [702] = {.lex_state = 0},
  [703] = {.lex_state = 0},
  [704] = {.lex_state = 55},
  [705] = {.lex_state = 50},
  [706] = {.lex_state = 55},
  [707] = {.lex_state = 0},
  [708] = {.lex_state = 46},
  [709] = {.lex_state = 0},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [0] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [sym_simple_word] = ACTIONS(1),
    [anon_sym_SEMI] = ACTIONS(1),
    [sym_comment] = ACTIONS(1),
    [anon_sym_regexp] = ACTIONS(1),
    [anon_sym_while] = ACTIONS(1),
    [anon_sym_expr] = ACTIONS(1),
    [anon_sym_foreach] = ACTIONS(1),
    [anon_sym_global] = ACTIONS(1),
    [anon_sym_namespace] = ACTIONS(1),
    [anon_sym_try] = ACTIONS(1),
    [anon_sym_on] = ACTIONS(1),
    [anon_sym_error] = ACTIONS(1),
    [anon_sym_finally] = ACTIONS(1),
    [sym_unpack] = ACTIONS(1),
    [anon_sym_COLON_COLON] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_DOLLAR] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_set] = ACTIONS(1),
    [anon_sym_proc] = ACTIONS(1),
    [sym__number] = ACTIONS(1),
    [sym__boolean] = ACTIONS(1),
    [anon_sym_LPAREN2] = ACTIONS(1),
    [anon_sym_DASH] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [anon_sym_TILDE] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_STAR_STAR] = ACTIONS(1),
    [anon_sym_SLASH] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_PERCENT] = ACTIONS(1),
    [anon_sym_LT_LT] = ACTIONS(1),
    [anon_sym_GT_GT] = 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_EQ] = ACTIONS(1),
    [anon_sym_eq] = ACTIONS(1),
    [anon_sym_ne] = ACTIONS(1),
    [anon_sym_in] = ACTIONS(1),
    [anon_sym_ni] = ACTIONS(1),
    [anon_sym_AMP] = ACTIONS(1),
    [anon_sym_CARET] = ACTIONS(1),
    [anon_sym_PIPE] = ACTIONS(1),
    [anon_sym_AMP_AMP] = ACTIONS(1),
    [anon_sym_PIPE_PIPE] = ACTIONS(1),
    [anon_sym_QMARK] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_elseif] = ACTIONS(1),
    [anon_sym_else] = ACTIONS(1),
    [anon_sym_if] = ACTIONS(1),
    [anon_sym_catch] = ACTIONS(1),
    [anon_sym_DQUOTE] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [sym__concat] = ACTIONS(1),
    [sym__immediate] = ACTIONS(1),
  },
  [1] = {
    [sym_source_file] = STATE(674),
    [sym_regexp] = STATE(596),
    [sym_while] = STATE(596),
    [sym_expr_cmd] = STATE(596),
    [sym_foreach] = STATE(596),
    [sym_global] = STATE(596),
    [sym_namespace] = STATE(596),
    [sym_try] = STATE(596),
    [sym__command] = STATE(596),
    [sym_command] = STATE(596),
    [sym__concat_word] = STATE(97),
    [sym_variable_substitution] = STATE(170),
    [sym_braced_word] = STATE(97),
    [sym_set] = STATE(596),
    [sym_procedure] = STATE(596),
    [sym_conditional] = STATE(596),
    [sym_catch] = STATE(596),
    [sym_quoted_word] = STATE(170),
    [sym_command_substitution] = STATE(170),
    [aux_sym_source_file_repeat1] = STATE(2),
    [ts_builtin_sym_end] = ACTIONS(3),
    [sym_simple_word] = ACTIONS(5),
    [anon_sym_LF] = ACTIONS(7),
    [anon_sym_SEMI] = ACTIONS(7),
    [sym_comment] = ACTIONS(9),
    [anon_sym_regexp] = ACTIONS(11),
    [anon_sym_while] = ACTIONS(13),
    [anon_sym_expr] = ACTIONS(15),
    [anon_sym_foreach] = ACTIONS(17),
    [anon_sym_global] = ACTIONS(19),
    [anon_sym_namespace] = ACTIONS(21),
    [anon_sym_try] = ACTIONS(23),
    [sym_unpack] = ACTIONS(25),
    [anon_sym_DOLLAR] = ACTIONS(27),
    [anon_sym_LBRACE] = ACTIONS(29),
    [anon_sym_set] = ACTIONS(31),
    [anon_sym_proc] = ACTIONS(33),
    [anon_sym_if] = ACTIONS(35),
    [anon_sym_catch] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [sym_escaped_character] = ACTIONS(41),
    [anon_sym_LBRACK] = ACTIONS(43),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(9), 1,
      sym_comment,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(45), 1,
      ts_builtin_sym_end,
    STATE(3), 1,
      aux_sym_source_file_repeat1,
    ACTIONS(47), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(596), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [92] = 25,
    ACTIONS(49), 1,
      ts_builtin_sym_end,
    ACTIONS(51), 1,
      sym_simple_word,
    ACTIONS(57), 1,
      sym_comment,
    ACTIONS(60), 1,
      anon_sym_regexp,
    ACTIONS(63), 1,
      anon_sym_while,
    ACTIONS(66), 1,
      anon_sym_expr,
    ACTIONS(69), 1,
      anon_sym_foreach,
    ACTIONS(72), 1,
      anon_sym_global,
    ACTIONS(75), 1,
      anon_sym_namespace,
    ACTIONS(78), 1,
      anon_sym_try,
    ACTIONS(81), 1,
      sym_unpack,
    ACTIONS(84), 1,
      anon_sym_DOLLAR,
    ACTIONS(87), 1,
      anon_sym_LBRACE,
    ACTIONS(90), 1,
      anon_sym_set,
    ACTIONS(93), 1,
      anon_sym_proc,
    ACTIONS(96), 1,
      anon_sym_if,
    ACTIONS(99), 1,
      anon_sym_catch,
    ACTIONS(102), 1,
      anon_sym_DQUOTE,
    ACTIONS(105), 1,
      sym_escaped_character,
    ACTIONS(108), 1,
      anon_sym_LBRACK,
    STATE(3), 1,
      aux_sym_source_file_repeat1,
    ACTIONS(54), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(596), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [184] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [276] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(117), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [368] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(119), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [460] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(121), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [552] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(123), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [644] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(125), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [736] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(127), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [828] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(129), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [920] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(131), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1012] = 25,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    ACTIONS(133), 1,
      anon_sym_RBRACE,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1104] = 24,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(113), 1,
      sym_comment,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(111), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(566), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1193] = 23,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(135), 1,
      sym_comment,
    ACTIONS(137), 1,
      anon_sym_RBRACE,
    ACTIONS(139), 1,
      sym_escaped_character,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(463), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1278] = 23,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    ACTIONS(141), 1,
      sym_comment,
    ACTIONS(143), 1,
      anon_sym_RBRACE,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(465), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1363] = 23,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    ACTIONS(145), 1,
      sym_comment,
    ACTIONS(147), 1,
      anon_sym_RBRACE,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(487), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1448] = 23,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    ACTIONS(149), 1,
      sym_comment,
    ACTIONS(151), 1,
      anon_sym_RBRACE,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(475), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1533] = 23,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(11), 1,
      anon_sym_regexp,
    ACTIONS(13), 1,
      anon_sym_while,
    ACTIONS(15), 1,
      anon_sym_expr,
    ACTIONS(17), 1,
      anon_sym_foreach,
    ACTIONS(19), 1,
      anon_sym_global,
    ACTIONS(21), 1,
      anon_sym_namespace,
    ACTIONS(23), 1,
      anon_sym_try,
    ACTIONS(25), 1,
      sym_unpack,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(31), 1,
      anon_sym_set,
    ACTIONS(33), 1,
      anon_sym_proc,
    ACTIONS(35), 1,
      anon_sym_if,
    ACTIONS(37), 1,
      anon_sym_catch,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    ACTIONS(153), 1,
      sym_comment,
    ACTIONS(155), 1,
      anon_sym_RBRACE,
    STATE(97), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(480), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1618] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(159), 1,
      sym_comment,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(608), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1700] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(195), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(639), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1782] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(197), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(665), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1864] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(199), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(660), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [1946] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(201), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(657), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [2028] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(203), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(673), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [2110] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(205), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(609), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [2192] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(207), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(617), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [2274] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(209), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(625), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [2356] = 22,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(161), 1,
      anon_sym_regexp,
    ACTIONS(163), 1,
      anon_sym_while,
    ACTIONS(165), 1,
      anon_sym_expr,
    ACTIONS(167), 1,
      anon_sym_foreach,
    ACTIONS(169), 1,
      anon_sym_global,
    ACTIONS(171), 1,
      anon_sym_namespace,
    ACTIONS(173), 1,
      anon_sym_try,
    ACTIONS(175), 1,
      sym_unpack,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(181), 1,
      anon_sym_set,
    ACTIONS(183), 1,
      anon_sym_proc,
    ACTIONS(185), 1,
      anon_sym_if,
    ACTIONS(187), 1,
      anon_sym_catch,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(211), 1,
      sym_comment,
    STATE(107), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
    STATE(633), 13,
      sym_regexp,
      sym_while,
      sym_expr_cmd,
      sym_foreach,
      sym_global,
      sym_namespace,
      sym_try,
      sym__command,
      sym_command,
      sym_set,
      sym_procedure,
      sym_conditional,
      sym_catch,
  [2438] = 5,
    ACTIONS(213), 1,
      anon_sym_COLON_COLON,
    STATE(31), 1,
      aux_sym__id_immediate_repeat1,
    STATE(644), 1,
      sym__ns_delim,
    ACTIONS(217), 6,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_COLON,
    ACTIONS(215), 23,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_RBRACK,
  [2481] = 5,
    ACTIONS(213), 1,
      anon_sym_COLON_COLON,
    STATE(32), 1,
      aux_sym__id_immediate_repeat1,
    STATE(644), 1,
      sym__ns_delim,
    ACTIONS(221), 6,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_COLON,
    ACTIONS(219), 23,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_RBRACK,
  [2524] = 5,
    ACTIONS(223), 1,
      anon_sym_COLON_COLON,
    STATE(32), 1,
      aux_sym__id_immediate_repeat1,
    STATE(644), 1,
      sym__ns_delim,
    ACTIONS(228), 6,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_COLON,
    ACTIONS(226), 23,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_RBRACK,
  [2567] = 5,
    ACTIONS(213), 1,
      anon_sym_COLON_COLON,
    STATE(32), 1,
      aux_sym__id_immediate_repeat1,
    STATE(644), 1,
      sym__ns_delim,
    ACTIONS(217), 6,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_COLON,
    ACTIONS(215), 23,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_RBRACK,
  [2610] = 5,
    ACTIONS(213), 1,
      anon_sym_COLON_COLON,
    STATE(33), 1,
      aux_sym__id_immediate_repeat1,
    STATE(644), 1,
      sym__ns_delim,
    ACTIONS(232), 6,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_COLON,
    ACTIONS(230), 23,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_RBRACK,
  [2653] = 4,
    ACTIONS(234), 1,
      anon_sym_LPAREN,
    STATE(43), 1,
      sym_array_index,
    ACTIONS(238), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(236), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2692] = 2,
    ACTIONS(228), 6,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_COLON,
    ACTIONS(226), 24,
      anon_sym_COLON_COLON,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_RBRACK,
  [2727] = 4,
    ACTIONS(234), 1,
      anon_sym_LPAREN,
    STATE(38), 1,
      sym_array_index,
    ACTIONS(242), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(240), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2766] = 2,
    ACTIONS(246), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(244), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2799] = 2,
    ACTIONS(250), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(248), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2832] = 2,
    ACTIONS(254), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(252), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2865] = 2,
    ACTIONS(258), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(256), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2898] = 2,
    ACTIONS(262), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(260), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2931] = 2,
    ACTIONS(266), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(264), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2964] = 2,
    ACTIONS(270), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(268), 23,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_RBRACK,
  [2997] = 3,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(276), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(272), 21,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3031] = 6,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(276), 4,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(272), 17,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3071] = 14,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(276), 1,
      anon_sym_PIPE,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
    ACTIONS(272), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3127] = 14,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
    ACTIONS(272), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3183] = 15,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
    ACTIONS(272), 5,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3241] = 11,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(276), 2,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(272), 9,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3291] = 16,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
    ACTIONS(304), 4,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3351] = 2,
    ACTIONS(310), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(308), 22,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3383] = 2,
    ACTIONS(314), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(312), 22,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3415] = 7,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(276), 4,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(272), 15,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3457] = 9,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(276), 2,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(272), 13,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3503] = 10,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(276), 2,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(272), 11,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3551] = 12,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(276), 2,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
    ACTIONS(272), 7,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3603] = 13,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(276), 1,
      anon_sym_PIPE,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
    ACTIONS(272), 7,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3657] = 2,
    ACTIONS(318), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(316), 22,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3689] = 2,
    ACTIONS(322), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(320), 22,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3721] = 2,
    ACTIONS(276), 5,
      anon_sym_STAR,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(272), 22,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_STAR_STAR,
      anon_sym_SLASH,
      anon_sym_PERCENT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3753] = 5,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(276), 4,
      anon_sym_GT,
      anon_sym_LT,
      anon_sym_AMP,
      anon_sym_PIPE,
    ACTIONS(272), 19,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
      anon_sym_eq,
      anon_sym_ne,
      anon_sym_in,
      anon_sym_ni,
      anon_sym_CARET,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_QMARK,
      anon_sym_COLON,
  [3791] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(326), 1,
      anon_sym_COLON,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [3851] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(328), 1,
      anon_sym_RPAREN,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [3911] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(330), 1,
      anon_sym_RPAREN,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [3971] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(332), 1,
      anon_sym_RBRACE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [4031] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(334), 1,
      anon_sym_RPAREN,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [4091] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(336), 1,
      anon_sym_RBRACE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [4151] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(338), 1,
      anon_sym_RBRACE,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [4211] = 17,
    ACTIONS(274), 1,
      anon_sym_STAR_STAR,
    ACTIONS(282), 1,
      anon_sym_STAR,
    ACTIONS(296), 1,
      anon_sym_AMP,
    ACTIONS(298), 1,
      anon_sym_CARET,
    ACTIONS(300), 1,
      anon_sym_PIPE,
    ACTIONS(302), 1,
      anon_sym_AMP_AMP,
    ACTIONS(306), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(324), 1,
      anon_sym_QMARK,
    ACTIONS(340), 1,
      anon_sym_RPAREN,
    ACTIONS(278), 2,
      anon_sym_DASH,
      anon_sym_PLUS,
    ACTIONS(280), 2,
      anon_sym_SLASH,
      anon_sym_PERCENT,
    ACTIONS(284), 2,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
    ACTIONS(286), 2,
      anon_sym_GT,
      anon_sym_LT,
    ACTIONS(288), 2,
      anon_sym_GT_EQ,
      anon_sym_LT_EQ,
    ACTIONS(290), 2,
      anon_sym_EQ_EQ,
      anon_sym_BANG_EQ,
    ACTIONS(292), 2,
      anon_sym_eq,
      anon_sym_ne,
    ACTIONS(294), 2,
      anon_sym_in,
      anon_sym_ni,
  [4271] = 3,
    STATE(71), 1,
      aux_sym_braced_word_repeat1,
    ACTIONS(344), 2,
      anon_sym_LF,
      anon_sym_SEMI,
    ACTIONS(342), 20,
      sym_comment,
      anon_sym_regexp,
      anon_sym_while,
      anon_sym_expr,
      anon_sym_foreach,
      anon_sym_global,
      anon_sym_namespace,
      anon_sym_try,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_set,
      anon_sym_proc,
      anon_sym_if,
      anon_sym_catch,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [4301] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(361), 1,
      sym_escaped_character,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(57), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4344] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(367), 1,
      sym_escaped_character,
    ACTIONS(365), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(54), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4387] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(371), 1,
      sym_escaped_character,
    ACTIONS(369), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(70), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4430] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(375), 1,
      sym_escaped_character,
    ACTIONS(373), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(55), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4473] = 2,
    ACTIONS(49), 1,
      ts_builtin_sym_end,
    ACTIONS(377), 21,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_comment,
      anon_sym_regexp,
      anon_sym_while,
      anon_sym_expr,
      anon_sym_foreach,
      anon_sym_global,
      anon_sym_namespace,
      anon_sym_try,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_set,
      anon_sym_proc,
      anon_sym_if,
      anon_sym_catch,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [4500] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(381), 1,
      sym_escaped_character,
    ACTIONS(379), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(48), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4543] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(385), 1,
      sym_escaped_character,
    ACTIONS(383), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(56), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4586] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(389), 1,
      sym_escaped_character,
    ACTIONS(387), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(65), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4629] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(393), 1,
      sym_escaped_character,
    ACTIONS(391), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(51), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4672] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      sym_escaped_character,
    ACTIONS(395), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(60), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4715] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(401), 1,
      sym_escaped_character,
    ACTIONS(399), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(69), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4758] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(405), 1,
      sym_escaped_character,
    ACTIONS(403), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(50), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4801] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(409), 1,
      sym_escaped_character,
    ACTIONS(407), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(45), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4844] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(413), 1,
      sym_escaped_character,
    ACTIONS(411), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(49), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4887] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(417), 1,
      sym_escaped_character,
    ACTIONS(415), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(68), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4930] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(421), 1,
      sym_escaped_character,
    ACTIONS(419), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(67), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [4973] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(425), 1,
      sym_escaped_character,
    ACTIONS(423), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(62), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5016] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(429), 1,
      sym_escaped_character,
    ACTIONS(427), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(66), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5059] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(433), 1,
      sym_escaped_character,
    ACTIONS(431), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(64), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5102] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(437), 1,
      sym_escaped_character,
    ACTIONS(435), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(63), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5145] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(441), 1,
      sym_escaped_character,
    ACTIONS(439), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(61), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5188] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(445), 1,
      sym_escaped_character,
    ACTIONS(443), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(58), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5231] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(449), 1,
      sym_escaped_character,
    ACTIONS(447), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(46), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5274] = 10,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(349), 1,
      anon_sym_DOLLAR,
    ACTIONS(351), 1,
      anon_sym_LBRACE,
    ACTIONS(355), 1,
      anon_sym_LPAREN2,
    ACTIONS(359), 1,
      anon_sym_DQUOTE,
    ACTIONS(363), 1,
      anon_sym_LBRACK,
    ACTIONS(453), 1,
      sym_escaped_character,
    ACTIONS(451), 2,
      sym__number,
      sym__boolean,
    ACTIONS(357), 4,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
      anon_sym_BANG,
    STATE(47), 9,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym__expr_atom_no_brace,
      sym__expr,
      sym_unary_expr,
      sym_binop_expr,
      sym_ternary_expr,
      sym_quoted_word,
      sym_command_substitution,
  [5317] = 11,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(457), 1,
      sym_unpack,
    STATE(595), 1,
      sym_word_list,
    ACTIONS(455), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(100), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5357] = 11,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(457), 1,
      sym_unpack,
    STATE(569), 1,
      sym_word_list,
    ACTIONS(459), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(100), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5397] = 10,
    ACTIONS(465), 1,
      anon_sym_LPAREN,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(469), 1,
      anon_sym_LBRACE,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    STATE(115), 1,
      sym_array_index,
    STATE(589), 1,
      sym__word_simple,
    ACTIONS(461), 2,
      sym_escaped_character,
      sym_simple_word,
    ACTIONS(463), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(504), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [5434] = 10,
    ACTIONS(475), 1,
      sym_simple_word,
    ACTIONS(480), 1,
      sym_unpack,
    ACTIONS(483), 1,
      anon_sym_DOLLAR,
    ACTIONS(486), 1,
      anon_sym_LBRACE,
    ACTIONS(489), 1,
      anon_sym_DQUOTE,
    ACTIONS(492), 1,
      sym_escaped_character,
    ACTIONS(495), 1,
      anon_sym_LBRACK,
    ACTIONS(478), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(99), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5471] = 10,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(457), 1,
      sym_unpack,
    ACTIONS(498), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(99), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5508] = 5,
    ACTIONS(500), 1,
      anon_sym_COLON_COLON,
    STATE(106), 1,
      aux_sym__id_immediate_repeat1,
    STATE(649), 1,
      sym__ns_delim,
    ACTIONS(230), 2,
      sym__concat,
      anon_sym_LPAREN,
    ACTIONS(232), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [5534] = 5,
    ACTIONS(500), 1,
      anon_sym_COLON_COLON,
    STATE(105), 1,
      aux_sym__id_immediate_repeat1,
    STATE(649), 1,
      sym__ns_delim,
    ACTIONS(215), 2,
      sym__concat,
      anon_sym_LPAREN,
    ACTIONS(217), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [5560] = 11,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(455), 1,
      anon_sym_RBRACK,
    ACTIONS(502), 1,
      sym_unpack,
    STATE(656), 1,
      sym_word_list,
    STATE(114), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5598] = 5,
    ACTIONS(504), 1,
      anon_sym_COLON_COLON,
    STATE(104), 1,
      aux_sym__id_immediate_repeat1,
    STATE(649), 1,
      sym__ns_delim,
    ACTIONS(226), 2,
      sym__concat,
      anon_sym_LPAREN,
    ACTIONS(228), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [5624] = 5,
    ACTIONS(500), 1,
      anon_sym_COLON_COLON,
    STATE(104), 1,
      aux_sym__id_immediate_repeat1,
    STATE(649), 1,
      sym__ns_delim,
    ACTIONS(219), 2,
      sym__concat,
      anon_sym_LPAREN,
    ACTIONS(221), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [5650] = 5,
    ACTIONS(500), 1,
      anon_sym_COLON_COLON,
    STATE(104), 1,
      aux_sym__id_immediate_repeat1,
    STATE(649), 1,
      sym__ns_delim,
    ACTIONS(215), 2,
      sym__concat,
      anon_sym_LPAREN,
    ACTIONS(217), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [5676] = 11,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(459), 1,
      anon_sym_RBRACK,
    ACTIONS(502), 1,
      sym_unpack,
    STATE(663), 1,
      sym_word_list,
    STATE(114), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5714] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(469), 1,
      anon_sym_LBRACE,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    STATE(535), 1,
      sym__word_simple,
    ACTIONS(461), 2,
      sym_escaped_character,
      sym_simple_word,
    ACTIONS(507), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(504), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [5745] = 5,
    ACTIONS(511), 1,
      anon_sym_LPAREN,
    ACTIONS(513), 1,
      sym__concat,
    STATE(152), 1,
      aux_sym__concat_word_repeat1,
    STATE(158), 1,
      sym_array_index,
    ACTIONS(509), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [5770] = 10,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    ACTIONS(457), 1,
      sym_unpack,
    STATE(587), 1,
      sym_word_list,
    STATE(100), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5805] = 10,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(502), 1,
      sym_unpack,
    STATE(614), 1,
      sym_word_list,
    STATE(114), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5840] = 11,
    ACTIONS(463), 1,
      anon_sym_RBRACK,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(517), 1,
      anon_sym_LPAREN,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(166), 1,
      sym_array_index,
    STATE(688), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [5877] = 10,
    ACTIONS(478), 1,
      anon_sym_RBRACK,
    ACTIONS(529), 1,
      sym_simple_word,
    ACTIONS(532), 1,
      sym_unpack,
    ACTIONS(535), 1,
      anon_sym_DOLLAR,
    ACTIONS(538), 1,
      anon_sym_LBRACE,
    ACTIONS(541), 1,
      anon_sym_DQUOTE,
    ACTIONS(544), 1,
      sym_escaped_character,
    ACTIONS(547), 1,
      anon_sym_LBRACK,
    STATE(113), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5912] = 10,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(498), 1,
      anon_sym_RBRACK,
    ACTIONS(502), 1,
      sym_unpack,
    STATE(113), 3,
      sym__concat_word,
      sym_braced_word,
      aux_sym_word_list_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [5947] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(469), 1,
      anon_sym_LBRACE,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    STATE(536), 1,
      sym__word_simple,
    ACTIONS(461), 2,
      sym_escaped_character,
      sym_simple_word,
    ACTIONS(550), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(504), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [5978] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    STATE(131), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    ACTIONS(552), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6008] = 5,
    ACTIONS(554), 1,
      anon_sym_COLON_COLON,
    STATE(123), 1,
      aux_sym__id_immediate_repeat1,
    STATE(621), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(217), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [6032] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    STATE(144), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    ACTIONS(556), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6062] = 5,
    ACTIONS(226), 1,
      anon_sym_LPAREN,
    ACTIONS(558), 1,
      anon_sym_COLON_COLON,
    STATE(119), 1,
      aux_sym__id_immediate_repeat1,
    STATE(696), 1,
      sym__ns_delim,
    ACTIONS(228), 9,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6086] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(567), 1,
      anon_sym_RBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    STATE(145), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6118] = 2,
    ACTIONS(226), 2,
      sym__concat,
      anon_sym_LPAREN,
    ACTIONS(228), 11,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_COLON_COLON,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6136] = 5,
    ACTIONS(554), 1,
      anon_sym_COLON_COLON,
    STATE(135), 1,
      aux_sym__id_immediate_repeat1,
    STATE(621), 1,
      sym__ns_delim,
    ACTIONS(230), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(232), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [6160] = 5,
    ACTIONS(554), 1,
      anon_sym_COLON_COLON,
    STATE(127), 1,
      aux_sym__id_immediate_repeat1,
    STATE(621), 1,
      sym__ns_delim,
    ACTIONS(219), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(221), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [6184] = 4,
    ACTIONS(240), 1,
      sym__concat,
    ACTIONS(511), 1,
      anon_sym_LPAREN,
    STATE(276), 1,
      sym_array_index,
    ACTIONS(242), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6206] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(575), 1,
      anon_sym_RBRACE,
    STATE(126), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6238] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_RBRACE,
    STATE(143), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6270] = 5,
    ACTIONS(579), 1,
      anon_sym_COLON_COLON,
    STATE(127), 1,
      aux_sym__id_immediate_repeat1,
    STATE(621), 1,
      sym__ns_delim,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [6294] = 5,
    ACTIONS(584), 1,
      anon_sym_COLON_COLON,
    ACTIONS(586), 1,
      anon_sym_LPAREN,
    STATE(119), 1,
      aux_sym__id_immediate_repeat1,
    STATE(696), 1,
      sym__ns_delim,
    ACTIONS(582), 9,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6318] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(588), 1,
      anon_sym_RBRACE,
    STATE(130), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6350] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(590), 1,
      anon_sym_RBRACE,
    STATE(143), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6382] = 8,
    ACTIONS(592), 1,
      sym_simple_word,
    ACTIONS(597), 1,
      anon_sym_DOLLAR,
    ACTIONS(600), 1,
      anon_sym_DQUOTE,
    ACTIONS(603), 1,
      sym_escaped_character,
    ACTIONS(606), 1,
      anon_sym_LBRACK,
    STATE(131), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    ACTIONS(595), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6412] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(609), 1,
      anon_sym_RBRACE,
    STATE(133), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6444] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(611), 1,
      anon_sym_RBRACE,
    STATE(143), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6476] = 5,
    ACTIONS(584), 1,
      anon_sym_COLON_COLON,
    ACTIONS(615), 1,
      anon_sym_LPAREN,
    STATE(139), 1,
      aux_sym__id_immediate_repeat1,
    STATE(696), 1,
      sym__ns_delim,
    ACTIONS(613), 9,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6500] = 5,
    ACTIONS(554), 1,
      anon_sym_COLON_COLON,
    STATE(127), 1,
      aux_sym__id_immediate_repeat1,
    STATE(621), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(217), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [6524] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    STATE(116), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    ACTIONS(617), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6554] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(619), 1,
      anon_sym_RBRACE,
    STATE(138), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6586] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(621), 1,
      anon_sym_RBRACE,
    STATE(143), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6618] = 5,
    ACTIONS(584), 1,
      anon_sym_COLON_COLON,
    ACTIONS(625), 1,
      anon_sym_LPAREN,
    STATE(119), 1,
      aux_sym__id_immediate_repeat1,
    STATE(696), 1,
      sym__ns_delim,
    ACTIONS(623), 9,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6642] = 5,
    ACTIONS(584), 1,
      anon_sym_COLON_COLON,
    ACTIONS(625), 1,
      anon_sym_LPAREN,
    STATE(128), 1,
      aux_sym__id_immediate_repeat1,
    STATE(696), 1,
      sym__ns_delim,
    ACTIONS(623), 9,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6666] = 4,
    ACTIONS(236), 1,
      sym__concat,
    ACTIONS(511), 1,
      anon_sym_LPAREN,
    STATE(268), 1,
      sym_array_index,
    ACTIONS(238), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6688] = 4,
    ACTIONS(511), 1,
      anon_sym_LPAREN,
    ACTIONS(629), 1,
      sym__concat,
    STATE(262), 1,
      sym_array_index,
    ACTIONS(627), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6710] = 9,
    ACTIONS(631), 1,
      sym_simple_word,
    ACTIONS(634), 1,
      anon_sym_DOLLAR,
    ACTIONS(637), 1,
      anon_sym_LBRACE,
    ACTIONS(640), 1,
      anon_sym_RBRACE,
    ACTIONS(642), 1,
      anon_sym_DQUOTE,
    ACTIONS(645), 1,
      sym_escaped_character,
    ACTIONS(648), 1,
      anon_sym_LBRACK,
    STATE(143), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6742] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      sym_escaped_character,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    STATE(131), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    ACTIONS(651), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6772] = 9,
    ACTIONS(561), 1,
      sym_simple_word,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(571), 1,
      sym_escaped_character,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(653), 1,
      anon_sym_RBRACE,
    STATE(143), 2,
      sym__word_simple,
      aux_sym_braced_word_simple_repeat1,
    STATE(336), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [6804] = 3,
    ACTIONS(513), 1,
      sym__concat,
    STATE(188), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(655), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6823] = 9,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(657), 1,
      sym_unpack,
    STATE(296), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6854] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(661), 1,
      sym_unpack,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(372), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6885] = 9,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(669), 1,
      sym_unpack,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(699), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6916] = 9,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(677), 1,
      sym_unpack,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    STATE(454), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6947] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(691), 1,
      sym_escaped_character,
    STATE(531), 1,
      sym__concat_word,
    ACTIONS(689), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [6976] = 3,
    ACTIONS(513), 1,
      sym__concat,
    STATE(188), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(693), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [6995] = 9,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(695), 1,
      sym_unpack,
    STATE(604), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7026] = 9,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(697), 1,
      sym_unpack,
    STATE(667), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7057] = 8,
    ACTIONS(699), 1,
      sym_simple_word,
    ACTIONS(701), 1,
      anon_sym_DOLLAR,
    ACTIONS(703), 1,
      anon_sym_LBRACE,
    ACTIONS(707), 1,
      anon_sym_DQUOTE,
    ACTIONS(709), 1,
      anon_sym_LBRACK,
    STATE(571), 1,
      sym_expr,
    ACTIONS(705), 2,
      sym__number,
      sym__boolean,
    STATE(552), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [7086] = 9,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(711), 1,
      sym_unpack,
    STATE(606), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7117] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(713), 1,
      sym_unpack,
    STATE(554), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7148] = 3,
    ACTIONS(513), 1,
      sym__concat,
    STATE(146), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(693), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [7167] = 9,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(715), 1,
      sym_unpack,
    STATE(661), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7198] = 9,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(717), 1,
      sym_unpack,
    STATE(605), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7229] = 9,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    ACTIONS(719), 1,
      sym_unpack,
    STATE(548), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7260] = 9,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    ACTIONS(721), 1,
      sym_unpack,
    STATE(550), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7291] = 9,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    ACTIONS(723), 1,
      sym_unpack,
    STATE(553), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7322] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(725), 1,
      sym_unpack,
    STATE(549), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7353] = 9,
    ACTIONS(507), 1,
      anon_sym_RBRACK,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(666), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [7384] = 9,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(550), 1,
      anon_sym_RBRACK,
    STATE(685), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [7415] = 8,
    ACTIONS(727), 1,
      sym_simple_word,
    ACTIONS(729), 1,
      anon_sym_DOLLAR,
    ACTIONS(731), 1,
      anon_sym_LBRACE,
    ACTIONS(735), 1,
      anon_sym_DQUOTE,
    ACTIONS(737), 1,
      anon_sym_LBRACK,
    STATE(194), 1,
      sym_expr,
    ACTIONS(733), 2,
      sym__number,
      sym__boolean,
    STATE(416), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [7444] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(739), 1,
      sym_unpack,
    STATE(586), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7475] = 9,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    ACTIONS(741), 1,
      sym_unpack,
    STATE(151), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7506] = 3,
    ACTIONS(513), 1,
      sym__concat,
    STATE(152), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(509), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [7525] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(743), 1,
      sym_unpack,
    STATE(563), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7556] = 6,
    ACTIONS(745), 1,
      anon_sym_LPAREN,
    ACTIONS(747), 1,
      sym_escaped_character,
    ACTIONS(749), 1,
      sym__concat,
    STATE(291), 1,
      aux_sym__concat_word_repeat1,
    STATE(292), 1,
      sym_array_index,
    ACTIONS(509), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [7581] = 5,
    ACTIONS(751), 1,
      anon_sym_COLON_COLON,
    STATE(178), 1,
      aux_sym__id_immediate_repeat1,
    STATE(610), 1,
      sym__ns_delim,
    ACTIONS(230), 3,
      sym__concat,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(232), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [7604] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(753), 1,
      sym_unpack,
    STATE(444), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7635] = 5,
    ACTIONS(755), 1,
      anon_sym_COLON_COLON,
    STATE(176), 1,
      aux_sym__id_immediate_repeat1,
    STATE(640), 1,
      sym__ns_delim,
    ACTIONS(230), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(232), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [7658] = 5,
    ACTIONS(755), 1,
      anon_sym_COLON_COLON,
    STATE(183), 1,
      aux_sym__id_immediate_repeat1,
    STATE(640), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(217), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [7681] = 5,
    ACTIONS(755), 1,
      anon_sym_COLON_COLON,
    STATE(180), 1,
      aux_sym__id_immediate_repeat1,
    STATE(640), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(217), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [7704] = 5,
    ACTIONS(751), 1,
      anon_sym_COLON_COLON,
    STATE(192), 1,
      aux_sym__id_immediate_repeat1,
    STATE(610), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(217), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [7727] = 5,
    ACTIONS(751), 1,
      anon_sym_COLON_COLON,
    STATE(187), 1,
      aux_sym__id_immediate_repeat1,
    STATE(610), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(217), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [7750] = 5,
    ACTIONS(755), 1,
      anon_sym_COLON_COLON,
    STATE(183), 1,
      aux_sym__id_immediate_repeat1,
    STATE(640), 1,
      sym__ns_delim,
    ACTIONS(219), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(221), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [7773] = 8,
    ACTIONS(727), 1,
      sym_simple_word,
    ACTIONS(729), 1,
      anon_sym_DOLLAR,
    ACTIONS(731), 1,
      anon_sym_LBRACE,
    ACTIONS(735), 1,
      anon_sym_DQUOTE,
    ACTIONS(737), 1,
      anon_sym_LBRACK,
    STATE(149), 1,
      sym_expr,
    ACTIONS(733), 2,
      sym__number,
      sym__boolean,
    STATE(416), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [7802] = 8,
    ACTIONS(727), 1,
      sym_simple_word,
    ACTIONS(729), 1,
      anon_sym_DOLLAR,
    ACTIONS(731), 1,
      anon_sym_LBRACE,
    ACTIONS(735), 1,
      anon_sym_DQUOTE,
    ACTIONS(737), 1,
      anon_sym_LBRACK,
    STATE(150), 1,
      sym_expr,
    ACTIONS(733), 2,
      sym__number,
      sym__boolean,
    STATE(416), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [7831] = 5,
    ACTIONS(757), 1,
      anon_sym_COLON_COLON,
    STATE(183), 1,
      aux_sym__id_immediate_repeat1,
    STATE(640), 1,
      sym__ns_delim,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [7854] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(760), 1,
      sym_unpack,
    STATE(541), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7885] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(691), 1,
      sym_escaped_character,
    STATE(547), 1,
      sym__concat_word,
    ACTIONS(762), 3,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [7914] = 8,
    ACTIONS(727), 1,
      sym_simple_word,
    ACTIONS(729), 1,
      anon_sym_DOLLAR,
    ACTIONS(731), 1,
      anon_sym_LBRACE,
    ACTIONS(735), 1,
      anon_sym_DQUOTE,
    ACTIONS(737), 1,
      anon_sym_LBRACK,
    STATE(162), 1,
      sym_expr,
    ACTIONS(733), 2,
      sym__number,
      sym__boolean,
    STATE(416), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [7943] = 5,
    ACTIONS(751), 1,
      anon_sym_COLON_COLON,
    STATE(192), 1,
      aux_sym__id_immediate_repeat1,
    STATE(610), 1,
      sym__ns_delim,
    ACTIONS(219), 3,
      sym__concat,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(221), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [7966] = 3,
    ACTIONS(764), 1,
      sym__concat,
    STATE(188), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(627), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [7985] = 8,
    ACTIONS(727), 1,
      sym_simple_word,
    ACTIONS(729), 1,
      anon_sym_DOLLAR,
    ACTIONS(731), 1,
      anon_sym_LBRACE,
    ACTIONS(735), 1,
      anon_sym_DQUOTE,
    ACTIONS(737), 1,
      anon_sym_LBRACK,
    STATE(199), 1,
      sym_expr,
    ACTIONS(733), 2,
      sym__number,
      sym__boolean,
    STATE(416), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [8014] = 8,
    ACTIONS(347), 1,
      sym_simple_word,
    ACTIONS(767), 1,
      anon_sym_DOLLAR,
    ACTIONS(769), 1,
      anon_sym_LBRACE,
    ACTIONS(773), 1,
      anon_sym_DQUOTE,
    ACTIONS(775), 1,
      anon_sym_LBRACK,
    STATE(622), 1,
      sym_expr,
    ACTIONS(771), 2,
      sym__number,
      sym__boolean,
    STATE(676), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [8043] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(777), 1,
      sym_unpack,
    STATE(455), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8074] = 5,
    ACTIONS(779), 1,
      anon_sym_COLON_COLON,
    STATE(192), 1,
      aux_sym__id_immediate_repeat1,
    STATE(610), 1,
      sym__ns_delim,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(228), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [8097] = 9,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    ACTIONS(782), 1,
      sym_unpack,
    STATE(521), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8128] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(784), 1,
      sym_unpack,
    STATE(488), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8159] = 9,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(786), 1,
      sym_simple_word,
    ACTIONS(788), 1,
      sym_unpack,
    ACTIONS(790), 1,
      anon_sym_DOLLAR,
    ACTIONS(792), 1,
      sym_escaped_character,
    STATE(555), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(514), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8190] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(794), 1,
      sym_unpack,
    STATE(470), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8221] = 8,
    ACTIONS(727), 1,
      sym_simple_word,
    ACTIONS(729), 1,
      anon_sym_DOLLAR,
    ACTIONS(731), 1,
      anon_sym_LBRACE,
    ACTIONS(735), 1,
      anon_sym_DQUOTE,
    ACTIONS(737), 1,
      anon_sym_LBRACK,
    STATE(148), 1,
      sym_expr,
    ACTIONS(733), 2,
      sym__number,
      sym__boolean,
    STATE(416), 4,
      sym_variable_substitution,
      sym__expr_atom_no_brace,
      sym_quoted_word,
      sym_command_substitution,
  [8250] = 9,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(786), 1,
      sym_simple_word,
    ACTIONS(790), 1,
      anon_sym_DOLLAR,
    ACTIONS(792), 1,
      sym_escaped_character,
    ACTIONS(796), 1,
      sym_unpack,
    STATE(567), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(514), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8281] = 9,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    ACTIONS(798), 1,
      sym_unpack,
    STATE(533), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8312] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(645), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [8340] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(538), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8368] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(470), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8396] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(482), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8424] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(493), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8452] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(617), 1,
      anon_sym_RBRACK,
    STATE(207), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8480] = 6,
    ACTIONS(747), 1,
      anon_sym_LF,
    ACTIONS(800), 1,
      anon_sym_LPAREN,
    ACTIONS(802), 1,
      sym__concat,
    STATE(321), 1,
      aux_sym__concat_word_repeat1,
    STATE(322), 1,
      sym_array_index,
    ACTIONS(509), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [8504] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(552), 1,
      anon_sym_RBRACK,
    STATE(214), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8532] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    STATE(377), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8560] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(348), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8588] = 4,
    ACTIONS(745), 1,
      anon_sym_LPAREN,
    STATE(310), 1,
      sym_array_index,
    ACTIONS(236), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(238), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [8608] = 5,
    ACTIONS(804), 1,
      anon_sym_COLON_COLON,
    STATE(217), 1,
      aux_sym__id_immediate_repeat1,
    STATE(634), 1,
      sym__ns_delim,
    ACTIONS(615), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(613), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [8630] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    STATE(300), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8658] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(556), 1,
      anon_sym_RBRACK,
    STATE(219), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8686] = 8,
    ACTIONS(595), 1,
      anon_sym_RBRACK,
    ACTIONS(806), 1,
      sym_simple_word,
    ACTIONS(809), 1,
      anon_sym_DOLLAR,
    ACTIONS(812), 1,
      anon_sym_DQUOTE,
    ACTIONS(815), 1,
      sym_escaped_character,
    ACTIONS(818), 1,
      anon_sym_LBRACK,
    STATE(214), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8714] = 2,
    ACTIONS(260), 1,
      sym__concat,
    ACTIONS(262), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [8730] = 2,
    ACTIONS(629), 1,
      sym__concat,
    ACTIONS(627), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [8746] = 5,
    ACTIONS(804), 1,
      anon_sym_COLON_COLON,
    STATE(239), 1,
      aux_sym__id_immediate_repeat1,
    STATE(634), 1,
      sym__ns_delim,
    ACTIONS(625), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(623), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [8768] = 5,
    ACTIONS(804), 1,
      anon_sym_COLON_COLON,
    STATE(223), 1,
      aux_sym__id_immediate_repeat1,
    STATE(634), 1,
      sym__ns_delim,
    ACTIONS(625), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(623), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [8790] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(651), 1,
      anon_sym_RBRACK,
    STATE(214), 2,
      sym__concat_word,
      aux_sym_regexp_repeat1,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8818] = 2,
    ACTIONS(226), 1,
      anon_sym_LPAREN,
    ACTIONS(228), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_COLON_COLON,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [8834] = 2,
    ACTIONS(268), 1,
      sym__concat,
    ACTIONS(270), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [8850] = 4,
    ACTIONS(745), 1,
      anon_sym_LPAREN,
    STATE(320), 1,
      sym_array_index,
    ACTIONS(240), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(242), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [8870] = 5,
    ACTIONS(804), 1,
      anon_sym_COLON_COLON,
    STATE(239), 1,
      aux_sym__id_immediate_repeat1,
    STATE(634), 1,
      sym__ns_delim,
    ACTIONS(586), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(582), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [8892] = 8,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(786), 1,
      sym_simple_word,
    ACTIONS(790), 1,
      anon_sym_DOLLAR,
    ACTIONS(792), 1,
      sym_escaped_character,
    STATE(582), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(514), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [8920] = 5,
    ACTIONS(821), 1,
      anon_sym_COLON_COLON,
    STATE(226), 1,
      aux_sym__id_immediate_repeat1,
    STATE(679), 1,
      sym__ns_delim,
    ACTIONS(230), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(232), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [8942] = 5,
    ACTIONS(821), 1,
      anon_sym_COLON_COLON,
    STATE(231), 1,
      aux_sym__id_immediate_repeat1,
    STATE(679), 1,
      sym__ns_delim,
    ACTIONS(215), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(217), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [8964] = 5,
    ACTIONS(821), 1,
      anon_sym_COLON_COLON,
    STATE(229), 1,
      aux_sym__id_immediate_repeat1,
    STATE(679), 1,
      sym__ns_delim,
    ACTIONS(215), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(217), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [8986] = 2,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 8,
      sym_unpack,
      anon_sym_COLON_COLON,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [9002] = 5,
    ACTIONS(821), 1,
      anon_sym_COLON_COLON,
    STATE(231), 1,
      aux_sym__id_immediate_repeat1,
    STATE(679), 1,
      sym__ns_delim,
    ACTIONS(219), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(221), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [9024] = 4,
    ACTIONS(745), 1,
      anon_sym_LPAREN,
    STATE(331), 1,
      sym_array_index,
    ACTIONS(629), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(627), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [9044] = 5,
    ACTIONS(823), 1,
      anon_sym_COLON_COLON,
    STATE(231), 1,
      aux_sym__id_immediate_repeat1,
    STATE(679), 1,
      sym__ns_delim,
    ACTIONS(226), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [9066] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    STATE(185), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9094] = 2,
    ACTIONS(256), 1,
      sym__concat,
    ACTIONS(258), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [9110] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(576), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9138] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(695), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [9166] = 5,
    ACTIONS(232), 1,
      anon_sym_else,
    ACTIONS(826), 1,
      anon_sym_COLON_COLON,
    STATE(237), 1,
      aux_sym__id_immediate_repeat1,
    STATE(646), 1,
      sym__ns_delim,
    ACTIONS(230), 7,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [9188] = 5,
    ACTIONS(217), 1,
      anon_sym_else,
    ACTIONS(826), 1,
      anon_sym_COLON_COLON,
    STATE(241), 1,
      aux_sym__id_immediate_repeat1,
    STATE(646), 1,
      sym__ns_delim,
    ACTIONS(215), 7,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [9210] = 5,
    ACTIONS(217), 1,
      anon_sym_else,
    ACTIONS(826), 1,
      anon_sym_COLON_COLON,
    STATE(279), 1,
      aux_sym__id_immediate_repeat1,
    STATE(646), 1,
      sym__ns_delim,
    ACTIONS(215), 7,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [9232] = 5,
    ACTIONS(828), 1,
      anon_sym_COLON_COLON,
    STATE(239), 1,
      aux_sym__id_immediate_repeat1,
    STATE(634), 1,
      sym__ns_delim,
    ACTIONS(226), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [9254] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(647), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [9282] = 5,
    ACTIONS(228), 1,
      anon_sym_else,
    ACTIONS(831), 1,
      anon_sym_COLON_COLON,
    STATE(241), 1,
      aux_sym__id_immediate_repeat1,
    STATE(646), 1,
      sym__ns_delim,
    ACTIONS(226), 7,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [9304] = 8,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(834), 1,
      sym_simple_word,
    ACTIONS(836), 1,
      sym_escaped_character,
    STATE(333), 1,
      sym__word_simple,
    STATE(400), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [9332] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(579), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9360] = 8,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(179), 1,
      anon_sym_LBRACE,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    STATE(103), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9388] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(583), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9416] = 8,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    STATE(519), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9444] = 8,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(838), 1,
      sym_simple_word,
    ACTIONS(840), 1,
      anon_sym_LBRACE,
    ACTIONS(842), 1,
      sym_escaped_character,
    STATE(157), 1,
      sym__word_simple,
    STATE(314), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [9472] = 8,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(834), 1,
      sym_simple_word,
    ACTIONS(836), 1,
      sym_escaped_character,
    STATE(335), 1,
      sym__word_simple,
    STATE(400), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [9500] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    STATE(295), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9528] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(602), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9556] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(544), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9584] = 8,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    STATE(446), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9612] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(632), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9640] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(655), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9668] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(691), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9696] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(670), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9724] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(673), 1,
      sym_escaped_character,
    STATE(693), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9752] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(540), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9780] = 8,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    STATE(553), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9808] = 8,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    STATE(560), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9836] = 8,
    ACTIONS(675), 1,
      sym_simple_word,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(681), 1,
      anon_sym_LBRACE,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(685), 1,
      sym_escaped_character,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    STATE(561), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(395), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9864] = 2,
    ACTIONS(846), 1,
      sym__concat,
    ACTIONS(844), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [9880] = 2,
    ACTIONS(248), 1,
      sym__concat,
    ACTIONS(250), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [9896] = 8,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(659), 1,
      sym_simple_word,
    ACTIONS(663), 1,
      anon_sym_LBRACE,
    ACTIONS(665), 1,
      sym_escaped_character,
    STATE(445), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(305), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9924] = 8,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(29), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    STATE(96), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [9952] = 8,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(838), 1,
      sym_simple_word,
    ACTIONS(840), 1,
      anon_sym_LBRACE,
    ACTIONS(842), 1,
      sym_escaped_character,
    STATE(153), 1,
      sym__word_simple,
    STATE(314), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [9980] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(709), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10008] = 2,
    ACTIONS(264), 1,
      sym__concat,
    ACTIONS(266), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10024] = 8,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(671), 1,
      anon_sym_LBRACE,
    ACTIONS(786), 1,
      sym_simple_word,
    ACTIONS(790), 1,
      anon_sym_DOLLAR,
    ACTIONS(792), 1,
      sym_escaped_character,
    STATE(570), 2,
      sym__concat_word,
      sym_braced_word,
    STATE(514), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [10052] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(654), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10080] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(686), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10108] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(603), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10136] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(612), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10164] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(620), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10192] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(628), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10220] = 2,
    ACTIONS(244), 1,
      sym__concat,
    ACTIONS(246), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10236] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(636), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10264] = 8,
    ACTIONS(515), 1,
      sym_simple_word,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(525), 1,
      sym_escaped_character,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    STATE(642), 1,
      sym__word_simple,
    STATE(512), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10292] = 5,
    ACTIONS(221), 1,
      anon_sym_else,
    ACTIONS(826), 1,
      anon_sym_COLON_COLON,
    STATE(241), 1,
      aux_sym__id_immediate_repeat1,
    STATE(646), 1,
      sym__ns_delim,
    ACTIONS(219), 7,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [10314] = 1,
    ACTIONS(848), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10327] = 4,
    ACTIONS(800), 1,
      anon_sym_LPAREN,
    STATE(338), 1,
      sym_array_index,
    ACTIONS(240), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(242), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10346] = 2,
    ACTIONS(226), 4,
      sym__concat,
      anon_sym_LF,
      anon_sym_COLON_COLON,
      anon_sym_LPAREN,
    ACTIONS(228), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10361] = 4,
    ACTIONS(800), 1,
      anon_sym_LPAREN,
    STATE(373), 1,
      sym_array_index,
    ACTIONS(629), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(627), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10380] = 4,
    ACTIONS(850), 1,
      anon_sym_LPAREN,
    STATE(343), 1,
      sym_array_index,
    ACTIONS(236), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(238), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [10399] = 7,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(852), 1,
      sym_simple_word,
    ACTIONS(854), 1,
      sym_escaped_character,
    STATE(342), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10424] = 4,
    ACTIONS(850), 1,
      anon_sym_LPAREN,
    STATE(351), 1,
      sym_array_index,
    ACTIONS(240), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(242), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [10443] = 2,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 7,
      anon_sym_COLON_COLON,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [10458] = 7,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(840), 1,
      anon_sym_LBRACE,
    ACTIONS(856), 1,
      sym_simple_word,
    ACTIONS(858), 1,
      sym_escaped_character,
    STATE(378), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10483] = 1,
    ACTIONS(860), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10496] = 4,
    ACTIONS(747), 1,
      sym_escaped_character,
    ACTIONS(749), 1,
      sym__concat,
    STATE(291), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(509), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10515] = 4,
    ACTIONS(749), 1,
      sym__concat,
    ACTIONS(862), 1,
      sym_escaped_character,
    STATE(297), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(693), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10534] = 4,
    ACTIONS(749), 1,
      sym__concat,
    ACTIONS(862), 1,
      sym_escaped_character,
    STATE(298), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(693), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10553] = 7,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(469), 1,
      anon_sym_LBRACE,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(864), 1,
      sym_simple_word,
    ACTIONS(866), 1,
      sym_escaped_character,
    STATE(526), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10578] = 7,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(521), 1,
      anon_sym_LBRACE,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(868), 1,
      sym_simple_word,
    ACTIONS(870), 1,
      sym_escaped_character,
    STATE(546), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10603] = 1,
    ACTIONS(478), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10616] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(689), 1,
      anon_sym_RBRACK,
    STATE(627), 1,
      sym__concat_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [10643] = 4,
    ACTIONS(629), 1,
      sym_escaped_character,
    ACTIONS(872), 1,
      sym__concat,
    STATE(297), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(627), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10662] = 4,
    ACTIONS(749), 1,
      sym__concat,
    ACTIONS(875), 1,
      sym_escaped_character,
    STATE(297), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(655), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10681] = 7,
    ACTIONS(563), 1,
      anon_sym_DOLLAR,
    ACTIONS(565), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_LBRACK,
    ACTIONS(852), 1,
      sym_simple_word,
    ACTIONS(854), 1,
      sym_escaped_character,
    STATE(342), 4,
      sym_variable_substitution,
      sym_braced_word_simple,
      sym_quoted_word,
      sym_command_substitution,
  [10706] = 8,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(667), 1,
      sym_simple_word,
    ACTIONS(673), 1,
      sym_escaped_character,
    ACTIONS(762), 1,
      anon_sym_RBRACK,
    STATE(692), 1,
      sym__concat_word,
    STATE(590), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [10733] = 4,
    ACTIONS(800), 1,
      anon_sym_LPAREN,
    STATE(384), 1,
      sym_array_index,
    ACTIONS(236), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(238), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10752] = 1,
    ACTIONS(877), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10765] = 1,
    ACTIONS(879), 10,
      anon_sym_LF,
      anon_sym_SEMI,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10778] = 2,
    ACTIONS(629), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(627), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10792] = 4,
    ACTIONS(747), 1,
      anon_sym_LF,
    ACTIONS(802), 1,
      sym__concat,
    STATE(321), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(509), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10810] = 4,
    ACTIONS(236), 1,
      sym_escaped_character,
    ACTIONS(881), 1,
      anon_sym_LPAREN,
    STATE(424), 1,
      sym_array_index,
    ACTIONS(238), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [10828] = 5,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(883), 1,
      anon_sym_COLON_COLON,
    STATE(313), 1,
      aux_sym__id_immediate_repeat1,
    STATE(626), 1,
      sym__ns_delim,
    ACTIONS(221), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [10848] = 4,
    ACTIONS(629), 1,
      anon_sym_LF,
    ACTIONS(885), 1,
      sym__concat,
    STATE(308), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(627), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10866] = 2,
    ACTIONS(260), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(262), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10880] = 2,
    ACTIONS(264), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(266), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10894] = 4,
    ACTIONS(240), 1,
      sym_escaped_character,
    ACTIONS(881), 1,
      anon_sym_LPAREN,
    STATE(427), 1,
      sym_array_index,
    ACTIONS(242), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [10912] = 1,
    ACTIONS(250), 9,
      anon_sym_LF,
      anon_sym_SEMI,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      sym_escaped_character,
      anon_sym_LBRACK,
      sym_simple_word,
  [10924] = 5,
    ACTIONS(226), 1,
      anon_sym_LPAREN,
    ACTIONS(888), 1,
      anon_sym_COLON_COLON,
    STATE(313), 1,
      aux_sym__id_immediate_repeat1,
    STATE(626), 1,
      sym__ns_delim,
    ACTIONS(228), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [10944] = 4,
    ACTIONS(893), 1,
      sym_escaped_character,
    ACTIONS(895), 1,
      sym__concat,
    STATE(318), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(891), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [10962] = 2,
    ACTIONS(268), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(270), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [10976] = 4,
    ACTIONS(802), 1,
      sym__concat,
    ACTIONS(875), 1,
      anon_sym_LF,
    STATE(308), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(655), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [10994] = 2,
    ACTIONS(256), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(258), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11008] = 4,
    ACTIONS(895), 1,
      sym__concat,
    ACTIONS(899), 1,
      sym_escaped_character,
    STATE(328), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(897), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11026] = 2,
    ACTIONS(226), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 7,
      anon_sym_COLON_COLON,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11040] = 2,
    ACTIONS(244), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(246), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11054] = 4,
    ACTIONS(802), 1,
      sym__concat,
    ACTIONS(862), 1,
      anon_sym_LF,
    STATE(308), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(693), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11072] = 4,
    ACTIONS(802), 1,
      sym__concat,
    ACTIONS(862), 1,
      anon_sym_LF,
    STATE(316), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(693), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11090] = 5,
    ACTIONS(230), 1,
      anon_sym_LPAREN,
    ACTIONS(883), 1,
      anon_sym_COLON_COLON,
    STATE(324), 1,
      aux_sym__id_immediate_repeat1,
    STATE(626), 1,
      sym__ns_delim,
    ACTIONS(232), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [11110] = 5,
    ACTIONS(215), 1,
      anon_sym_LPAREN,
    ACTIONS(883), 1,
      anon_sym_COLON_COLON,
    STATE(313), 1,
      aux_sym__id_immediate_repeat1,
    STATE(626), 1,
      sym__ns_delim,
    ACTIONS(217), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [11130] = 5,
    ACTIONS(215), 1,
      anon_sym_LPAREN,
    ACTIONS(883), 1,
      anon_sym_COLON_COLON,
    STATE(307), 1,
      aux_sym__id_immediate_repeat1,
    STATE(626), 1,
      sym__ns_delim,
    ACTIONS(217), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [11150] = 4,
    ACTIONS(899), 1,
      sym_escaped_character,
    ACTIONS(901), 1,
      sym__concat,
    STATE(327), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(897), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11168] = 4,
    ACTIONS(905), 1,
      sym_escaped_character,
    ACTIONS(907), 1,
      sym__concat,
    STATE(327), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(903), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11186] = 4,
    ACTIONS(905), 1,
      sym_escaped_character,
    ACTIONS(910), 1,
      sym__concat,
    STATE(328), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(903), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11204] = 2,
    ACTIONS(226), 2,
      anon_sym_LPAREN,
      sym_escaped_character,
    ACTIONS(228), 7,
      sym_unpack,
      anon_sym_COLON_COLON,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11218] = 2,
    ACTIONS(228), 1,
      anon_sym_else,
    ACTIONS(226), 8,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_COLON_COLON,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [11232] = 2,
    ACTIONS(846), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(844), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11246] = 6,
    ACTIONS(509), 1,
      anon_sym_else,
    ACTIONS(913), 1,
      anon_sym_LPAREN,
    ACTIONS(915), 1,
      sym__concat,
    STATE(398), 1,
      aux_sym__concat_word_repeat1,
    STATE(399), 1,
      sym_array_index,
    ACTIONS(747), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [11268] = 7,
    ACTIONS(157), 1,
      sym_simple_word,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(191), 1,
      sym_escaped_character,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    STATE(213), 1,
      sym__concat_word,
    STATE(290), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [11292] = 2,
    ACTIONS(248), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(250), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11306] = 7,
    ACTIONS(5), 1,
      sym_simple_word,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(139), 1,
      sym_escaped_character,
    STATE(118), 1,
      sym__concat_word,
    STATE(170), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [11330] = 4,
    ACTIONS(893), 1,
      sym_escaped_character,
    ACTIONS(901), 1,
      sym__concat,
    STATE(326), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(891), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11348] = 2,
    ACTIONS(917), 1,
      sym_escaped_character,
    ACTIONS(877), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11361] = 2,
    ACTIONS(244), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(246), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11374] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(921), 1,
      anon_sym_DQUOTE,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(923), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(389), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11393] = 6,
    ACTIONS(27), 1,
      anon_sym_DOLLAR,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(927), 1,
      sym_simple_word,
    ACTIONS(929), 1,
      sym_escaped_character,
    STATE(216), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [11414] = 4,
    ACTIONS(627), 1,
      anon_sym_else,
    ACTIONS(913), 1,
      anon_sym_LPAREN,
    STATE(449), 1,
      sym_array_index,
    ACTIONS(629), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [11431] = 2,
    ACTIONS(905), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(903), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11444] = 2,
    ACTIONS(264), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(266), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11457] = 2,
    ACTIONS(931), 1,
      sym_escaped_character,
    ACTIONS(860), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11470] = 2,
    ACTIONS(268), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(270), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11483] = 2,
    ACTIONS(268), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(270), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11496] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(933), 1,
      anon_sym_DQUOTE,
    ACTIONS(935), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(349), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11515] = 6,
    ACTIONS(937), 1,
      anon_sym_LF,
    ACTIONS(941), 1,
      anon_sym_elseif,
    ACTIONS(943), 1,
      anon_sym_else,
    STATE(537), 1,
      sym_else,
    ACTIONS(939), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(385), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [11536] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(945), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11555] = 6,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(790), 1,
      anon_sym_DOLLAR,
    ACTIONS(949), 1,
      sym_simple_word,
    ACTIONS(951), 1,
      sym_escaped_character,
    STATE(518), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [11576] = 2,
    ACTIONS(244), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(246), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11589] = 6,
    ACTIONS(937), 1,
      anon_sym_LF,
    ACTIONS(941), 1,
      anon_sym_elseif,
    ACTIONS(943), 1,
      anon_sym_else,
    STATE(537), 1,
      sym_else,
    ACTIONS(939), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(432), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [11610] = 2,
    ACTIONS(308), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(310), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11623] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(953), 1,
      anon_sym_DQUOTE,
    ACTIONS(955), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(356), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11642] = 2,
    ACTIONS(957), 1,
      sym_escaped_character,
    ACTIONS(848), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [11655] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(959), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11674] = 6,
    ACTIONS(177), 1,
      anon_sym_DOLLAR,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      anon_sym_LBRACK,
    ACTIONS(961), 1,
      sym_simple_word,
    ACTIONS(963), 1,
      sym_escaped_character,
    STATE(304), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [11695] = 2,
    ACTIONS(629), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(627), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11708] = 2,
    ACTIONS(248), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(250), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11721] = 4,
    ACTIONS(238), 1,
      anon_sym_else,
    ACTIONS(913), 1,
      anon_sym_LPAREN,
    STATE(441), 1,
      sym_array_index,
    ACTIONS(236), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [11738] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(965), 1,
      anon_sym_DQUOTE,
    ACTIONS(967), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(362), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11757] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(969), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11776] = 6,
    ACTIONS(679), 1,
      anon_sym_DOLLAR,
    ACTIONS(683), 1,
      anon_sym_DQUOTE,
    ACTIONS(687), 1,
      anon_sym_LBRACK,
    ACTIONS(971), 1,
      sym_simple_word,
    ACTIONS(973), 1,
      sym_escaped_character,
    STATE(453), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [11797] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(975), 1,
      anon_sym_DQUOTE,
    ACTIONS(977), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(393), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11816] = 2,
    ACTIONS(312), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(314), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [11829] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(979), 1,
      anon_sym_DQUOTE,
    ACTIONS(981), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(367), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11848] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(983), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11867] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(985), 1,
      anon_sym_DQUOTE,
    ACTIONS(987), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(369), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11886] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(989), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11905] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(991), 1,
      anon_sym_DQUOTE,
    ACTIONS(993), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(371), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11924] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(995), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [11943] = 6,
    ACTIONS(941), 1,
      anon_sym_elseif,
    ACTIONS(943), 1,
      anon_sym_else,
    ACTIONS(997), 1,
      anon_sym_LF,
    STATE(545), 1,
      sym_else,
    ACTIONS(999), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(352), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [11964] = 2,
    ACTIONS(846), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(844), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11977] = 2,
    ACTIONS(248), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(250), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [11990] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(1001), 1,
      anon_sym_DQUOTE,
    ACTIONS(1003), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(381), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [12009] = 2,
    ACTIONS(256), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(258), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12022] = 2,
    ACTIONS(1005), 1,
      sym_escaped_character,
    ACTIONS(478), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [12035] = 2,
    ACTIONS(905), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(903), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12048] = 6,
    ACTIONS(519), 1,
      anon_sym_DOLLAR,
    ACTIONS(523), 1,
      anon_sym_DQUOTE,
    ACTIONS(527), 1,
      anon_sym_LBRACK,
    ACTIONS(949), 1,
      sym_simple_word,
    ACTIONS(951), 1,
      sym_escaped_character,
    STATE(518), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [12069] = 2,
    ACTIONS(312), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(314), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12082] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(1007), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [12101] = 6,
    ACTIONS(467), 1,
      anon_sym_DOLLAR,
    ACTIONS(471), 1,
      anon_sym_DQUOTE,
    ACTIONS(473), 1,
      anon_sym_LBRACK,
    ACTIONS(1009), 1,
      sym_simple_word,
    ACTIONS(1011), 1,
      sym_escaped_character,
    STATE(358), 3,
      sym_variable_substitution,
      sym_quoted_word,
      sym_command_substitution,
  [12122] = 2,
    ACTIONS(1013), 1,
      sym_escaped_character,
    ACTIONS(879), 7,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [12135] = 2,
    ACTIONS(264), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(266), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12148] = 6,
    ACTIONS(941), 1,
      anon_sym_elseif,
    ACTIONS(943), 1,
      anon_sym_else,
    ACTIONS(1015), 1,
      anon_sym_LF,
    STATE(585), 1,
      sym_else,
    ACTIONS(1017), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    STATE(432), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [12169] = 2,
    ACTIONS(260), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(262), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12182] = 5,
    ACTIONS(1019), 1,
      anon_sym_DOLLAR,
    ACTIONS(1022), 1,
      anon_sym_DQUOTE,
    ACTIONS(1027), 1,
      anon_sym_LBRACK,
    ACTIONS(1024), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [12201] = 2,
    ACTIONS(256), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(258), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12214] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(1030), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [12233] = 2,
    ACTIONS(308), 2,
      sym__concat,
      sym_escaped_character,
    ACTIONS(310), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12246] = 2,
    ACTIONS(260), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(262), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12259] = 4,
    ACTIONS(242), 1,
      anon_sym_else,
    ACTIONS(913), 1,
      anon_sym_LPAREN,
    STATE(448), 1,
      sym_array_index,
    ACTIONS(240), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12276] = 5,
    ACTIONS(919), 1,
      anon_sym_DOLLAR,
    ACTIONS(925), 1,
      anon_sym_LBRACK,
    ACTIONS(1032), 1,
      anon_sym_DQUOTE,
    ACTIONS(947), 2,
      sym_escaped_character,
      sym__quoted_word_content,
    STATE(387), 3,
      sym_variable_substitution,
      sym_command_substitution,
      aux_sym_quoted_word_repeat1,
  [12295] = 3,
    ACTIONS(1034), 1,
      anon_sym_LPAREN,
    STATE(459), 1,
      sym_array_index,
    ACTIONS(242), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [12309] = 4,
    ACTIONS(509), 1,
      anon_sym_else,
    ACTIONS(915), 1,
      sym__concat,
    STATE(398), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(747), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12325] = 4,
    ACTIONS(905), 1,
      sym_escaped_character,
    ACTIONS(1036), 1,
      sym__concat,
    STATE(396), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(903), 4,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12341] = 2,
    ACTIONS(1041), 1,
      sym_escaped_character,
    ACTIONS(1039), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12353] = 4,
    ACTIONS(693), 1,
      anon_sym_else,
    ACTIONS(915), 1,
      sym__concat,
    STATE(401), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(862), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12369] = 4,
    ACTIONS(693), 1,
      anon_sym_else,
    ACTIONS(915), 1,
      sym__concat,
    STATE(402), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(862), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12385] = 4,
    ACTIONS(893), 1,
      sym_escaped_character,
    ACTIONS(1043), 1,
      sym__concat,
    STATE(420), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(891), 4,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12401] = 4,
    ACTIONS(627), 1,
      anon_sym_else,
    ACTIONS(1045), 1,
      sym__concat,
    STATE(401), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(629), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12417] = 4,
    ACTIONS(655), 1,
      anon_sym_else,
    ACTIONS(915), 1,
      sym__concat,
    STATE(401), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(875), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12433] = 5,
    ACTIONS(1048), 1,
      anon_sym_COLON_COLON,
    STATE(403), 1,
      aux_sym__id_immediate_repeat1,
    STATE(599), 1,
      sym__ns_delim,
    ACTIONS(226), 2,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(228), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [12451] = 2,
    ACTIONS(1053), 1,
      sym_escaped_character,
    ACTIONS(1051), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12463] = 5,
    ACTIONS(232), 1,
      sym_simple_word,
    ACTIONS(1055), 1,
      anon_sym_COLON_COLON,
    STATE(407), 1,
      aux_sym__id_immediate_repeat1,
    STATE(618), 1,
      sym__ns_delim,
    ACTIONS(230), 3,
      sym__concat,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
  [12481] = 3,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    STATE(471), 1,
      sym_array_index,
    ACTIONS(236), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [12495] = 5,
    ACTIONS(217), 1,
      sym_simple_word,
    ACTIONS(1055), 1,
      anon_sym_COLON_COLON,
    STATE(415), 1,
      aux_sym__id_immediate_repeat1,
    STATE(618), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
  [12513] = 5,
    ACTIONS(217), 1,
      sym_simple_word,
    ACTIONS(1055), 1,
      anon_sym_COLON_COLON,
    STATE(411), 1,
      aux_sym__id_immediate_repeat1,
    STATE(618), 1,
      sym__ns_delim,
    ACTIONS(215), 3,
      sym__concat,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
  [12531] = 2,
    ACTIONS(1061), 1,
      sym_escaped_character,
    ACTIONS(1059), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12543] = 3,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    STATE(500), 1,
      sym_array_index,
    ACTIONS(240), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [12557] = 5,
    ACTIONS(221), 1,
      sym_simple_word,
    ACTIONS(1055), 1,
      anon_sym_COLON_COLON,
    STATE(415), 1,
      aux_sym__id_immediate_repeat1,
    STATE(618), 1,
      sym__ns_delim,
    ACTIONS(219), 3,
      sym__concat,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
  [12575] = 2,
    ACTIONS(248), 1,
      sym_escaped_character,
    ACTIONS(250), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12587] = 3,
    ACTIONS(1034), 1,
      anon_sym_LPAREN,
    STATE(503), 1,
      sym_array_index,
    ACTIONS(238), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [12601] = 2,
    ACTIONS(1013), 1,
      anon_sym_LF,
    ACTIONS(879), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12613] = 5,
    ACTIONS(228), 1,
      sym_simple_word,
    ACTIONS(1063), 1,
      anon_sym_COLON_COLON,
    STATE(415), 1,
      aux_sym__id_immediate_repeat1,
    STATE(618), 1,
      sym__ns_delim,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
  [12631] = 2,
    ACTIONS(1068), 1,
      sym_escaped_character,
    ACTIONS(1066), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12643] = 2,
    ACTIONS(226), 2,
      anon_sym_COLON_COLON,
      anon_sym_LPAREN,
    ACTIONS(228), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [12655] = 2,
    ACTIONS(931), 1,
      anon_sym_LF,
    ACTIONS(860), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12667] = 2,
    ACTIONS(917), 1,
      anon_sym_LF,
    ACTIONS(877), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12679] = 4,
    ACTIONS(899), 1,
      sym_escaped_character,
    ACTIONS(1043), 1,
      sym__concat,
    STATE(396), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(897), 4,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12695] = 5,
    ACTIONS(773), 1,
      anon_sym_DQUOTE,
    ACTIONS(1070), 1,
      sym_simple_word,
    ACTIONS(1072), 1,
      anon_sym_LBRACE,
    ACTIONS(1074), 1,
      anon_sym_RBRACE,
    STATE(671), 3,
      sym_braced_word,
      sym__argument_word,
      sym_quoted_word,
  [12713] = 2,
    ACTIONS(248), 1,
      sym_escaped_character,
    ACTIONS(250), 6,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_simple_word,
  [12725] = 2,
    ACTIONS(256), 1,
      sym_escaped_character,
    ACTIONS(258), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12737] = 2,
    ACTIONS(264), 1,
      sym_escaped_character,
    ACTIONS(266), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12749] = 2,
    ACTIONS(260), 1,
      sym_escaped_character,
    ACTIONS(262), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12761] = 2,
    ACTIONS(268), 1,
      sym_escaped_character,
    ACTIONS(270), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12773] = 2,
    ACTIONS(244), 1,
      sym_escaped_character,
    ACTIONS(246), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12785] = 2,
    ACTIONS(1078), 1,
      sym_escaped_character,
    ACTIONS(1076), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12797] = 5,
    ACTIONS(1080), 1,
      anon_sym_COLON_COLON,
    STATE(430), 1,
      aux_sym__id_immediate_repeat1,
    STATE(599), 1,
      sym__ns_delim,
    ACTIONS(230), 2,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(232), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [12815] = 5,
    ACTIONS(1080), 1,
      anon_sym_COLON_COLON,
    STATE(403), 1,
      aux_sym__id_immediate_repeat1,
    STATE(599), 1,
      sym__ns_delim,
    ACTIONS(215), 2,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(217), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [12833] = 5,
    ACTIONS(1080), 1,
      anon_sym_COLON_COLON,
    STATE(435), 1,
      aux_sym__id_immediate_repeat1,
    STATE(599), 1,
      sym__ns_delim,
    ACTIONS(215), 2,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(217), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [12851] = 4,
    ACTIONS(1082), 1,
      anon_sym_LF,
    ACTIONS(1086), 1,
      anon_sym_elseif,
    STATE(432), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
    ACTIONS(1084), 3,
      anon_sym_SEMI,
      anon_sym_RBRACE,
      anon_sym_else,
  [12867] = 2,
    ACTIONS(252), 1,
      sym_escaped_character,
    ACTIONS(254), 6,
      sym_unpack,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12879] = 2,
    ACTIONS(957), 1,
      anon_sym_LF,
    ACTIONS(848), 6,
      anon_sym_SEMI,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [12891] = 5,
    ACTIONS(1080), 1,
      anon_sym_COLON_COLON,
    STATE(403), 1,
      aux_sym__id_immediate_repeat1,
    STATE(599), 1,
      sym__ns_delim,
    ACTIONS(219), 2,
      anon_sym_LF,
      anon_sym_LPAREN,
    ACTIONS(221), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [12909] = 2,
    ACTIONS(1053), 1,
      sym_escaped_character,
    ACTIONS(1051), 5,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12920] = 5,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1089), 1,
      sym__concat,
    STATE(522), 1,
      aux_sym__concat_word_repeat1,
    STATE(523), 1,
      sym_array_index,
    ACTIONS(747), 2,
      anon_sym_LBRACE,
      sym_simple_word,
  [12937] = 5,
    ACTIONS(937), 1,
      anon_sym_RBRACK,
    ACTIONS(1091), 1,
      anon_sym_elseif,
    ACTIONS(1093), 1,
      anon_sym_else,
    STATE(702), 1,
      sym_else,
    STATE(456), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [12954] = 2,
    ACTIONS(1078), 1,
      sym_escaped_character,
    ACTIONS(1076), 5,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [12965] = 2,
    ACTIONS(258), 1,
      anon_sym_else,
    ACTIONS(256), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12976] = 2,
    ACTIONS(266), 1,
      anon_sym_else,
    ACTIONS(264), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [12987] = 3,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    STATE(520), 1,
      sym_array_index,
    ACTIONS(629), 4,
      sym__concat,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13000] = 2,
    ACTIONS(270), 1,
      anon_sym_else,
    ACTIONS(268), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13011] = 5,
    ACTIONS(1095), 1,
      anon_sym_LF,
    ACTIONS(1099), 1,
      anon_sym_on,
    ACTIONS(1101), 1,
      anon_sym_finally,
    STATE(556), 1,
      sym_finally,
    ACTIONS(1097), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13028] = 5,
    ACTIONS(1101), 1,
      anon_sym_finally,
    ACTIONS(1103), 1,
      anon_sym_LF,
    ACTIONS(1107), 1,
      anon_sym_on,
    STATE(557), 1,
      sym_finally,
    ACTIONS(1105), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13045] = 5,
    ACTIONS(937), 1,
      anon_sym_RBRACK,
    ACTIONS(1091), 1,
      anon_sym_elseif,
    ACTIONS(1093), 1,
      anon_sym_else,
    STATE(702), 1,
      sym_else,
    STATE(450), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [13062] = 2,
    ACTIONS(250), 1,
      anon_sym_else,
    ACTIONS(248), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13073] = 2,
    ACTIONS(246), 1,
      anon_sym_else,
    ACTIONS(244), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13084] = 2,
    ACTIONS(844), 1,
      anon_sym_else,
    ACTIONS(846), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13095] = 5,
    ACTIONS(1015), 1,
      anon_sym_RBRACK,
    ACTIONS(1091), 1,
      anon_sym_elseif,
    ACTIONS(1093), 1,
      anon_sym_else,
    STATE(677), 1,
      sym_else,
    STATE(456), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [13112] = 2,
    ACTIONS(1041), 1,
      sym_escaped_character,
    ACTIONS(1039), 5,
      anon_sym_DOLLAR,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      sym_simple_word,
  [13123] = 2,
    ACTIONS(262), 1,
      anon_sym_else,
    ACTIONS(260), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13134] = 2,
    ACTIONS(627), 1,
      anon_sym_else,
    ACTIONS(629), 5,
      sym__concat,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13145] = 5,
    ACTIONS(997), 1,
      anon_sym_RBRACK,
    ACTIONS(1091), 1,
      anon_sym_elseif,
    ACTIONS(1093), 1,
      anon_sym_else,
    STATE(637), 1,
      sym_else,
    STATE(438), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [13162] = 4,
    ACTIONS(1101), 1,
      anon_sym_finally,
    ACTIONS(1109), 1,
      anon_sym_LF,
    STATE(539), 1,
      sym_finally,
    ACTIONS(1111), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13176] = 4,
    ACTIONS(1082), 1,
      anon_sym_RBRACK,
    ACTIONS(1084), 1,
      anon_sym_else,
    ACTIONS(1113), 1,
      anon_sym_elseif,
    STATE(456), 2,
      sym_elseif,
      aux_sym_conditional_repeat1,
  [13190] = 2,
    ACTIONS(228), 2,
      anon_sym_COLON_COLON,
      sym_simple_word,
    ACTIONS(226), 3,
      sym__concat,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
  [13200] = 1,
    ACTIONS(256), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13208] = 1,
    ACTIONS(246), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [13216] = 4,
    ACTIONS(1116), 1,
      sym_simple_word,
    ACTIONS(1119), 1,
      anon_sym_LBRACE,
    ACTIONS(1122), 1,
      anon_sym_RBRACE,
    STATE(460), 2,
      sym_argument,
      aux_sym_arguments_repeat1,
  [13230] = 5,
    ACTIONS(1124), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1126), 1,
      sym__ident_imm,
    ACTIONS(1128), 1,
      anon_sym_LBRACE,
    STATE(210), 1,
      sym__id_immediate,
    STATE(629), 1,
      sym__ns_delim,
  [13246] = 4,
    ACTIONS(1130), 1,
      sym_simple_word,
    ACTIONS(1132), 1,
      anon_sym_LBRACE,
    ACTIONS(1134), 1,
      anon_sym_RBRACE,
    STATE(466), 2,
      sym_argument,
      aux_sym_arguments_repeat1,
  [13260] = 5,
    ACTIONS(1136), 1,
      anon_sym_LF,
    ACTIONS(1138), 1,
      anon_sym_SEMI,
    ACTIONS(1140), 1,
      anon_sym_RBRACE,
    STATE(4), 1,
      aux_sym_braced_word_repeat1,
    STATE(467), 1,
      aux_sym_braced_word_repeat2,
  [13276] = 2,
    ACTIONS(228), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    ACTIONS(226), 3,
      anon_sym_LF,
      anon_sym_COLON_COLON,
      anon_sym_LPAREN,
  [13286] = 5,
    ACTIONS(1142), 1,
      anon_sym_LF,
    ACTIONS(1144), 1,
      anon_sym_SEMI,
    ACTIONS(1146), 1,
      anon_sym_RBRACE,
    STATE(5), 1,
      aux_sym_braced_word_repeat1,
    STATE(505), 1,
      aux_sym_braced_word_repeat2,
  [13302] = 4,
    ACTIONS(1130), 1,
      sym_simple_word,
    ACTIONS(1132), 1,
      anon_sym_LBRACE,
    ACTIONS(1148), 1,
      anon_sym_RBRACE,
    STATE(460), 2,
      sym_argument,
      aux_sym_arguments_repeat1,
  [13316] = 5,
    ACTIONS(115), 1,
      anon_sym_RBRACE,
    ACTIONS(1150), 1,
      anon_sym_LF,
    ACTIONS(1152), 1,
      anon_sym_SEMI,
    STATE(7), 1,
      aux_sym_braced_word_repeat1,
    STATE(469), 1,
      aux_sym_braced_word_repeat2,
  [13332] = 2,
    ACTIONS(848), 1,
      anon_sym_else,
    ACTIONS(957), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13342] = 5,
    ACTIONS(1154), 1,
      anon_sym_LF,
    ACTIONS(1157), 1,
      anon_sym_SEMI,
    ACTIONS(1160), 1,
      anon_sym_RBRACE,
    STATE(14), 1,
      aux_sym_braced_word_repeat1,
    STATE(469), 1,
      aux_sym_braced_word_repeat2,
  [13358] = 4,
    ACTIONS(1101), 1,
      anon_sym_finally,
    ACTIONS(1162), 1,
      anon_sym_LF,
    STATE(562), 1,
      sym_finally,
    ACTIONS(1164), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13372] = 1,
    ACTIONS(264), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13380] = 1,
    ACTIONS(260), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13388] = 5,
    ACTIONS(1166), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1168), 1,
      sym__ident_imm,
    ACTIONS(1170), 1,
      anon_sym_LBRACE,
    STATE(306), 1,
      sym__id_immediate,
    STATE(601), 1,
      sym__ns_delim,
  [13404] = 1,
    ACTIONS(268), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13412] = 5,
    ACTIONS(1172), 1,
      anon_sym_LF,
    ACTIONS(1174), 1,
      anon_sym_SEMI,
    ACTIONS(1176), 1,
      anon_sym_RBRACE,
    STATE(9), 1,
      aux_sym_braced_word_repeat1,
    STATE(478), 1,
      aux_sym_braced_word_repeat2,
  [13428] = 1,
    ACTIONS(250), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [13436] = 4,
    ACTIONS(1130), 1,
      sym_simple_word,
    ACTIONS(1132), 1,
      anon_sym_LBRACE,
    ACTIONS(1178), 1,
      anon_sym_RBRACE,
    STATE(460), 2,
      sym_argument,
      aux_sym_arguments_repeat1,
  [13450] = 5,
    ACTIONS(125), 1,
      anon_sym_RBRACE,
    ACTIONS(1180), 1,
      anon_sym_LF,
    ACTIONS(1182), 1,
      anon_sym_SEMI,
    STATE(10), 1,
      aux_sym_braced_word_repeat1,
    STATE(469), 1,
      aux_sym_braced_word_repeat2,
  [13466] = 5,
    ACTIONS(1184), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1186), 1,
      sym__ident_imm,
    ACTIONS(1188), 1,
      anon_sym_LBRACE,
    STATE(496), 1,
      sym__id_immediate,
    STATE(664), 1,
      sym__ns_delim,
  [13482] = 5,
    ACTIONS(1190), 1,
      anon_sym_LF,
    ACTIONS(1192), 1,
      anon_sym_SEMI,
    ACTIONS(1194), 1,
      anon_sym_RBRACE,
    STATE(12), 1,
      aux_sym_braced_word_repeat1,
    STATE(483), 1,
      aux_sym_braced_word_repeat2,
  [13498] = 4,
    ACTIONS(899), 1,
      anon_sym_LF,
    ACTIONS(1196), 1,
      sym__concat,
    STATE(485), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(897), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13512] = 2,
    ACTIONS(1198), 1,
      anon_sym_LF,
    ACTIONS(1200), 4,
      anon_sym_SEMI,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [13522] = 5,
    ACTIONS(131), 1,
      anon_sym_RBRACE,
    ACTIONS(1202), 1,
      anon_sym_LF,
    ACTIONS(1204), 1,
      anon_sym_SEMI,
    STATE(13), 1,
      aux_sym_braced_word_repeat1,
    STATE(469), 1,
      aux_sym_braced_word_repeat2,
  [13538] = 5,
    ACTIONS(1206), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1208), 1,
      sym__ident_imm,
    ACTIONS(1210), 1,
      anon_sym_LBRACE,
    STATE(301), 1,
      sym__id_immediate,
    STATE(704), 1,
      sym__ns_delim,
  [13554] = 4,
    ACTIONS(905), 1,
      anon_sym_LF,
    ACTIONS(1212), 1,
      sym__concat,
    STATE(485), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(903), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13568] = 2,
    ACTIONS(879), 1,
      anon_sym_else,
    ACTIONS(1013), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13578] = 5,
    ACTIONS(1215), 1,
      anon_sym_LF,
    ACTIONS(1217), 1,
      anon_sym_SEMI,
    ACTIONS(1219), 1,
      anon_sym_RBRACE,
    STATE(8), 1,
      aux_sym_braced_word_repeat1,
    STATE(489), 1,
      aux_sym_braced_word_repeat2,
  [13594] = 2,
    ACTIONS(1221), 1,
      anon_sym_LF,
    ACTIONS(1223), 4,
      anon_sym_SEMI,
      anon_sym_RBRACE,
      anon_sym_elseif,
      anon_sym_else,
  [13604] = 5,
    ACTIONS(123), 1,
      anon_sym_RBRACE,
    ACTIONS(1225), 1,
      anon_sym_LF,
    ACTIONS(1227), 1,
      anon_sym_SEMI,
    STATE(11), 1,
      aux_sym_braced_word_repeat1,
    STATE(469), 1,
      aux_sym_braced_word_repeat2,
  [13620] = 5,
    ACTIONS(1229), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1231), 1,
      sym__ident_imm,
    ACTIONS(1233), 1,
      anon_sym_LBRACE,
    STATE(406), 1,
      sym__id_immediate,
    STATE(607), 1,
      sym__ns_delim,
  [13636] = 5,
    ACTIONS(747), 1,
      anon_sym_RBRACK,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1235), 1,
      sym__concat,
    STATE(591), 1,
      aux_sym__concat_word_repeat1,
    STATE(592), 1,
      sym_array_index,
  [13652] = 5,
    ACTIONS(1237), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1239), 1,
      sym__ident_imm,
    ACTIONS(1241), 1,
      anon_sym_LBRACE,
    STATE(413), 1,
      sym__id_immediate,
    STATE(615), 1,
      sym__ns_delim,
  [13668] = 4,
    ACTIONS(1101), 1,
      anon_sym_finally,
    ACTIONS(1243), 1,
      anon_sym_LF,
    STATE(564), 1,
      sym_finally,
    ACTIONS(1245), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13682] = 5,
    ACTIONS(1247), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1249), 1,
      sym__ident_imm,
    ACTIONS(1251), 1,
      anon_sym_LBRACE,
    STATE(284), 1,
      sym__id_immediate,
    STATE(623), 1,
      sym__ns_delim,
  [13698] = 2,
    ACTIONS(877), 1,
      anon_sym_else,
    ACTIONS(917), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13708] = 4,
    ACTIONS(236), 1,
      anon_sym_LF,
    ACTIONS(1253), 1,
      anon_sym_LPAREN,
    STATE(573), 1,
      sym_array_index,
    ACTIONS(238), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13722] = 5,
    ACTIONS(1255), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1257), 1,
      sym__ident_imm,
    ACTIONS(1259), 1,
      anon_sym_LBRACE,
    STATE(35), 1,
      sym__id_immediate,
    STATE(631), 1,
      sym__ns_delim,
  [13738] = 5,
    ACTIONS(1261), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1263), 1,
      sym__ident_imm,
    ACTIONS(1265), 1,
      anon_sym_LBRACE,
    STATE(360), 1,
      sym__id_immediate,
    STATE(638), 1,
      sym__ns_delim,
  [13754] = 5,
    ACTIONS(1233), 1,
      anon_sym_LBRACE,
    ACTIONS(1261), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1263), 1,
      sym__ident_imm,
    STATE(406), 1,
      sym__id_immediate,
    STATE(638), 1,
      sym__ns_delim,
  [13770] = 1,
    ACTIONS(244), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13778] = 2,
    ACTIONS(860), 1,
      anon_sym_else,
    ACTIONS(931), 4,
      anon_sym_on,
      anon_sym_finally,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [13788] = 4,
    ACTIONS(1130), 1,
      sym_simple_word,
    ACTIONS(1132), 1,
      anon_sym_LBRACE,
    ACTIONS(1267), 1,
      anon_sym_RBRACE,
    STATE(477), 2,
      sym_argument,
      aux_sym_arguments_repeat1,
  [13802] = 1,
    ACTIONS(266), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [13810] = 4,
    ACTIONS(893), 1,
      anon_sym_LF,
    ACTIONS(1196), 1,
      sym__concat,
    STATE(481), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(891), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13824] = 5,
    ACTIONS(117), 1,
      anon_sym_RBRACE,
    ACTIONS(1269), 1,
      anon_sym_LF,
    ACTIONS(1271), 1,
      anon_sym_SEMI,
    STATE(6), 1,
      aux_sym_braced_word_repeat1,
    STATE(469), 1,
      aux_sym_braced_word_repeat2,
  [13840] = 4,
    ACTIONS(240), 1,
      anon_sym_LF,
    ACTIONS(1253), 1,
      anon_sym_LPAREN,
    STATE(558), 1,
      sym_array_index,
    ACTIONS(242), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [13854] = 5,
    ACTIONS(1273), 1,
      anon_sym_COLON_COLON,
    ACTIONS(1275), 1,
      sym__ident_imm,
    ACTIONS(1277), 1,
      anon_sym_LBRACE,
    STATE(141), 1,
      sym__id_immediate,
    STATE(680), 1,
      sym__ns_delim,
  [13870] = 1,
    ACTIONS(270), 5,
      anon_sym_DOLLAR,
      anon_sym_DQUOTE,
      sym_escaped_character,
      sym__quoted_word_content,
      anon_sym_LBRACK,
  [13878] = 1,
    ACTIONS(248), 5,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13886] = 3,
    ACTIONS(1279), 1,
      sym__concat,
    STATE(513), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(899), 2,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
  [13897] = 1,
    ACTIONS(931), 4,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13904] = 3,
    ACTIONS(1279), 1,
      sym__concat,
    STATE(510), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(893), 2,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
  [13915] = 3,
    ACTIONS(1281), 1,
      sym__concat,
    STATE(513), 1,
      aux_sym__word_simple_repeat1,
    ACTIONS(905), 2,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
  [13926] = 3,
    ACTIONS(1089), 1,
      sym__concat,
    STATE(522), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(747), 2,
      anon_sym_LBRACE,
      sym_simple_word,
  [13937] = 1,
    ACTIONS(957), 4,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13944] = 4,
    ACTIONS(1284), 1,
      sym__ident,
    ACTIONS(1286), 1,
      anon_sym_COLON_COLON2,
    ACTIONS(1288), 1,
      anon_sym_DOLLAR,
    STATE(98), 1,
      sym_id,
  [13957] = 1,
    ACTIONS(1013), 4,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13964] = 1,
    ACTIONS(629), 4,
      sym__concat,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13971] = 4,
    ACTIONS(1103), 1,
      anon_sym_RBRACK,
    ACTIONS(1290), 1,
      anon_sym_on,
    ACTIONS(1292), 1,
      anon_sym_finally,
    STATE(648), 1,
      sym_finally,
  [13984] = 1,
    ACTIONS(846), 4,
      sym__concat,
      anon_sym_LBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [13991] = 4,
    ACTIONS(1095), 1,
      anon_sym_RBRACK,
    ACTIONS(1292), 1,
      anon_sym_finally,
    ACTIONS(1294), 1,
      anon_sym_on,
    STATE(652), 1,
      sym_finally,
  [14004] = 3,
    ACTIONS(1089), 1,
      sym__concat,
    STATE(524), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(862), 2,
      anon_sym_LBRACE,
      sym_simple_word,
  [14015] = 3,
    ACTIONS(1089), 1,
      sym__concat,
    STATE(528), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(862), 2,
      anon_sym_LBRACE,
      sym_simple_word,
  [14026] = 3,
    ACTIONS(1296), 1,
      sym__concat,
    STATE(524), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(629), 2,
      anon_sym_LBRACE,
      sym_simple_word,
  [14037] = 2,
    ACTIONS(308), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(310), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14046] = 2,
    ACTIONS(903), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
    ACTIONS(905), 2,
      sym__concat,
      anon_sym_LF,
  [14055] = 4,
    ACTIONS(1299), 1,
      sym__ident,
    ACTIONS(1301), 1,
      anon_sym_COLON_COLON2,
    ACTIONS(1303), 1,
      anon_sym_DOLLAR,
    STATE(112), 1,
      sym_id,
  [14068] = 3,
    ACTIONS(1089), 1,
      sym__concat,
    STATE(524), 1,
      aux_sym__concat_word_repeat1,
    ACTIONS(875), 2,
      anon_sym_LBRACE,
      sym_simple_word,
  [14079] = 2,
    ACTIONS(312), 2,
      sym__concat,
      anon_sym_LF,
    ACTIONS(314), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14088] = 1,
    ACTIONS(917), 4,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      sym_simple_word,
  [14095] = 2,
    ACTIONS(1305), 1,
      anon_sym_LF,
    ACTIONS(762), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14103] = 2,
    ACTIONS(252), 1,
      anon_sym_LF,
    ACTIONS(254), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14111] = 2,
    ACTIONS(1307), 1,
      anon_sym_LF,
    ACTIONS(1309), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14119] = 3,
    ACTIONS(1311), 1,
      sym_simple_word,
    ACTIONS(1313), 1,
      anon_sym_LBRACE,
    STATE(247), 1,
      sym_arguments,
  [14129] = 2,
    ACTIONS(1315), 1,
      anon_sym_LF,
    ACTIONS(1317), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14137] = 2,
    ACTIONS(1319), 1,
      anon_sym_LF,
    ACTIONS(1321), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14145] = 2,
    ACTIONS(1015), 1,
      anon_sym_LF,
    ACTIONS(1017), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14153] = 2,
    ACTIONS(1323), 1,
      anon_sym_LF,
    ACTIONS(1325), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14161] = 2,
    ACTIONS(1162), 1,
      anon_sym_LF,
    ACTIONS(1164), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14169] = 2,
    ACTIONS(1327), 1,
      anon_sym_LF,
    ACTIONS(1329), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14177] = 2,
    ACTIONS(1331), 1,
      anon_sym_LF,
    ACTIONS(1333), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14185] = 2,
    ACTIONS(248), 1,
      anon_sym_LF,
    ACTIONS(250), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14193] = 1,
    ACTIONS(1335), 3,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      sym_simple_word,
  [14199] = 2,
    ACTIONS(1337), 1,
      anon_sym_LF,
    ACTIONS(1339), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14207] = 2,
    ACTIONS(937), 1,
      anon_sym_LF,
    ACTIONS(939), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14215] = 1,
    ACTIONS(905), 3,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
  [14221] = 2,
    ACTIONS(1341), 1,
      anon_sym_LF,
    ACTIONS(1343), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14229] = 3,
    ACTIONS(1109), 1,
      anon_sym_RBRACK,
    ACTIONS(1292), 1,
      anon_sym_finally,
    STATE(707), 1,
      sym_finally,
  [14239] = 2,
    ACTIONS(1345), 1,
      anon_sym_LF,
    ACTIONS(1347), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14247] = 2,
    ACTIONS(1223), 1,
      anon_sym_else,
    ACTIONS(1221), 2,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [14255] = 2,
    ACTIONS(1061), 1,
      anon_sym_LF,
    ACTIONS(1059), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14263] = 2,
    ACTIONS(1068), 1,
      anon_sym_LF,
    ACTIONS(1066), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14271] = 3,
    ACTIONS(1162), 1,
      anon_sym_RBRACK,
    ACTIONS(1292), 1,
      anon_sym_finally,
    STATE(624), 1,
      sym_finally,
  [14281] = 2,
    ACTIONS(1349), 1,
      anon_sym_LF,
    ACTIONS(1351), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14289] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(184), 1,
      sym_arguments,
  [14299] = 2,
    ACTIONS(1103), 1,
      anon_sym_LF,
    ACTIONS(1105), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14307] = 2,
    ACTIONS(1357), 1,
      anon_sym_LF,
    ACTIONS(1359), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14315] = 2,
    ACTIONS(244), 1,
      anon_sym_LF,
    ACTIONS(246), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14323] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(191), 1,
      sym_arguments,
  [14333] = 2,
    ACTIONS(1200), 1,
      anon_sym_else,
    ACTIONS(1198), 2,
      anon_sym_elseif,
      anon_sym_RBRACK,
  [14341] = 3,
    ACTIONS(1243), 1,
      anon_sym_RBRACK,
    ACTIONS(1292), 1,
      anon_sym_finally,
    STATE(650), 1,
      sym_finally,
  [14351] = 2,
    ACTIONS(1243), 1,
      anon_sym_LF,
    ACTIONS(1245), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14359] = 2,
    ACTIONS(1361), 1,
      anon_sym_LF,
    ACTIONS(1363), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14367] = 2,
    ACTIONS(1365), 1,
      anon_sym_LF,
    ACTIONS(1367), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14375] = 2,
    ACTIONS(256), 1,
      anon_sym_LF,
    ACTIONS(258), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14383] = 2,
    ACTIONS(1369), 1,
      anon_sym_LF,
    ACTIONS(1160), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14391] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(156), 1,
      sym_arguments,
  [14401] = 1,
    ACTIONS(308), 3,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
  [14407] = 2,
    ACTIONS(1371), 1,
      anon_sym_LF,
    ACTIONS(1373), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14415] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(159), 1,
      sym_arguments,
  [14425] = 2,
    ACTIONS(1375), 1,
      anon_sym_LF,
    ACTIONS(1377), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14433] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(161), 1,
      sym_arguments,
  [14443] = 2,
    ACTIONS(264), 1,
      anon_sym_LF,
    ACTIONS(266), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14451] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(163), 1,
      sym_arguments,
  [14461] = 2,
    ACTIONS(260), 1,
      anon_sym_LF,
    ACTIONS(262), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14469] = 2,
    ACTIONS(1379), 1,
      anon_sym_LF,
    ACTIONS(1381), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14477] = 1,
    ACTIONS(1383), 3,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      sym_simple_word,
  [14483] = 1,
    ACTIONS(1385), 3,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      sym_simple_word,
  [14489] = 2,
    ACTIONS(1387), 1,
      anon_sym_LF,
    ACTIONS(1389), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14497] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(196), 1,
      sym_arguments,
  [14507] = 2,
    ACTIONS(268), 1,
      anon_sym_LF,
    ACTIONS(270), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14515] = 3,
    ACTIONS(1353), 1,
      sym_simple_word,
    ACTIONS(1355), 1,
      anon_sym_LBRACE,
    STATE(164), 1,
      sym_arguments,
  [14525] = 2,
    ACTIONS(1391), 1,
      anon_sym_LF,
    ACTIONS(1393), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14533] = 1,
    ACTIONS(312), 3,
      sym__concat,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
  [14539] = 2,
    ACTIONS(1395), 1,
      anon_sym_LF,
    ACTIONS(1397), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14547] = 2,
    ACTIONS(1399), 1,
      anon_sym_LF,
    ACTIONS(1401), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14555] = 2,
    ACTIONS(1403), 1,
      anon_sym_LF,
    ACTIONS(1405), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14563] = 3,
    ACTIONS(1311), 1,
      sym_simple_word,
    ACTIONS(1313), 1,
      anon_sym_LBRACE,
    STATE(266), 1,
      sym_arguments,
  [14573] = 2,
    ACTIONS(1407), 1,
      anon_sym_LF,
    ACTIONS(550), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14581] = 3,
    ACTIONS(747), 1,
      anon_sym_RBRACK,
    ACTIONS(1235), 1,
      sym__concat,
    STATE(591), 1,
      aux_sym__concat_word_repeat1,
  [14591] = 3,
    ACTIONS(862), 1,
      anon_sym_RBRACK,
    ACTIONS(1235), 1,
      sym__concat,
    STATE(593), 1,
      aux_sym__concat_word_repeat1,
  [14601] = 3,
    ACTIONS(862), 1,
      anon_sym_RBRACK,
    ACTIONS(1235), 1,
      sym__concat,
    STATE(594), 1,
      aux_sym__concat_word_repeat1,
  [14611] = 3,
    ACTIONS(629), 1,
      anon_sym_RBRACK,
    ACTIONS(1409), 1,
      sym__concat,
    STATE(593), 1,
      aux_sym__concat_word_repeat1,
  [14621] = 3,
    ACTIONS(875), 1,
      anon_sym_RBRACK,
    ACTIONS(1235), 1,
      sym__concat,
    STATE(593), 1,
      aux_sym__concat_word_repeat1,
  [14631] = 2,
    ACTIONS(1412), 1,
      anon_sym_LF,
    ACTIONS(1414), 2,
      anon_sym_SEMI,
      anon_sym_RBRACE,
  [14639] = 2,
    ACTIONS(1416), 1,
      anon_sym_LF,
    ACTIONS(1418), 1,
      anon_sym_SEMI,
  [14646] = 1,
    ACTIONS(1420), 1,
      anon_sym_RBRACE,
  [14650] = 1,
    ACTIONS(1422), 1,
      anon_sym_error,
  [14654] = 1,
    ACTIONS(1424), 1,
      sym__ident_imm,
  [14658] = 1,
    ACTIONS(1426), 1,
      anon_sym_RBRACE,
  [14662] = 1,
    ACTIONS(1428), 1,
      sym__ident_imm,
  [14666] = 1,
    ACTIONS(1337), 1,
      anon_sym_RBRACK,
  [14670] = 1,
    ACTIONS(1430), 1,
      anon_sym_RPAREN,
  [14674] = 1,
    ACTIONS(1349), 1,
      anon_sym_RBRACK,
  [14678] = 1,
    ACTIONS(1399), 1,
      anon_sym_RBRACK,
  [14682] = 1,
    ACTIONS(1331), 1,
      anon_sym_RBRACK,
  [14686] = 1,
    ACTIONS(1432), 1,
      sym__ident_imm,
  [14690] = 1,
    ACTIONS(1434), 1,
      anon_sym_RBRACK,
  [14694] = 1,
    ACTIONS(1436), 1,
      anon_sym_RBRACK,
  [14698] = 1,
    ACTIONS(1438), 1,
      sym__ident_imm,
  [14702] = 1,
    ACTIONS(1440), 1,
      anon_sym_RBRACE,
  [14706] = 1,
    ACTIONS(1442), 1,
      anon_sym_RPAREN,
  [14710] = 1,
    ACTIONS(1444), 1,
      anon_sym_RBRACE,
  [14714] = 1,
    ACTIONS(1403), 1,
      anon_sym_RBRACK,
  [14718] = 1,
    ACTIONS(1446), 1,
      sym__ident_imm,
  [14722] = 1,
    ACTIONS(1448), 1,
      anon_sym_LPAREN2,
  [14726] = 1,
    ACTIONS(1450), 1,
      anon_sym_RBRACK,
  [14730] = 1,
    ACTIONS(1452), 1,
      sym__ident_imm,
  [14734] = 1,
    ACTIONS(1454), 1,
      anon_sym_RBRACE,
  [14738] = 1,
    ACTIONS(1456), 1,
      anon_sym_RPAREN,
  [14742] = 1,
    ACTIONS(1458), 1,
      sym__ident_imm,
  [14746] = 1,
    ACTIONS(1375), 1,
      anon_sym_RBRACK,
  [14750] = 1,
    ACTIONS(1460), 1,
      sym__ident_imm,
  [14754] = 1,
    ACTIONS(1243), 1,
      anon_sym_RBRACK,
  [14758] = 1,
    ACTIONS(1462), 1,
      anon_sym_RBRACK,
  [14762] = 1,
    ACTIONS(1464), 1,
      sym__ident_imm,
  [14766] = 1,
    ACTIONS(1305), 1,
      anon_sym_RBRACK,
  [14770] = 1,
    ACTIONS(1466), 1,
      anon_sym_RPAREN,
  [14774] = 1,
    ACTIONS(1468), 1,
      sym__ident_imm,
  [14778] = 1,
    ACTIONS(1470), 1,
      anon_sym_RBRACE,
  [14782] = 1,
    ACTIONS(1472), 1,
      sym__ident_imm,
  [14786] = 1,
    ACTIONS(1387), 1,
      anon_sym_RBRACK,
  [14790] = 1,
    ACTIONS(1474), 1,
      anon_sym_RBRACK,
  [14794] = 1,
    ACTIONS(1476), 1,
      sym__ident_imm,
  [14798] = 1,
    ACTIONS(1478), 1,
      anon_sym_RBRACE,
  [14802] = 1,
    ACTIONS(1480), 1,
      anon_sym_RPAREN,
  [14806] = 1,
    ACTIONS(937), 1,
      anon_sym_RBRACK,
  [14810] = 1,
    ACTIONS(1482), 1,
      sym__ident_imm,
  [14814] = 1,
    ACTIONS(1484), 1,
      anon_sym_RBRACK,
  [14818] = 1,
    ACTIONS(1486), 1,
      sym__ident_imm,
  [14822] = 1,
    ACTIONS(1488), 1,
      anon_sym_RBRACE,
  [14826] = 1,
    ACTIONS(1490), 1,
      anon_sym_RPAREN,
  [14830] = 1,
    ACTIONS(1492), 1,
      sym__ident_imm,
  [14834] = 1,
    ACTIONS(1494), 1,
      sym__ident_imm,
  [14838] = 1,
    ACTIONS(1496), 1,
      anon_sym_RPAREN,
  [14842] = 1,
    ACTIONS(1498), 1,
      sym__ident_imm,
  [14846] = 1,
    ACTIONS(1500), 1,
      anon_sym_RPAREN,
  [14850] = 1,
    ACTIONS(1357), 1,
      anon_sym_RBRACK,
  [14854] = 1,
    ACTIONS(1502), 1,
      sym__ident_imm,
  [14858] = 1,
    ACTIONS(1365), 1,
      anon_sym_RBRACK,
  [14862] = 1,
    ACTIONS(1504), 1,
      anon_sym_RBRACE,
  [14866] = 1,
    ACTIONS(1103), 1,
      anon_sym_RBRACK,
  [14870] = 1,
    ACTIONS(1506), 1,
      aux_sym_variable_substitution_token1,
  [14874] = 1,
    ACTIONS(1508), 1,
      anon_sym_RPAREN,
  [14878] = 1,
    ACTIONS(1391), 1,
      anon_sym_RBRACK,
  [14882] = 1,
    ACTIONS(1412), 1,
      anon_sym_RBRACK,
  [14886] = 1,
    ACTIONS(1510), 1,
      anon_sym_RBRACK,
  [14890] = 1,
    ACTIONS(1512), 1,
      aux_sym_variable_substitution_token1,
  [14894] = 1,
    ACTIONS(1514), 1,
      aux_sym_variable_substitution_token1,
  [14898] = 1,
    ACTIONS(1516), 1,
      anon_sym_RBRACK,
  [14902] = 1,
    ACTIONS(1345), 1,
      anon_sym_RBRACK,
  [14906] = 1,
    ACTIONS(1061), 1,
      anon_sym_RBRACK,
  [14910] = 1,
    ACTIONS(1371), 1,
      anon_sym_RBRACK,
  [14914] = 1,
    ACTIONS(1518), 1,
      sym__ident_imm,
  [14918] = 1,
    ACTIONS(1520), 1,
      anon_sym_RBRACK,
  [14922] = 1,
    ACTIONS(1315), 1,
      anon_sym_RBRACK,
  [14926] = 1,
    ACTIONS(1361), 1,
      anon_sym_RBRACK,
  [14930] = 1,
    ACTIONS(1522), 1,
      aux_sym_variable_substitution_token1,
  [14934] = 1,
    ACTIONS(1524), 1,
      aux_sym_variable_substitution_token1,
  [14938] = 1,
    ACTIONS(1379), 1,
      anon_sym_RBRACK,
  [14942] = 1,
    ACTIONS(1526), 1,
      anon_sym_RBRACE,
  [14946] = 1,
    ACTIONS(1528), 1,
      aux_sym_variable_substitution_token1,
  [14950] = 1,
    ACTIONS(1530), 1,
      anon_sym_RBRACK,
  [14954] = 1,
    ACTIONS(1532), 1,
      ts_builtin_sym_end,
  [14958] = 1,
    ACTIONS(1534), 1,
      aux_sym_variable_substitution_token1,
  [14962] = 1,
    ACTIONS(1068), 1,
      anon_sym_RBRACK,
  [14966] = 1,
    ACTIONS(1395), 1,
      anon_sym_RBRACK,
  [14970] = 1,
    ACTIONS(1536), 1,
      aux_sym_variable_substitution_token1,
  [14974] = 1,
    ACTIONS(1538), 1,
      sym__ident_imm,
  [14978] = 1,
    ACTIONS(1540), 1,
      sym__ident_imm,
  [14982] = 1,
    ACTIONS(1542), 1,
      aux_sym_variable_substitution_token1,
  [14986] = 1,
    ACTIONS(1544), 1,
      anon_sym_RBRACE,
  [14990] = 1,
    ACTIONS(1546), 1,
      anon_sym_RBRACE,
  [14994] = 1,
    ACTIONS(1548), 1,
      aux_sym_variable_substitution_token1,
  [14998] = 1,
    ACTIONS(1319), 1,
      anon_sym_RBRACK,
  [15002] = 1,
    ACTIONS(1550), 1,
      anon_sym_RPAREN,
  [15006] = 1,
    ACTIONS(1552), 1,
      aux_sym_variable_substitution_token1,
  [15010] = 1,
    ACTIONS(1407), 1,
      anon_sym_RBRACK,
  [15014] = 1,
    ACTIONS(1554), 1,
      anon_sym_LBRACE,
  [15018] = 1,
    ACTIONS(1556), 1,
      aux_sym_variable_substitution_token1,
  [15022] = 1,
    ACTIONS(1327), 1,
      anon_sym_RBRACK,
  [15026] = 1,
    ACTIONS(1341), 1,
      anon_sym_RBRACK,
  [15030] = 1,
    ACTIONS(1323), 1,
      anon_sym_RBRACK,
  [15034] = 1,
    ACTIONS(1558), 1,
      sym_simple_word,
  [15038] = 1,
    ACTIONS(1560), 1,
      anon_sym_RPAREN,
  [15042] = 1,
    ACTIONS(1562), 1,
      sym__ident_imm,
  [15046] = 1,
    ACTIONS(1564), 1,
      anon_sym_LPAREN2,
  [15050] = 1,
    ACTIONS(1566), 1,
      anon_sym_LBRACE,
  [15054] = 1,
    ACTIONS(1307), 1,
      anon_sym_RBRACK,
  [15058] = 1,
    ACTIONS(1568), 1,
      anon_sym_error,
  [15062] = 1,
    ACTIONS(1570), 1,
      anon_sym_error,
  [15066] = 1,
    ACTIONS(1015), 1,
      anon_sym_RBRACK,
  [15070] = 1,
    ACTIONS(1572), 1,
      anon_sym_RBRACE,
  [15074] = 1,
    ACTIONS(1574), 1,
      sym__ident_imm,
  [15078] = 1,
    ACTIONS(1576), 1,
      anon_sym_error,
  [15082] = 1,
    ACTIONS(1578), 1,
      sym__ident_imm,
  [15086] = 1,
    ACTIONS(1162), 1,
      anon_sym_RBRACK,
  [15090] = 1,
    ACTIONS(1580), 1,
      anon_sym_LPAREN2,
  [15094] = 1,
    ACTIONS(1582), 1,
      anon_sym_RPAREN,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(2)] = 0,
  [SMALL_STATE(3)] = 92,
  [SMALL_STATE(4)] = 184,
  [SMALL_STATE(5)] = 276,
  [SMALL_STATE(6)] = 368,
  [SMALL_STATE(7)] = 460,
  [SMALL_STATE(8)] = 552,
  [SMALL_STATE(9)] = 644,
  [SMALL_STATE(10)] = 736,
  [SMALL_STATE(11)] = 828,
  [SMALL_STATE(12)] = 920,
  [SMALL_STATE(13)] = 1012,
  [SMALL_STATE(14)] = 1104,
  [SMALL_STATE(15)] = 1193,
  [SMALL_STATE(16)] = 1278,
  [SMALL_STATE(17)] = 1363,
  [SMALL_STATE(18)] = 1448,
  [SMALL_STATE(19)] = 1533,
  [SMALL_STATE(20)] = 1618,
  [SMALL_STATE(21)] = 1700,
  [SMALL_STATE(22)] = 1782,
  [SMALL_STATE(23)] = 1864,
  [SMALL_STATE(24)] = 1946,
  [SMALL_STATE(25)] = 2028,
  [SMALL_STATE(26)] = 2110,
  [SMALL_STATE(27)] = 2192,
  [SMALL_STATE(28)] = 2274,
  [SMALL_STATE(29)] = 2356,
  [SMALL_STATE(30)] = 2438,
  [SMALL_STATE(31)] = 2481,
  [SMALL_STATE(32)] = 2524,
  [SMALL_STATE(33)] = 2567,
  [SMALL_STATE(34)] = 2610,
  [SMALL_STATE(35)] = 2653,
  [SMALL_STATE(36)] = 2692,
  [SMALL_STATE(37)] = 2727,
  [SMALL_STATE(38)] = 2766,
  [SMALL_STATE(39)] = 2799,
  [SMALL_STATE(40)] = 2832,
  [SMALL_STATE(41)] = 2865,
  [SMALL_STATE(42)] = 2898,
  [SMALL_STATE(43)] = 2931,
  [SMALL_STATE(44)] = 2964,
  [SMALL_STATE(45)] = 2997,
  [SMALL_STATE(46)] = 3031,
  [SMALL_STATE(47)] = 3071,
  [SMALL_STATE(48)] = 3127,
  [SMALL_STATE(49)] = 3183,
  [SMALL_STATE(50)] = 3241,
  [SMALL_STATE(51)] = 3291,
  [SMALL_STATE(52)] = 3351,
  [SMALL_STATE(53)] = 3383,
  [SMALL_STATE(54)] = 3415,
  [SMALL_STATE(55)] = 3457,
  [SMALL_STATE(56)] = 3503,
  [SMALL_STATE(57)] = 3551,
  [SMALL_STATE(58)] = 3603,
  [SMALL_STATE(59)] = 3657,
  [SMALL_STATE(60)] = 3689,
  [SMALL_STATE(61)] = 3721,
  [SMALL_STATE(62)] = 3753,
  [SMALL_STATE(63)] = 3791,
  [SMALL_STATE(64)] = 3851,
  [SMALL_STATE(65)] = 3911,
  [SMALL_STATE(66)] = 3971,
  [SMALL_STATE(67)] = 4031,
  [SMALL_STATE(68)] = 4091,
  [SMALL_STATE(69)] = 4151,
  [SMALL_STATE(70)] = 4211,
  [SMALL_STATE(71)] = 4271,
  [SMALL_STATE(72)] = 4301,
  [SMALL_STATE(73)] = 4344,
  [SMALL_STATE(74)] = 4387,
  [SMALL_STATE(75)] = 4430,
  [SMALL_STATE(76)] = 4473,
  [SMALL_STATE(77)] = 4500,
  [SMALL_STATE(78)] = 4543,
  [SMALL_STATE(79)] = 4586,
  [SMALL_STATE(80)] = 4629,
  [SMALL_STATE(81)] = 4672,
  [SMALL_STATE(82)] = 4715,
  [SMALL_STATE(83)] = 4758,
  [SMALL_STATE(84)] = 4801,
  [SMALL_STATE(85)] = 4844,
  [SMALL_STATE(86)] = 4887,
  [SMALL_STATE(87)] = 4930,
  [SMALL_STATE(88)] = 4973,
  [SMALL_STATE(89)] = 5016,
  [SMALL_STATE(90)] = 5059,
  [SMALL_STATE(91)] = 5102,
  [SMALL_STATE(92)] = 5145,
  [SMALL_STATE(93)] = 5188,
  [SMALL_STATE(94)] = 5231,
  [SMALL_STATE(95)] = 5274,
  [SMALL_STATE(96)] = 5317,
  [SMALL_STATE(97)] = 5357,
  [SMALL_STATE(98)] = 5397,
  [SMALL_STATE(99)] = 5434,
  [SMALL_STATE(100)] = 5471,
  [SMALL_STATE(101)] = 5508,
  [SMALL_STATE(102)] = 5534,
  [SMALL_STATE(103)] = 5560,
  [SMALL_STATE(104)] = 5598,
  [SMALL_STATE(105)] = 5624,
  [SMALL_STATE(106)] = 5650,
  [SMALL_STATE(107)] = 5676,
  [SMALL_STATE(108)] = 5714,
  [SMALL_STATE(109)] = 5745,
  [SMALL_STATE(110)] = 5770,
  [SMALL_STATE(111)] = 5805,
  [SMALL_STATE(112)] = 5840,
  [SMALL_STATE(113)] = 5877,
  [SMALL_STATE(114)] = 5912,
  [SMALL_STATE(115)] = 5947,
  [SMALL_STATE(116)] = 5978,
  [SMALL_STATE(117)] = 6008,
  [SMALL_STATE(118)] = 6032,
  [SMALL_STATE(119)] = 6062,
  [SMALL_STATE(120)] = 6086,
  [SMALL_STATE(121)] = 6118,
  [SMALL_STATE(122)] = 6136,
  [SMALL_STATE(123)] = 6160,
  [SMALL_STATE(124)] = 6184,
  [SMALL_STATE(125)] = 6206,
  [SMALL_STATE(126)] = 6238,
  [SMALL_STATE(127)] = 6270,
  [SMALL_STATE(128)] = 6294,
  [SMALL_STATE(129)] = 6318,
  [SMALL_STATE(130)] = 6350,
  [SMALL_STATE(131)] = 6382,
  [SMALL_STATE(132)] = 6412,
  [SMALL_STATE(133)] = 6444,
  [SMALL_STATE(134)] = 6476,
  [SMALL_STATE(135)] = 6500,
  [SMALL_STATE(136)] = 6524,
  [SMALL_STATE(137)] = 6554,
  [SMALL_STATE(138)] = 6586,
  [SMALL_STATE(139)] = 6618,
  [SMALL_STATE(140)] = 6642,
  [SMALL_STATE(141)] = 6666,
  [SMALL_STATE(142)] = 6688,
  [SMALL_STATE(143)] = 6710,
  [SMALL_STATE(144)] = 6742,
  [SMALL_STATE(145)] = 6772,
  [SMALL_STATE(146)] = 6804,
  [SMALL_STATE(147)] = 6823,
  [SMALL_STATE(148)] = 6854,
  [SMALL_STATE(149)] = 6885,
  [SMALL_STATE(150)] = 6916,
  [SMALL_STATE(151)] = 6947,
  [SMALL_STATE(152)] = 6976,
  [SMALL_STATE(153)] = 6995,
  [SMALL_STATE(154)] = 7026,
  [SMALL_STATE(155)] = 7057,
  [SMALL_STATE(156)] = 7086,
  [SMALL_STATE(157)] = 7117,
  [SMALL_STATE(158)] = 7148,
  [SMALL_STATE(159)] = 7167,
  [SMALL_STATE(160)] = 7198,
  [SMALL_STATE(161)] = 7229,
  [SMALL_STATE(162)] = 7260,
  [SMALL_STATE(163)] = 7291,
  [SMALL_STATE(164)] = 7322,
  [SMALL_STATE(165)] = 7353,
  [SMALL_STATE(166)] = 7384,
  [SMALL_STATE(167)] = 7415,
  [SMALL_STATE(168)] = 7444,
  [SMALL_STATE(169)] = 7475,
  [SMALL_STATE(170)] = 7506,
  [SMALL_STATE(171)] = 7525,
  [SMALL_STATE(172)] = 7556,
  [SMALL_STATE(173)] = 7581,
  [SMALL_STATE(174)] = 7604,
  [SMALL_STATE(175)] = 7635,
  [SMALL_STATE(176)] = 7658,
  [SMALL_STATE(177)] = 7681,
  [SMALL_STATE(178)] = 7704,
  [SMALL_STATE(179)] = 7727,
  [SMALL_STATE(180)] = 7750,
  [SMALL_STATE(181)] = 7773,
  [SMALL_STATE(182)] = 7802,
  [SMALL_STATE(183)] = 7831,
  [SMALL_STATE(184)] = 7854,
  [SMALL_STATE(185)] = 7885,
  [SMALL_STATE(186)] = 7914,
  [SMALL_STATE(187)] = 7943,
  [SMALL_STATE(188)] = 7966,
  [SMALL_STATE(189)] = 7985,
  [SMALL_STATE(190)] = 8014,
  [SMALL_STATE(191)] = 8043,
  [SMALL_STATE(192)] = 8074,
  [SMALL_STATE(193)] = 8097,
  [SMALL_STATE(194)] = 8128,
  [SMALL_STATE(195)] = 8159,
  [SMALL_STATE(196)] = 8190,
  [SMALL_STATE(197)] = 8221,
  [SMALL_STATE(198)] = 8250,
  [SMALL_STATE(199)] = 8281,
  [SMALL_STATE(200)] = 8312,
  [SMALL_STATE(201)] = 8340,
  [SMALL_STATE(202)] = 8368,
  [SMALL_STATE(203)] = 8396,
  [SMALL_STATE(204)] = 8424,
  [SMALL_STATE(205)] = 8452,
  [SMALL_STATE(206)] = 8480,
  [SMALL_STATE(207)] = 8504,
  [SMALL_STATE(208)] = 8532,
  [SMALL_STATE(209)] = 8560,
  [SMALL_STATE(210)] = 8588,
  [SMALL_STATE(211)] = 8608,
  [SMALL_STATE(212)] = 8630,
  [SMALL_STATE(213)] = 8658,
  [SMALL_STATE(214)] = 8686,
  [SMALL_STATE(215)] = 8714,
  [SMALL_STATE(216)] = 8730,
  [SMALL_STATE(217)] = 8746,
  [SMALL_STATE(218)] = 8768,
  [SMALL_STATE(219)] = 8790,
  [SMALL_STATE(220)] = 8818,
  [SMALL_STATE(221)] = 8834,
  [SMALL_STATE(222)] = 8850,
  [SMALL_STATE(223)] = 8870,
  [SMALL_STATE(224)] = 8892,
  [SMALL_STATE(225)] = 8920,
  [SMALL_STATE(226)] = 8942,
  [SMALL_STATE(227)] = 8964,
  [SMALL_STATE(228)] = 8986,
  [SMALL_STATE(229)] = 9002,
  [SMALL_STATE(230)] = 9024,
  [SMALL_STATE(231)] = 9044,
  [SMALL_STATE(232)] = 9066,
  [SMALL_STATE(233)] = 9094,
  [SMALL_STATE(234)] = 9110,
  [SMALL_STATE(235)] = 9138,
  [SMALL_STATE(236)] = 9166,
  [SMALL_STATE(237)] = 9188,
  [SMALL_STATE(238)] = 9210,
  [SMALL_STATE(239)] = 9232,
  [SMALL_STATE(240)] = 9254,
  [SMALL_STATE(241)] = 9282,
  [SMALL_STATE(242)] = 9304,
  [SMALL_STATE(243)] = 9332,
  [SMALL_STATE(244)] = 9360,
  [SMALL_STATE(245)] = 9388,
  [SMALL_STATE(246)] = 9416,
  [SMALL_STATE(247)] = 9444,
  [SMALL_STATE(248)] = 9472,
  [SMALL_STATE(249)] = 9500,
  [SMALL_STATE(250)] = 9528,
  [SMALL_STATE(251)] = 9556,
  [SMALL_STATE(252)] = 9584,
  [SMALL_STATE(253)] = 9612,
  [SMALL_STATE(254)] = 9640,
  [SMALL_STATE(255)] = 9668,
  [SMALL_STATE(256)] = 9696,
  [SMALL_STATE(257)] = 9724,
  [SMALL_STATE(258)] = 9752,
  [SMALL_STATE(259)] = 9780,
  [SMALL_STATE(260)] = 9808,
  [SMALL_STATE(261)] = 9836,
  [SMALL_STATE(262)] = 9864,
  [SMALL_STATE(263)] = 9880,
  [SMALL_STATE(264)] = 9896,
  [SMALL_STATE(265)] = 9924,
  [SMALL_STATE(266)] = 9952,
  [SMALL_STATE(267)] = 9980,
  [SMALL_STATE(268)] = 10008,
  [SMALL_STATE(269)] = 10024,
  [SMALL_STATE(270)] = 10052,
  [SMALL_STATE(271)] = 10080,
  [SMALL_STATE(272)] = 10108,
  [SMALL_STATE(273)] = 10136,
  [SMALL_STATE(274)] = 10164,
  [SMALL_STATE(275)] = 10192,
  [SMALL_STATE(276)] = 10220,
  [SMALL_STATE(277)] = 10236,
  [SMALL_STATE(278)] = 10264,
  [SMALL_STATE(279)] = 10292,
  [SMALL_STATE(280)] = 10314,
  [SMALL_STATE(281)] = 10327,
  [SMALL_STATE(282)] = 10346,
  [SMALL_STATE(283)] = 10361,
  [SMALL_STATE(284)] = 10380,
  [SMALL_STATE(285)] = 10399,
  [SMALL_STATE(286)] = 10424,
  [SMALL_STATE(287)] = 10443,
  [SMALL_STATE(288)] = 10458,
  [SMALL_STATE(289)] = 10483,
  [SMALL_STATE(290)] = 10496,
  [SMALL_STATE(291)] = 10515,
  [SMALL_STATE(292)] = 10534,
  [SMALL_STATE(293)] = 10553,
  [SMALL_STATE(294)] = 10578,
  [SMALL_STATE(295)] = 10603,
  [SMALL_STATE(296)] = 10616,
  [SMALL_STATE(297)] = 10643,
  [SMALL_STATE(298)] = 10662,
  [SMALL_STATE(299)] = 10681,
  [SMALL_STATE(300)] = 10706,
  [SMALL_STATE(301)] = 10733,
  [SMALL_STATE(302)] = 10752,
  [SMALL_STATE(303)] = 10765,
  [SMALL_STATE(304)] = 10778,
  [SMALL_STATE(305)] = 10792,
  [SMALL_STATE(306)] = 10810,
  [SMALL_STATE(307)] = 10828,
  [SMALL_STATE(308)] = 10848,
  [SMALL_STATE(309)] = 10866,
  [SMALL_STATE(310)] = 10880,
  [SMALL_STATE(311)] = 10894,
  [SMALL_STATE(312)] = 10912,
  [SMALL_STATE(313)] = 10924,
  [SMALL_STATE(314)] = 10944,
  [SMALL_STATE(315)] = 10962,
  [SMALL_STATE(316)] = 10976,
  [SMALL_STATE(317)] = 10994,
  [SMALL_STATE(318)] = 11008,
  [SMALL_STATE(319)] = 11026,
  [SMALL_STATE(320)] = 11040,
  [SMALL_STATE(321)] = 11054,
  [SMALL_STATE(322)] = 11072,
  [SMALL_STATE(323)] = 11090,
  [SMALL_STATE(324)] = 11110,
  [SMALL_STATE(325)] = 11130,
  [SMALL_STATE(326)] = 11150,
  [SMALL_STATE(327)] = 11168,
  [SMALL_STATE(328)] = 11186,
  [SMALL_STATE(329)] = 11204,
  [SMALL_STATE(330)] = 11218,
  [SMALL_STATE(331)] = 11232,
  [SMALL_STATE(332)] = 11246,
  [SMALL_STATE(333)] = 11268,
  [SMALL_STATE(334)] = 11292,
  [SMALL_STATE(335)] = 11306,
  [SMALL_STATE(336)] = 11330,
  [SMALL_STATE(337)] = 11348,
  [SMALL_STATE(338)] = 11361,
  [SMALL_STATE(339)] = 11374,
  [SMALL_STATE(340)] = 11393,
  [SMALL_STATE(341)] = 11414,
  [SMALL_STATE(342)] = 11431,
  [SMALL_STATE(343)] = 11444,
  [SMALL_STATE(344)] = 11457,
  [SMALL_STATE(345)] = 11470,
  [SMALL_STATE(346)] = 11483,
  [SMALL_STATE(347)] = 11496,
  [SMALL_STATE(348)] = 11515,
  [SMALL_STATE(349)] = 11536,
  [SMALL_STATE(350)] = 11555,
  [SMALL_STATE(351)] = 11576,
  [SMALL_STATE(352)] = 11589,
  [SMALL_STATE(353)] = 11610,
  [SMALL_STATE(354)] = 11623,
  [SMALL_STATE(355)] = 11642,
  [SMALL_STATE(356)] = 11655,
  [SMALL_STATE(357)] = 11674,
  [SMALL_STATE(358)] = 11695,
  [SMALL_STATE(359)] = 11708,
  [SMALL_STATE(360)] = 11721,
  [SMALL_STATE(361)] = 11738,
  [SMALL_STATE(362)] = 11757,
  [SMALL_STATE(363)] = 11776,
  [SMALL_STATE(364)] = 11797,
  [SMALL_STATE(365)] = 11816,
  [SMALL_STATE(366)] = 11829,
  [SMALL_STATE(367)] = 11848,
  [SMALL_STATE(368)] = 11867,
  [SMALL_STATE(369)] = 11886,
  [SMALL_STATE(370)] = 11905,
  [SMALL_STATE(371)] = 11924,
  [SMALL_STATE(372)] = 11943,
  [SMALL_STATE(373)] = 11964,
  [SMALL_STATE(374)] = 11977,
  [SMALL_STATE(375)] = 11990,
  [SMALL_STATE(376)] = 12009,
  [SMALL_STATE(377)] = 12022,
  [SMALL_STATE(378)] = 12035,
  [SMALL_STATE(379)] = 12048,
  [SMALL_STATE(380)] = 12069,
  [SMALL_STATE(381)] = 12082,
  [SMALL_STATE(382)] = 12101,
  [SMALL_STATE(383)] = 12122,
  [SMALL_STATE(384)] = 12135,
  [SMALL_STATE(385)] = 12148,
  [SMALL_STATE(386)] = 12169,
  [SMALL_STATE(387)] = 12182,
  [SMALL_STATE(388)] = 12201,
  [SMALL_STATE(389)] = 12214,
  [SMALL_STATE(390)] = 12233,
  [SMALL_STATE(391)] = 12246,
  [SMALL_STATE(392)] = 12259,
  [SMALL_STATE(393)] = 12276,
  [SMALL_STATE(394)] = 12295,
  [SMALL_STATE(395)] = 12309,
  [SMALL_STATE(396)] = 12325,
  [SMALL_STATE(397)] = 12341,
  [SMALL_STATE(398)] = 12353,
  [SMALL_STATE(399)] = 12369,
  [SMALL_STATE(400)] = 12385,
  [SMALL_STATE(401)] = 12401,
  [SMALL_STATE(402)] = 12417,
  [SMALL_STATE(403)] = 12433,
  [SMALL_STATE(404)] = 12451,
  [SMALL_STATE(405)] = 12463,
  [SMALL_STATE(406)] = 12481,
  [SMALL_STATE(407)] = 12495,
  [SMALL_STATE(408)] = 12513,
  [SMALL_STATE(409)] = 12531,
  [SMALL_STATE(410)] = 12543,
  [SMALL_STATE(411)] = 12557,
  [SMALL_STATE(412)] = 12575,
  [SMALL_STATE(413)] = 12587,
  [SMALL_STATE(414)] = 12601,
  [SMALL_STATE(415)] = 12613,
  [SMALL_STATE(416)] = 12631,
  [SMALL_STATE(417)] = 12643,
  [SMALL_STATE(418)] = 12655,
  [SMALL_STATE(419)] = 12667,
  [SMALL_STATE(420)] = 12679,
  [SMALL_STATE(421)] = 12695,
  [SMALL_STATE(422)] = 12713,
  [SMALL_STATE(423)] = 12725,
  [SMALL_STATE(424)] = 12737,
  [SMALL_STATE(425)] = 12749,
  [SMALL_STATE(426)] = 12761,
  [SMALL_STATE(427)] = 12773,
  [SMALL_STATE(428)] = 12785,
  [SMALL_STATE(429)] = 12797,
  [SMALL_STATE(430)] = 12815,
  [SMALL_STATE(431)] = 12833,
  [SMALL_STATE(432)] = 12851,
  [SMALL_STATE(433)] = 12867,
  [SMALL_STATE(434)] = 12879,
  [SMALL_STATE(435)] = 12891,
  [SMALL_STATE(436)] = 12909,
  [SMALL_STATE(437)] = 12920,
  [SMALL_STATE(438)] = 12937,
  [SMALL_STATE(439)] = 12954,
  [SMALL_STATE(440)] = 12965,
  [SMALL_STATE(441)] = 12976,
  [SMALL_STATE(442)] = 12987,
  [SMALL_STATE(443)] = 13000,
  [SMALL_STATE(444)] = 13011,
  [SMALL_STATE(445)] = 13028,
  [SMALL_STATE(446)] = 13045,
  [SMALL_STATE(447)] = 13062,
  [SMALL_STATE(448)] = 13073,
  [SMALL_STATE(449)] = 13084,
  [SMALL_STATE(450)] = 13095,
  [SMALL_STATE(451)] = 13112,
  [SMALL_STATE(452)] = 13123,
  [SMALL_STATE(453)] = 13134,
  [SMALL_STATE(454)] = 13145,
  [SMALL_STATE(455)] = 13162,
  [SMALL_STATE(456)] = 13176,
  [SMALL_STATE(457)] = 13190,
  [SMALL_STATE(458)] = 13200,
  [SMALL_STATE(459)] = 13208,
  [SMALL_STATE(460)] = 13216,
  [SMALL_STATE(461)] = 13230,
  [SMALL_STATE(462)] = 13246,
  [SMALL_STATE(463)] = 13260,
  [SMALL_STATE(464)] = 13276,
  [SMALL_STATE(465)] = 13286,
  [SMALL_STATE(466)] = 13302,
  [SMALL_STATE(467)] = 13316,
  [SMALL_STATE(468)] = 13332,
  [SMALL_STATE(469)] = 13342,
  [SMALL_STATE(470)] = 13358,
  [SMALL_STATE(471)] = 13372,
  [SMALL_STATE(472)] = 13380,
  [SMALL_STATE(473)] = 13388,
  [SMALL_STATE(474)] = 13404,
  [SMALL_STATE(475)] = 13412,
  [SMALL_STATE(476)] = 13428,
  [SMALL_STATE(477)] = 13436,
  [SMALL_STATE(478)] = 13450,
  [SMALL_STATE(479)] = 13466,
  [SMALL_STATE(480)] = 13482,
  [SMALL_STATE(481)] = 13498,
  [SMALL_STATE(482)] = 13512,
  [SMALL_STATE(483)] = 13522,
  [SMALL_STATE(484)] = 13538,
  [SMALL_STATE(485)] = 13554,
  [SMALL_STATE(486)] = 13568,
  [SMALL_STATE(487)] = 13578,
  [SMALL_STATE(488)] = 13594,
  [SMALL_STATE(489)] = 13604,
  [SMALL_STATE(490)] = 13620,
  [SMALL_STATE(491)] = 13636,
  [SMALL_STATE(492)] = 13652,
  [SMALL_STATE(493)] = 13668,
  [SMALL_STATE(494)] = 13682,
  [SMALL_STATE(495)] = 13698,
  [SMALL_STATE(496)] = 13708,
  [SMALL_STATE(497)] = 13722,
  [SMALL_STATE(498)] = 13738,
  [SMALL_STATE(499)] = 13754,
  [SMALL_STATE(500)] = 13770,
  [SMALL_STATE(501)] = 13778,
  [SMALL_STATE(502)] = 13788,
  [SMALL_STATE(503)] = 13802,
  [SMALL_STATE(504)] = 13810,
  [SMALL_STATE(505)] = 13824,
  [SMALL_STATE(506)] = 13840,
  [SMALL_STATE(507)] = 13854,
  [SMALL_STATE(508)] = 13870,
  [SMALL_STATE(509)] = 13878,
  [SMALL_STATE(510)] = 13886,
  [SMALL_STATE(511)] = 13897,
  [SMALL_STATE(512)] = 13904,
  [SMALL_STATE(513)] = 13915,
  [SMALL_STATE(514)] = 13926,
  [SMALL_STATE(515)] = 13937,
  [SMALL_STATE(516)] = 13944,
  [SMALL_STATE(517)] = 13957,
  [SMALL_STATE(518)] = 13964,
  [SMALL_STATE(519)] = 13971,
  [SMALL_STATE(520)] = 13984,
  [SMALL_STATE(521)] = 13991,
  [SMALL_STATE(522)] = 14004,
  [SMALL_STATE(523)] = 14015,
  [SMALL_STATE(524)] = 14026,
  [SMALL_STATE(525)] = 14037,
  [SMALL_STATE(526)] = 14046,
  [SMALL_STATE(527)] = 14055,
  [SMALL_STATE(528)] = 14068,
  [SMALL_STATE(529)] = 14079,
  [SMALL_STATE(530)] = 14088,
  [SMALL_STATE(531)] = 14095,
  [SMALL_STATE(532)] = 14103,
  [SMALL_STATE(533)] = 14111,
  [SMALL_STATE(534)] = 14119,
  [SMALL_STATE(535)] = 14129,
  [SMALL_STATE(536)] = 14137,
  [SMALL_STATE(537)] = 14145,
  [SMALL_STATE(538)] = 14153,
  [SMALL_STATE(539)] = 14161,
  [SMALL_STATE(540)] = 14169,
  [SMALL_STATE(541)] = 14177,
  [SMALL_STATE(542)] = 14185,
  [SMALL_STATE(543)] = 14193,
  [SMALL_STATE(544)] = 14199,
  [SMALL_STATE(545)] = 14207,
  [SMALL_STATE(546)] = 14215,
  [SMALL_STATE(547)] = 14221,
  [SMALL_STATE(548)] = 14229,
  [SMALL_STATE(549)] = 14239,
  [SMALL_STATE(550)] = 14247,
  [SMALL_STATE(551)] = 14255,
  [SMALL_STATE(552)] = 14263,
  [SMALL_STATE(553)] = 14271,
  [SMALL_STATE(554)] = 14281,
  [SMALL_STATE(555)] = 14289,
  [SMALL_STATE(556)] = 14299,
  [SMALL_STATE(557)] = 14307,
  [SMALL_STATE(558)] = 14315,
  [SMALL_STATE(559)] = 14323,
  [SMALL_STATE(560)] = 14333,
  [SMALL_STATE(561)] = 14341,
  [SMALL_STATE(562)] = 14351,
  [SMALL_STATE(563)] = 14359,
  [SMALL_STATE(564)] = 14367,
  [SMALL_STATE(565)] = 14375,
  [SMALL_STATE(566)] = 14383,
  [SMALL_STATE(567)] = 14391,
  [SMALL_STATE(568)] = 14401,
  [SMALL_STATE(569)] = 14407,
  [SMALL_STATE(570)] = 14415,
  [SMALL_STATE(571)] = 14425,
  [SMALL_STATE(572)] = 14433,
  [SMALL_STATE(573)] = 14443,
  [SMALL_STATE(574)] = 14451,
  [SMALL_STATE(575)] = 14461,
  [SMALL_STATE(576)] = 14469,
  [SMALL_STATE(577)] = 14477,
  [SMALL_STATE(578)] = 14483,
  [SMALL_STATE(579)] = 14489,
  [SMALL_STATE(580)] = 14497,
  [SMALL_STATE(581)] = 14507,
  [SMALL_STATE(582)] = 14515,
  [SMALL_STATE(583)] = 14525,
  [SMALL_STATE(584)] = 14533,
  [SMALL_STATE(585)] = 14539,
  [SMALL_STATE(586)] = 14547,
  [SMALL_STATE(587)] = 14555,
  [SMALL_STATE(588)] = 14563,
  [SMALL_STATE(589)] = 14573,
  [SMALL_STATE(590)] = 14581,
  [SMALL_STATE(591)] = 14591,
  [SMALL_STATE(592)] = 14601,
  [SMALL_STATE(593)] = 14611,
  [SMALL_STATE(594)] = 14621,
  [SMALL_STATE(595)] = 14631,
  [SMALL_STATE(596)] = 14639,
  [SMALL_STATE(597)] = 14646,
  [SMALL_STATE(598)] = 14650,
  [SMALL_STATE(599)] = 14654,
  [SMALL_STATE(600)] = 14658,
  [SMALL_STATE(601)] = 14662,
  [SMALL_STATE(602)] = 14666,
  [SMALL_STATE(603)] = 14670,
  [SMALL_STATE(604)] = 14674,
  [SMALL_STATE(605)] = 14678,
  [SMALL_STATE(606)] = 14682,
  [SMALL_STATE(607)] = 14686,
  [SMALL_STATE(608)] = 14690,
  [SMALL_STATE(609)] = 14694,
  [SMALL_STATE(610)] = 14698,
  [SMALL_STATE(611)] = 14702,
  [SMALL_STATE(612)] = 14706,
  [SMALL_STATE(613)] = 14710,
  [SMALL_STATE(614)] = 14714,
  [SMALL_STATE(615)] = 14718,
  [SMALL_STATE(616)] = 14722,
  [SMALL_STATE(617)] = 14726,
  [SMALL_STATE(618)] = 14730,
  [SMALL_STATE(619)] = 14734,
  [SMALL_STATE(620)] = 14738,
  [SMALL_STATE(621)] = 14742,
  [SMALL_STATE(622)] = 14746,
  [SMALL_STATE(623)] = 14750,
  [SMALL_STATE(624)] = 14754,
  [SMALL_STATE(625)] = 14758,
  [SMALL_STATE(626)] = 14762,
  [SMALL_STATE(627)] = 14766,
  [SMALL_STATE(628)] = 14770,
  [SMALL_STATE(629)] = 14774,
  [SMALL_STATE(630)] = 14778,
  [SMALL_STATE(631)] = 14782,
  [SMALL_STATE(632)] = 14786,
  [SMALL_STATE(633)] = 14790,
  [SMALL_STATE(634)] = 14794,
  [SMALL_STATE(635)] = 14798,
  [SMALL_STATE(636)] = 14802,
  [SMALL_STATE(637)] = 14806,
  [SMALL_STATE(638)] = 14810,
  [SMALL_STATE(639)] = 14814,
  [SMALL_STATE(640)] = 14818,
  [SMALL_STATE(641)] = 14822,
  [SMALL_STATE(642)] = 14826,
  [SMALL_STATE(643)] = 14830,
  [SMALL_STATE(644)] = 14834,
  [SMALL_STATE(645)] = 14838,
  [SMALL_STATE(646)] = 14842,
  [SMALL_STATE(647)] = 14846,
  [SMALL_STATE(648)] = 14850,
  [SMALL_STATE(649)] = 14854,
  [SMALL_STATE(650)] = 14858,
  [SMALL_STATE(651)] = 14862,
  [SMALL_STATE(652)] = 14866,
  [SMALL_STATE(653)] = 14870,
  [SMALL_STATE(654)] = 14874,
  [SMALL_STATE(655)] = 14878,
  [SMALL_STATE(656)] = 14882,
  [SMALL_STATE(657)] = 14886,
  [SMALL_STATE(658)] = 14890,
  [SMALL_STATE(659)] = 14894,
  [SMALL_STATE(660)] = 14898,
  [SMALL_STATE(661)] = 14902,
  [SMALL_STATE(662)] = 14906,
  [SMALL_STATE(663)] = 14910,
  [SMALL_STATE(664)] = 14914,
  [SMALL_STATE(665)] = 14918,
  [SMALL_STATE(666)] = 14922,
  [SMALL_STATE(667)] = 14926,
  [SMALL_STATE(668)] = 14930,
  [SMALL_STATE(669)] = 14934,
  [SMALL_STATE(670)] = 14938,
  [SMALL_STATE(671)] = 14942,
  [SMALL_STATE(672)] = 14946,
  [SMALL_STATE(673)] = 14950,
  [SMALL_STATE(674)] = 14954,
  [SMALL_STATE(675)] = 14958,
  [SMALL_STATE(676)] = 14962,
  [SMALL_STATE(677)] = 14966,
  [SMALL_STATE(678)] = 14970,
  [SMALL_STATE(679)] = 14974,
  [SMALL_STATE(680)] = 14978,
  [SMALL_STATE(681)] = 14982,
  [SMALL_STATE(682)] = 14986,
  [SMALL_STATE(683)] = 14990,
  [SMALL_STATE(684)] = 14994,
  [SMALL_STATE(685)] = 14998,
  [SMALL_STATE(686)] = 15002,
  [SMALL_STATE(687)] = 15006,
  [SMALL_STATE(688)] = 15010,
  [SMALL_STATE(689)] = 15014,
  [SMALL_STATE(690)] = 15018,
  [SMALL_STATE(691)] = 15022,
  [SMALL_STATE(692)] = 15026,
  [SMALL_STATE(693)] = 15030,
  [SMALL_STATE(694)] = 15034,
  [SMALL_STATE(695)] = 15038,
  [SMALL_STATE(696)] = 15042,
  [SMALL_STATE(697)] = 15046,
  [SMALL_STATE(698)] = 15050,
  [SMALL_STATE(699)] = 15054,
  [SMALL_STATE(700)] = 15058,
  [SMALL_STATE(701)] = 15062,
  [SMALL_STATE(702)] = 15066,
  [SMALL_STATE(703)] = 15070,
  [SMALL_STATE(704)] = 15074,
  [SMALL_STATE(705)] = 15078,
  [SMALL_STATE(706)] = 15082,
  [SMALL_STATE(707)] = 15086,
  [SMALL_STATE(708)] = 15090,
  [SMALL_STATE(709)] = 15094,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
  [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109),
  [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2),
  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(596),
  [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(248),
  [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189),
  [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155),
  [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(534),
  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136),
  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110),
  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174),
  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(265),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(507),
  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(516),
  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195),
  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197),
  [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169),
  [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(339),
  [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170),
  [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23),
  [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
  [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
  [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
  [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(109),
  [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(3),
  [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(596),
  [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(248),
  [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(189),
  [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(155),
  [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(534),
  [72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(136),
  [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(110),
  [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(174),
  [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(265),
  [84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(507),
  [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(16),
  [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(516),
  [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(195),
  [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(197),
  [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(169),
  [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(339),
  [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(170),
  [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(23),
  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
  [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(566),
  [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414),
  [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(303),
  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302),
  [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(419),
  [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(486),
  [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(517),
  [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(530),
  [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(495),
  [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(383),
  [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337),
  [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(463),
  [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418),
  [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
  [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(465),
  [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289),
  [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487),
  [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(501),
  [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(475),
  [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(511),
  [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(480),
  [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344),
  [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172),
  [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(608),
  [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242),
  [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181),
  [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190),
  [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588),
  [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(205),
  [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111),
  [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193),
  [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244),
  [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(461),
  [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
  [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(527),
  [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198),
  [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182),
  [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147),
  [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(375),
  [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290),
  [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
  [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(639),
  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665),
  [199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(660),
  [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657),
  [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(673),
  [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(609),
  [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617),
  [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(625),
  [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633),
  [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644),
  [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__id_immediate, 2, 0, 0),
  [217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__id_immediate, 2, 0, 0),
  [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__id_immediate, 3, 0, 0),
  [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__id_immediate, 3, 0, 0),
  [223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(644),
  [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0),
  [228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0),
  [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__id_immediate, 1, 0, 0),
  [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__id_immediate, 1, 0, 0),
  [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
  [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_substitution, 2, 0, 0),
  [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_substitution, 2, 0, 0),
  [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_substitution, 4, 0, 0),
  [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_substitution, 4, 0, 0),
  [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_substitution, 5, 0, 0),
  [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_substitution, 5, 0, 0),
  [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_index, 3, 0, 0),
  [250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_index, 3, 0, 0),
  [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr_atom_no_brace, 4, 0, 0),
  [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr_atom_no_brace, 4, 0, 0),
  [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoted_word, 2, 0, 0),
  [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoted_word, 2, 0, 0),
  [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoted_word, 3, 0, 0),
  [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoted_word, 3, 0, 0),
  [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_substitution, 3, 0, 0),
  [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_substitution, 3, 0, 0),
  [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_substitution, 3, 0, 0),
  [270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_substitution, 3, 0, 0),
  [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binop_expr, 3, 0, 0),
  [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
  [276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binop_expr, 3, 0, 0),
  [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
  [282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
  [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
  [286] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
  [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
  [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
  [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
  [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
  [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
  [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95),
  [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
  [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expr, 5, 0, 0),
  [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
  [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_braced_word_simple, 2, 0, 0),
  [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_braced_word_simple, 2, 0, 0),
  [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_braced_word_simple, 3, 0, 0),
  [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_braced_word_simple, 3, 0, 0),
  [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 3, 0, 0),
  [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 3, 0, 0),
  [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expr, 2, 0, 0),
  [322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expr, 2, 0, 0),
  [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
  [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
  [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
  [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
  [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662),
  [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532),
  [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551),
  [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409),
  [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433),
  [342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_braced_word_repeat1, 2, 0, 0),
  [344] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_repeat1, 2, 0, 0), SHIFT_REPEAT(71),
  [347] = {.entry = {.count = 1, .reusable = false}}, SHIFT(708),
  [349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(497),
  [351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125),
  [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57),
  [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79),
  [357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81),
  [359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(368),
  [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
  [363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
  [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
  [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
  [369] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
  [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
  [373] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
  [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
  [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
  [379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48),
  [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
  [383] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56),
  [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
  [387] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65),
  [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
  [391] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
  [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
  [395] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
  [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
  [399] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69),
  [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
  [403] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50),
  [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
  [407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
  [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
  [411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
  [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
  [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
  [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
  [419] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
  [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
  [423] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
  [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
  [427] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66),
  [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
  [431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64),
  [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
  [435] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
  [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
  [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
  [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
  [443] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58),
  [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
  [447] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
  [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
  [451] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47),
  [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
  [455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 2, 0, 2),
  [457] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249),
  [459] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 1, 0, 1),
  [461] = {.entry = {.count = 1, .reusable = false}}, SHIFT(504),
  [463] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 2, 0, 0),
  [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
  [467] = {.entry = {.count = 1, .reusable = false}}, SHIFT(484),
  [469] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132),
  [471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(361),
  [473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24),
  [475] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(109),
  [478] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0),
  [480] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(249),
  [483] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(507),
  [486] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(16),
  [489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(339),
  [492] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(170),
  [495] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(23),
  [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_word_list, 1, 0, 0),
  [500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(649),
  [502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(208),
  [504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(649),
  [507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 5, 0, 0),
  [509] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__concat_word, 1, 0, 0),
  [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235),
  [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340),
  [515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(512),
  [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278),
  [519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(499),
  [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137),
  [523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364),
  [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512),
  [527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26),
  [529] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(172),
  [532] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(208),
  [535] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(461),
  [538] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(19),
  [541] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(375),
  [544] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(290),
  [547] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0), SHIFT_REPEAT(22),
  [550] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 0),
  [552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global, 2, 0, 0),
  [554] = {.entry = {.count = 1, .reusable = false}}, SHIFT(621),
  [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_regexp, 3, 0, 0),
  [558] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(696),
  [561] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336),
  [563] = {.entry = {.count = 1, .reusable = false}}, SHIFT(494),
  [565] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120),
  [567] = {.entry = {.count = 1, .reusable = false}}, SHIFT(353),
  [569] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366),
  [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336),
  [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28),
  [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52),
  [577] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
  [579] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(621),
  [582] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_id, 3, 0, 0),
  [584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(696),
  [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_id, 3, 0, 0),
  [588] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390),
  [590] = {.entry = {.count = 1, .reusable = false}}, SHIFT(380),
  [592] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(109),
  [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0),
  [597] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(507),
  [600] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(339),
  [603] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(170),
  [606] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(23),
  [609] = {.entry = {.count = 1, .reusable = false}}, SHIFT(525),
  [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(529),
  [613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_id, 1, 0, 0),
  [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_id, 1, 0, 0),
  [617] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global, 1, 0, 0),
  [619] = {.entry = {.count = 1, .reusable = false}}, SHIFT(568),
  [621] = {.entry = {.count = 1, .reusable = false}}, SHIFT(584),
  [623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_id, 2, 0, 0),
  [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_id, 2, 0, 0),
  [627] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0),
  [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0),
  [631] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(336),
  [634] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(494),
  [637] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(120),
  [640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0),
  [642] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(366),
  [645] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(336),
  [648] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(28),
  [651] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_regexp, 4, 0, 0),
  [653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365),
  [655] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__concat_word, 3, 0, 0),
  [657] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212),
  [659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206),
  [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(209),
  [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
  [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305),
  [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(491),
  [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250),
  [671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
  [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590),
  [675] = {.entry = {.count = 1, .reusable = false}}, SHIFT(332),
  [677] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252),
  [679] = {.entry = {.count = 1, .reusable = false}}, SHIFT(498),
  [681] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
  [683] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370),
  [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395),
  [687] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21),
  [689] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch, 2, 0, 0),
  [691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305),
  [693] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__concat_word, 2, 0, 0),
  [695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253),
  [697] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254),
  [699] = {.entry = {.count = 1, .reusable = false}}, SHIFT(697),
  [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479),
  [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
  [705] = {.entry = {.count = 1, .reusable = false}}, SHIFT(552),
  [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354),
  [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
  [711] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255),
  [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243),
  [715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256),
  [717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257),
  [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259),
  [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260),
  [723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261),
  [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234),
  [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(616),
  [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473),
  [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
  [733] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416),
  [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347),
  [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
  [739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201),
  [741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(232),
  [743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245),
  [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272),
  [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__concat_word, 1, 0, 0),
  [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357),
  [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610),
  [753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(264),
  [755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(640),
  [757] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(640),
  [760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(258),
  [762] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch, 3, 0, 0),
  [764] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0), SHIFT_REPEAT(340),
  [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497),
  [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
  [771] = {.entry = {.count = 1, .reusable = false}}, SHIFT(676),
  [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368),
  [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
  [777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(202),
  [779] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(610),
  [782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246),
  [784] = {.entry = {.count = 1, .reusable = false}}, SHIFT(203),
  [786] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437),
  [788] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224),
  [790] = {.entry = {.count = 1, .reusable = false}}, SHIFT(490),
  [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514),
  [794] = {.entry = {.count = 1, .reusable = false}}, SHIFT(204),
  [796] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269),
  [798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251),
  [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
  [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382),
  [804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(634),
  [806] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(172),
  [809] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(461),
  [812] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(375),
  [815] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(290),
  [818] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regexp_repeat1, 2, 0, 0), SHIFT_REPEAT(22),
  [821] = {.entry = {.count = 1, .reusable = false}}, SHIFT(679),
  [823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(679),
  [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646),
  [828] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(634),
  [831] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(646),
  [834] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400),
  [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400),
  [838] = {.entry = {.count = 1, .reusable = false}}, SHIFT(314),
  [840] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129),
  [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314),
  [844] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__concat_word_repeat1, 3, 0, 0),
  [846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 3, 0, 0),
  [848] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_braced_word, 3, 0, 0),
  [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200),
  [852] = {.entry = {.count = 1, .reusable = false}}, SHIFT(342),
  [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342),
  [856] = {.entry = {.count = 1, .reusable = false}}, SHIFT(378),
  [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378),
  [860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_braced_word, 2, 0, 0),
  [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__concat_word, 2, 0, 0),
  [864] = {.entry = {.count = 1, .reusable = false}}, SHIFT(526),
  [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526),
  [868] = {.entry = {.count = 1, .reusable = false}}, SHIFT(546),
  [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546),
  [872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0), SHIFT_REPEAT(357),
  [875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__concat_word, 3, 0, 0),
  [877] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_braced_word, 5, 0, 0),
  [879] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_braced_word, 4, 0, 0),
  [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
  [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626),
  [885] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0), SHIFT_REPEAT(382),
  [888] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(626),
  [891] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__word_simple, 1, 0, 0),
  [893] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__word_simple, 1, 0, 0),
  [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288),
  [897] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__word_simple, 2, 0, 0),
  [899] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__word_simple, 2, 0, 0),
  [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
  [903] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0),
  [905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0),
  [907] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(299),
  [910] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(288),
  [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277),
  [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363),
  [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_braced_word, 5, 0, 0),
  [919] = {.entry = {.count = 1, .reusable = false}}, SHIFT(492),
  [921] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233),
  [923] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389),
  [925] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27),
  [927] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142),
  [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
  [931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_braced_word, 2, 0, 0),
  [933] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423),
  [935] = {.entry = {.count = 1, .reusable = false}}, SHIFT(349),
  [937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 4, 0, 5),
  [939] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional, 4, 0, 5),
  [941] = {.entry = {.count = 1, .reusable = false}}, SHIFT(167),
  [943] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168),
  [945] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425),
  [947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387),
  [949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(442),
  [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518),
  [953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(565),
  [955] = {.entry = {.count = 1, .reusable = false}}, SHIFT(356),
  [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_braced_word, 3, 0, 0),
  [959] = {.entry = {.count = 1, .reusable = false}}, SHIFT(575),
  [961] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230),
  [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304),
  [965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(388),
  [967] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362),
  [969] = {.entry = {.count = 1, .reusable = false}}, SHIFT(391),
  [971] = {.entry = {.count = 1, .reusable = false}}, SHIFT(341),
  [973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453),
  [975] = {.entry = {.count = 1, .reusable = false}}, SHIFT(458),
  [977] = {.entry = {.count = 1, .reusable = false}}, SHIFT(393),
  [979] = {.entry = {.count = 1, .reusable = false}}, SHIFT(376),
  [981] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367),
  [983] = {.entry = {.count = 1, .reusable = false}}, SHIFT(386),
  [985] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41),
  [987] = {.entry = {.count = 1, .reusable = false}}, SHIFT(369),
  [989] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
  [991] = {.entry = {.count = 1, .reusable = false}}, SHIFT(440),
  [993] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371),
  [995] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452),
  [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 3, 0, 5),
  [999] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional, 3, 0, 5),
  [1001] = {.entry = {.count = 1, .reusable = false}}, SHIFT(317),
  [1003] = {.entry = {.count = 1, .reusable = false}}, SHIFT(381),
  [1005] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_word_list_repeat1, 2, 0, 0),
  [1007] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309),
  [1009] = {.entry = {.count = 1, .reusable = false}}, SHIFT(283),
  [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358),
  [1013] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_braced_word, 4, 0, 0),
  [1015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 5, 0, 5),
  [1017] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional, 5, 0, 5),
  [1019] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_quoted_word_repeat1, 2, 0, 0), SHIFT_REPEAT(492),
  [1022] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_quoted_word_repeat1, 2, 0, 0),
  [1024] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_quoted_word_repeat1, 2, 0, 0), SHIFT_REPEAT(387),
  [1027] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_quoted_word_repeat1, 2, 0, 0), SHIFT_REPEAT(27),
  [1030] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215),
  [1032] = {.entry = {.count = 1, .reusable = false}}, SHIFT(472),
  [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275),
  [1036] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(285),
  [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 1, 0, 0),
  [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 1, 0, 0),
  [1043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285),
  [1045] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0), SHIFT_REPEAT(363),
  [1048] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(599),
  [1051] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3, 0, 0),
  [1053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3, 0, 0),
  [1055] = {.entry = {.count = 1, .reusable = false}}, SHIFT(618),
  [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
  [1059] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr, 3, 0, 0),
  [1061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 3, 0, 0),
  [1063] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__id_immediate_repeat1, 2, 0, 0), SHIFT_REPEAT(618),
  [1066] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr, 1, 0, 0),
  [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 1, 0, 0),
  [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671),
  [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
  [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577),
  [1076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2, 0, 0),
  [1078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2, 0, 0),
  [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599),
  [1082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_conditional_repeat1, 2, 0, 0),
  [1084] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_conditional_repeat1, 2, 0, 0),
  [1086] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_conditional_repeat1, 2, 0, 0), SHIFT_REPEAT(167),
  [1089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350),
  [1091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
  [1093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160),
  [1095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 2, 0, 0),
  [1097] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 2, 0, 0),
  [1099] = {.entry = {.count = 1, .reusable = false}}, SHIFT(598),
  [1101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171),
  [1103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 3, 0, 0),
  [1105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 3, 0, 0),
  [1107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(705),
  [1109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 6, 0, 0),
  [1111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 6, 0, 0),
  [1113] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_conditional_repeat1, 2, 0, 0), SHIFT_REPEAT(186),
  [1116] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(543),
  [1119] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(694),
  [1122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2, 0, 0),
  [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629),
  [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
  [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653),
  [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543),
  [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(694),
  [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428),
  [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
  [1138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
  [1140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(434),
  [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
  [1144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
  [1146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(280),
  [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404),
  [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
  [1152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7),
  [1154] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_braced_word_repeat2, 2, 0, 0), SHIFT_REPEAT(14),
  [1157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_braced_word_repeat2, 2, 0, 0), SHIFT_REPEAT(14),
  [1160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_braced_word_repeat2, 2, 0, 0),
  [1162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 7, 0, 0),
  [1164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 7, 0, 0),
  [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(601),
  [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
  [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668),
  [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
  [1174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
  [1176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(515),
  [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436),
  [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
  [1182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
  [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664),
  [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429),
  [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672),
  [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
  [1192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
  [1194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(355),
  [1196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293),
  [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif, 4, 0, 5),
  [1200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif, 4, 0, 5),
  [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
  [1204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
  [1206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704),
  [1208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
  [1210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675),
  [1212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(293),
  [1215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
  [1217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
  [1219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(468),
  [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif, 3, 0, 5),
  [1223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif, 3, 0, 5),
  [1225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
  [1227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
  [1229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607),
  [1231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405),
  [1233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678),
  [1235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379),
  [1237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615),
  [1239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323),
  [1241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681),
  [1243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 8, 0, 0),
  [1245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 8, 0, 0),
  [1247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623),
  [1249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
  [1251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684),
  [1253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274),
  [1255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631),
  [1257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [1259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687),
  [1261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638),
  [1263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
  [1265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690),
  [1267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439),
  [1269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
  [1271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6),
  [1273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680),
  [1275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
  [1277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658),
  [1279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
  [1281] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__word_simple_repeat1, 2, 0, 0), SHIFT_REPEAT(294),
  [1284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
  [1286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706),
  [1288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689),
  [1290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701),
  [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154),
  [1294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700),
  [1296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0), SHIFT_REPEAT(350),
  [1299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
  [1301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643),
  [1303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698),
  [1305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch, 3, 0, 0),
  [1307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while, 3, 0, 0),
  [1309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while, 3, 0, 0),
  [1311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451),
  [1313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502),
  [1315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 6, 0, 0),
  [1317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 6, 0, 0),
  [1319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 4, 0, 0),
  [1321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 4, 0, 0),
  [1323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else, 3, 0, 0),
  [1325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else, 3, 0, 0),
  [1327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_procedure, 5, 0, 9),
  [1329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_procedure, 5, 0, 9),
  [1331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_procedure, 4, 0, 6),
  [1333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_procedure, 4, 0, 6),
  [1335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 1, 0, 1),
  [1337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while, 4, 0, 0),
  [1339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while, 4, 0, 0),
  [1341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch, 4, 0, 0),
  [1343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch, 4, 0, 0),
  [1345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_procedure, 5, 0, 8),
  [1347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_procedure, 5, 0, 8),
  [1349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach, 4, 0, 0),
  [1351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_foreach, 4, 0, 0),
  [1353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397),
  [1355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462),
  [1357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 4, 0, 0),
  [1359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 4, 0, 0),
  [1361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally, 2, 0, 0),
  [1363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally, 2, 0, 0),
  [1365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try, 9, 0, 0),
  [1367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try, 9, 0, 0),
  [1369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_braced_word_repeat2, 2, 0, 0),
  [1371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 2, 0, 3),
  [1373] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 2, 0, 3),
  [1375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_cmd, 2, 0, 0),
  [1377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_cmd, 2, 0, 0),
  [1379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_procedure, 6, 0, 11),
  [1381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_procedure, 6, 0, 11),
  [1383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 3, 0, 7),
  [1385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 4, 0, 10),
  [1387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach, 5, 0, 0),
  [1389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_foreach, 5, 0, 0),
  [1391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally, 3, 0, 0),
  [1393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally, 3, 0, 0),
  [1395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 6, 0, 5),
  [1397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional, 6, 0, 5),
  [1399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else, 2, 0, 0),
  [1401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else, 2, 0, 0),
  [1403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace, 2, 0, 0),
  [1405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace, 2, 0, 0),
  [1407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 0),
  [1409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__concat_word_repeat1, 2, 0, 0), SHIFT_REPEAT(379),
  [1412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 3, 0, 4),
  [1414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 3, 0, 4),
  [1416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
  [1418] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76),
  [1420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
  [1422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559),
  [1424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464),
  [1426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281),
  [1428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227),
  [1430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334),
  [1432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408),
  [1434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426),
  [1436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474),
  [1438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
  [1440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
  [1442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412),
  [1444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
  [1446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
  [1448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
  [1450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508),
  [1452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457),
  [1454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394),
  [1456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542),
  [1458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
  [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
  [1462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345),
  [1464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417),
  [1466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476),
  [1468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
  [1470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311),
  [1472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
  [1474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
  [1476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319),
  [1478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
  [1480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
  [1482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238),
  [1484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443),
  [1486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287),
  [1488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392),
  [1490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422),
  [1492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218),
  [1494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
  [1496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359),
  [1498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330),
  [1500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
  [1502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
  [1504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
  [1506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703),
  [1508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
  [1510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346),
  [1512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651),
  [1514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683),
  [1516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221),
  [1518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431),
  [1520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
  [1522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630),
  [1524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613),
  [1526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(578),
  [1528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682),
  [1530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581),
  [1532] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [1534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(600),
  [1536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611),
  [1538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329),
  [1540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
  [1542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619),
  [1544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506),
  [1546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
  [1548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597),
  [1550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509),
  [1552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635),
  [1554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669),
  [1556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641),
  [1558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421),
  [1560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263),
  [1562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220),
  [1564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
  [1566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659),
  [1568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(572),
  [1570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574),
  [1572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222),
  [1574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
  [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580),
  [1578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
  [1580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
  [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374),
};

enum ts_external_scanner_symbol_identifiers {
  ts_external_token__concat = 0,
  ts_external_token__immediate = 1,
};

static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
  [ts_external_token__concat] = sym__concat,
  [ts_external_token__immediate] = sym__immediate,
};

static const bool ts_external_scanner_states[3][EXTERNAL_TOKEN_COUNT] = {
  [1] = {
    [ts_external_token__concat] = true,
    [ts_external_token__immediate] = true,
  },
  [2] = {
    [ts_external_token__concat] = true,
  },
};

#ifdef __cplusplus
extern "C" {
#endif
void *tree_sitter_tcl_external_scanner_create(void);
void tree_sitter_tcl_external_scanner_destroy(void *);
bool tree_sitter_tcl_external_scanner_scan(void *, TSLexer *, const bool *);
unsigned tree_sitter_tcl_external_scanner_serialize(void *, char *);
void tree_sitter_tcl_external_scanner_deserialize(void *, const char *, unsigned);

#ifdef TREE_SITTER_HIDE_SYMBOLS
#define TS_PUBLIC
#elif defined(_WIN32)
#define TS_PUBLIC __declspec(dllexport)
#else
#define TS_PUBLIC __attribute__((visibility("default")))
#endif

TS_PUBLIC const TSLanguage *tree_sitter_tcl(void) {
  static const TSLanguage language = {
    .version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = ts_lex_modes,
    .lex_fn = ts_lex,
    .keyword_lex_fn = ts_lex_keywords,
    .keyword_capture_token = sym_simple_word,
    .external_scanner = {
      &ts_external_scanner_states[0][0],
      ts_external_scanner_symbol_map,
      tree_sitter_tcl_external_scanner_create,
      tree_sitter_tcl_external_scanner_destroy,
      tree_sitter_tcl_external_scanner_scan,
      tree_sitter_tcl_external_scanner_serialize,
      tree_sitter_tcl_external_scanner_deserialize,
    },
    .primary_state_ids = ts_primary_state_ids,
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
07070100000039000081A4000000000000000000000001672A2240000003A5000000000000000000000000000000000000003100000000tree-sitter-tcl-0+20241105.98015eb/src/scanner.c#include "tree_sitter/parser.h"
#include <wctype.h>

enum TokenType {
  CONCAT,
  IMMEDIATE
};

void *tree_sitter_tcl_external_scanner_create() {
  return NULL;
}

bool tree_sitter_tcl_external_scanner_scan(void *payload, TSLexer *lexer,
                                          const bool *valid_symbols) {
  int32_t c = lexer->lookahead;

  if (valid_symbols[IMMEDIATE] && !iswspace(c)) {
    lexer->result_symbol = IMMEDIATE;
    return false;
  }

  if (valid_symbols[CONCAT] && (
        !iswspace(c) &&
        c != ')' &&
        c != ':' &&
        c != '}' &&
        c != ']')) {
    lexer->result_symbol = CONCAT;
    return true;
  }

  return false;
}

unsigned tree_sitter_tcl_external_scanner_serialize(void *payload, char *state) {
  return 0;
}

void tree_sitter_tcl_external_scanner_deserialize(void *payload, const char *state, unsigned length){ }

void tree_sitter_tcl_external_scanner_destroy(void *payload) {}
0707010000003A000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000003300000000tree-sitter-tcl-0+20241105.98015eb/src/tree_sitter0707010000003B000081A4000000000000000000000001672A2240000003D9000000000000000000000000000000000000003B00000000tree-sitter-tcl-0+20241105.98015eb/src/tree_sitter/alloc.h#ifndef TREE_SITTER_ALLOC_H_
#define TREE_SITTER_ALLOC_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

// Allow clients to override allocation functions
#ifdef TREE_SITTER_REUSE_ALLOCATOR

extern void *(*ts_current_malloc)(size_t 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_
0707010000003C000081A4000000000000000000000001672A2240000028B4000000000000000000000000000000000000003B00000000tree-sitter-tcl-0+20241105.98015eb/src/tree_sitter/array.h#ifndef TREE_SITTER_ARRAY_H_
#define TREE_SITTER_ARRAY_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "./alloc.h"

#include <assert.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>

#ifdef _MSC_VER
#pragma warning(disable : 4101)
#elif defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
#endif

#define Array(T)       \
  struct {             \
    T *contents;       \
    uint32_t size;     \
    uint32_t capacity; \
  }

/// Initialize an array.
#define array_init(self) \
  ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL)

/// Create an empty array.
#define array_new() \
  { NULL, 0, 0 }

/// Get a pointer to the element at a given `index` in the array.
#define array_get(self, _index) \
  (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index])

/// Get a pointer to the first element in the array.
#define array_front(self) array_get(self, 0)

/// Get a pointer to the last element in the array.
#define array_back(self) array_get(self, (self)->size - 1)

/// Clear the array, setting its size to zero. Note that this does not free any
/// memory allocated for the array's contents.
#define array_clear(self) ((self)->size = 0)

/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is
/// less than the array's current capacity, this function has no effect.
#define array_reserve(self, new_capacity) \
  _array__reserve((Array *)(self), array_elem_size(self), new_capacity)

/// Free any memory allocated for this array. Note that this does not free any
/// memory allocated for the array's contents.
#define array_delete(self) _array__delete((Array *)(self))

/// Push a new `element` onto the end of the array.
#define array_push(self, element)                            \
  (_array__grow((Array *)(self), 1, array_elem_size(self)), \
   (self)->contents[(self)->size++] = (element))

/// Increase the array's size by `count` elements.
/// New elements are zero-initialized.
#define array_grow_by(self, count) \
  do { \
    if ((count) == 0) break; \
    _array__grow((Array *)(self), count, array_elem_size(self)); \
    memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \
    (self)->size += (count); \
  } while (0)

/// Append all elements from one array to the end of another.
#define array_push_all(self, other)                                       \
  array_extend((self), (other)->size, (other)->contents)

/// Append `count` elements to the end of the array, reading their values from the
/// `contents` pointer.
#define array_extend(self, count, contents)                    \
  _array__splice(                                               \
    (Array *)(self), array_elem_size(self), (self)->size, \
    0, count,  contents                                        \
  )

/// Remove `old_count` elements from the array starting at the given `index`. At
/// the same index, insert `new_count` new elements, reading their values from the
/// `new_contents` pointer.
#define array_splice(self, _index, old_count, new_count, new_contents)  \
  _array__splice(                                                       \
    (Array *)(self), array_elem_size(self), _index,                \
    old_count, new_count, new_contents                                 \
  )

/// Insert one `element` into the array at the given `index`.
#define array_insert(self, _index, element) \
  _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element))

/// Remove one element from the array at the given `index`.
#define array_erase(self, _index) \
  _array__erase((Array *)(self), array_elem_size(self), _index)

/// Pop the last element off the array, returning the element by value.
#define array_pop(self) ((self)->contents[--(self)->size])

/// Assign the contents of one array to another, reallocating if necessary.
#define array_assign(self, other) \
  _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self))

/// Swap one array with another
#define array_swap(self, other) \
  _array__swap((Array *)(self), (Array *)(other))

/// Get the size of the array contents
#define array_elem_size(self) (sizeof *(self)->contents)

/// Search a sorted array for a given `needle` value, using the given `compare`
/// callback to determine the order.
///
/// If an existing element is found to be equal to `needle`, then the `index`
/// out-parameter is set to the existing value's index, and the `exists`
/// out-parameter is set to true. Otherwise, `index` is set to an index where
/// `needle` should be inserted in order to preserve the sorting, and `exists`
/// is set to false.
#define array_search_sorted_with(self, compare, needle, _index, _exists) \
  _array__search_sorted(self, 0, compare, , needle, _index, _exists)

/// Search a sorted array for a given `needle` value, using integer comparisons
/// of a given struct field (specified with a leading dot) to determine the order.
///
/// See also `array_search_sorted_with`.
#define array_search_sorted_by(self, field, needle, _index, _exists) \
  _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists)

/// Insert a given `value` into a sorted array, using the given `compare`
/// callback to determine the order.
#define array_insert_sorted_with(self, compare, value) \
  do { \
    unsigned _index, _exists; \
    array_search_sorted_with(self, compare, &(value), &_index, &_exists); \
    if (!_exists) array_insert(self, _index, value); \
  } while (0)

/// Insert a given `value` into a sorted array, using integer comparisons of
/// a given struct field (specified with a leading dot) to determine the order.
///
/// See also `array_search_sorted_by`.
#define array_insert_sorted_by(self, field, value) \
  do { \
    unsigned _index, _exists; \
    array_search_sorted_by(self, field, (value) field, &_index, &_exists); \
    if (!_exists) array_insert(self, _index, value); \
  } while (0)

// Private

typedef Array(void) Array;

/// This is not what you're looking for, see `array_delete`.
static inline void _array__delete(Array *self) {
  if (self->contents) {
    ts_free(self->contents);
    self->contents = NULL;
    self->size = 0;
    self->capacity = 0;
  }
}

/// This is not what you're looking for, see `array_erase`.
static inline void _array__erase(Array *self, size_t element_size,
                                uint32_t index) {
  assert(index < self->size);
  char *contents = (char *)self->contents;
  memmove(contents + index * element_size, contents + (index + 1) * element_size,
          (self->size - index - 1) * element_size);
  self->size--;
}

/// This is not what you're looking for, see `array_reserve`.
static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) {
  if (new_capacity > self->capacity) {
    if (self->contents) {
      self->contents = ts_realloc(self->contents, new_capacity * element_size);
    } else {
      self->contents = ts_malloc(new_capacity * element_size);
    }
    self->capacity = new_capacity;
  }
}

/// This is not what you're looking for, see `array_assign`.
static inline void _array__assign(Array *self, const Array *other, size_t element_size) {
  _array__reserve(self, element_size, other->size);
  self->size = other->size;
  memcpy(self->contents, other->contents, self->size * element_size);
}

/// This is not what you're looking for, see `array_swap`.
static inline void _array__swap(Array *self, Array *other) {
  Array swap = *other;
  *other = *self;
  *self = swap;
}

/// This is not what you're looking for, see `array_push` or `array_grow_by`.
static inline void _array__grow(Array *self, uint32_t count, size_t element_size) {
  uint32_t new_size = self->size + count;
  if (new_size > self->capacity) {
    uint32_t new_capacity = self->capacity * 2;
    if (new_capacity < 8) new_capacity = 8;
    if (new_capacity < new_size) new_capacity = new_size;
    _array__reserve(self, element_size, new_capacity);
  }
}

/// This is not what you're looking for, see `array_splice`.
static inline void _array__splice(Array *self, size_t element_size,
                                 uint32_t index, uint32_t old_count,
                                 uint32_t new_count, const void *elements) {
  uint32_t new_size = self->size + new_count - old_count;
  uint32_t old_end = index + old_count;
  uint32_t new_end = index + new_count;
  assert(old_end <= self->size);

  _array__reserve(self, element_size, new_size);

  char *contents = (char *)self->contents;
  if (self->size > old_end) {
    memmove(
      contents + new_end * element_size,
      contents + old_end * element_size,
      (self->size - old_end) * element_size
    );
  }
  if (new_count > 0) {
    if (elements) {
      memcpy(
        (contents + index * element_size),
        elements,
        new_count * element_size
      );
    } else {
      memset(
        (contents + index * element_size),
        0,
        new_count * element_size
      );
    }
  }
  self->size += new_count - old_count;
}

/// A binary search routine, based on Rust's `std::slice::binary_search_by`.
/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`.
#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \
  do { \
    *(_index) = start; \
    *(_exists) = false; \
    uint32_t size = (self)->size - *(_index); \
    if (size == 0) break; \
    int comparison; \
    while (size > 1) { \
      uint32_t half_size = size / 2; \
      uint32_t mid_index = *(_index) + half_size; \
      comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \
      if (comparison <= 0) *(_index) = mid_index; \
      size -= half_size; \
    } \
    comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \
    if (comparison == 0) *(_exists) = true; \
    else if (comparison < 0) *(_index) += 1; \
  } while (0)

/// Helper macro for the `_sorted_by` routines below. This takes the left (existing)
/// parameter by reference in order to work with the generic sorting function above.
#define _compare_int(a, b) ((int)*(a) - (int)(b))

#ifdef _MSC_VER
#pragma warning(default : 4101)
#elif defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif

#ifdef __cplusplus
}
#endif

#endif  // TREE_SITTER_ARRAY_H_
0707010000003D000081A4000000000000000000000001672A224000001B7F000000000000000000000000000000000000003C00000000tree-sitter-tcl-0+20241105.98015eb/src/tree_sitter/parser.h#ifndef TREE_SITTER_PARSER_H_
#define TREE_SITTER_PARSER_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

#define ts_builtin_sym_error ((TSSymbol)-1)
#define ts_builtin_sym_end 0
#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024

#ifndef TREE_SITTER_API_H_
typedef uint16_t TSStateId;
typedef uint16_t TSSymbol;
typedef uint16_t TSFieldId;
typedef struct TSLanguage TSLanguage;
#endif

typedef struct {
  TSFieldId field_id;
  uint8_t child_index;
  bool inherited;
} TSFieldMapEntry;

typedef struct {
  uint16_t index;
  uint16_t length;
} TSFieldMapSlice;

typedef struct {
  bool visible;
  bool named;
  bool supertype;
} TSSymbolMetadata;

typedef struct TSLexer TSLexer;

struct TSLexer {
  int32_t lookahead;
  TSSymbol result_symbol;
  void (*advance)(TSLexer *, bool);
  void (*mark_end)(TSLexer *);
  uint32_t (*get_column)(TSLexer *);
  bool (*is_at_included_range_start)(const TSLexer *);
  bool (*eof)(const TSLexer *);
  void (*log)(const TSLexer *, const char *, ...);
};

typedef enum {
  TSParseActionTypeShift,
  TSParseActionTypeReduce,
  TSParseActionTypeAccept,
  TSParseActionTypeRecover,
} TSParseActionType;

typedef union {
  struct {
    uint8_t type;
    TSStateId state;
    bool extra;
    bool repetition;
  } shift;
  struct {
    uint8_t type;
    uint8_t child_count;
    TSSymbol symbol;
    int16_t dynamic_precedence;
    uint16_t production_id;
  } reduce;
  uint8_t type;
} TSParseAction;

typedef struct {
  uint16_t lex_state;
  uint16_t external_lex_state;
} TSLexMode;

typedef union {
  TSParseAction action;
  struct {
    uint8_t count;
    bool reusable;
  } entry;
} TSParseActionEntry;

typedef struct {
  int32_t start;
  int32_t end;
} TSCharacterRange;

struct TSLanguage {
  uint32_t version;
  uint32_t symbol_count;
  uint32_t alias_count;
  uint32_t token_count;
  uint32_t external_token_count;
  uint32_t state_count;
  uint32_t large_state_count;
  uint32_t production_id_count;
  uint32_t field_count;
  uint16_t max_alias_sequence_length;
  const uint16_t *parse_table;
  const uint16_t *small_parse_table;
  const uint32_t *small_parse_table_map;
  const TSParseActionEntry *parse_actions;
  const char * const *symbol_names;
  const char * const *field_names;
  const TSFieldMapSlice *field_map_slices;
  const TSFieldMapEntry *field_map_entries;
  const TSSymbolMetadata *symbol_metadata;
  const TSSymbol *public_symbol_map;
  const uint16_t *alias_map;
  const TSSymbol *alias_sequences;
  const TSLexMode *lex_modes;
  bool (*lex_fn)(TSLexer *, TSStateId);
  bool (*keyword_lex_fn)(TSLexer *, TSStateId);
  TSSymbol keyword_capture_token;
  struct {
    const bool *states;
    const TSSymbol *symbol_map;
    void *(*create)(void);
    void (*destroy)(void *);
    bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist);
    unsigned (*serialize)(void *, char *);
    void (*deserialize)(void *, const char *, unsigned);
  } external_scanner;
  const TSStateId *primary_state_ids;
};

static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) {
  uint32_t index = 0;
  uint32_t size = len - index;
  while (size > 1) {
    uint32_t half_size = size / 2;
    uint32_t mid_index = index + half_size;
    TSCharacterRange *range = &ranges[mid_index];
    if (lookahead >= range->start && lookahead <= range->end) {
      return true;
    } else if (lookahead > range->end) {
      index = mid_index;
    }
    size -= half_size;
  }
  TSCharacterRange *range = &ranges[index];
  return (lookahead >= range->start && lookahead <= range->end);
}

/*
 *  Lexer Macros
 */

#ifdef _MSC_VER
#define UNUSED __pragma(warning(suppress : 4101))
#else
#define UNUSED __attribute__((unused))
#endif

#define START_LEXER()           \
  bool result = false;          \
  bool skip = false;            \
  UNUSED                        \
  bool eof = false;             \
  int32_t lookahead;            \
  goto start;                   \
  next_state:                   \
  lexer->advance(lexer, skip);  \
  start:                        \
  skip = false;                 \
  lookahead = lexer->lookahead;

#define ADVANCE(state_value) \
  {                          \
    state = state_value;     \
    goto next_state;         \
  }

#define ADVANCE_MAP(...)                                              \
  {                                                                   \
    static const uint16_t map[] = { __VA_ARGS__ };                    \
    for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) {  \
      if (map[i] == lookahead) {                                      \
        state = map[i + 1];                                           \
        goto next_state;                                              \
      }                                                               \
    }                                                                 \
  }

#define SKIP(state_value) \
  {                       \
    skip = true;          \
    state = state_value;  \
    goto next_state;      \
  }

#define ACCEPT_TOKEN(symbol_value)     \
  result = true;                       \
  lexer->result_symbol = symbol_value; \
  lexer->mark_end(lexer);

#define END_STATE() return result;

/*
 *  Parse Table Macros
 */

#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT)

#define STATE(id) id

#define ACTIONS(id) id

#define SHIFT(state_value)            \
  {{                                  \
    .shift = {                        \
      .type = TSParseActionTypeShift, \
      .state = (state_value)          \
    }                                 \
  }}

#define SHIFT_REPEAT(state_value)     \
  {{                                  \
    .shift = {                        \
      .type = TSParseActionTypeShift, \
      .state = (state_value),         \
      .repetition = true              \
    }                                 \
  }}

#define SHIFT_EXTRA()                 \
  {{                                  \
    .shift = {                        \
      .type = TSParseActionTypeShift, \
      .extra = true                   \
    }                                 \
  }}

#define REDUCE(symbol_name, children, precedence, prod_id) \
  {{                                                       \
    .reduce = {                                            \
      .type = TSParseActionTypeReduce,                     \
      .symbol = symbol_name,                               \
      .child_count = children,                             \
      .dynamic_precedence = precedence,                    \
      .production_id = prod_id                             \
    },                                                     \
  }}

#define RECOVER()                    \
  {{                                 \
    .type = TSParseActionTypeRecover \
  }}

#define ACCEPT_INPUT()              \
  {{                                \
    .type = TSParseActionTypeAccept \
  }}

#ifdef __cplusplus
}
#endif

#endif  // TREE_SITTER_PARSER_H_
0707010000003E000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002800000000tree-sitter-tcl-0+20241105.98015eb/test0707010000003F000041ED000000000000000000000002672A224000000000000000000000000000000000000000000000002F00000000tree-sitter-tcl-0+20241105.98015eb/test/corpus07070100000040000081A4000000000000000000000001672A224000002412000000000000000000000000000000000000003800000000tree-sitter-tcl-0+20241105.98015eb/test/corpus/test.txt
================================================================================
Commands
================================================================================

echo "hello"

set hi "heelo"

--------------------------------------------------------------------------------

(source_file
  (command
    (simple_word)
    (word_list
      (quoted_word)))
  (set
    (id)
    (quoted_word)))

================================================================================
Procedures
================================================================================

proc foo {arg1 arg2} {
    echo "hello"
    echo "word$hi \$bye word"
}

--------------------------------------------------------------------------------

(source_file
  (procedure
    (simple_word)
    (arguments
      (argument
        (simple_word))
      (argument
        (simple_word)))
    (braced_word
      (command
        (simple_word)
        (word_list
          (quoted_word)))
      (command
        (simple_word)
        (word_list
          (quoted_word
            (variable_substitution
              (id))
            (escaped_character)))))))

================================================================================
Comments
================================================================================

# this is a comment

--------------------------------------------------------------------------------

(source_file
  (comment))

================================================================================
Foreach
================================================================================

foreach a {1 2 3 4 5} {
    put $i
}

--------------------------------------------------------------------------------

(source_file
  (foreach
    (arguments
      (simple_word))
    (braced_word_simple
      (simple_word)
      (simple_word)
      (simple_word)
      (simple_word)
      (simple_word))
    (braced_word
      (command
        (simple_word)
        (word_list
          (variable_substitution
            (id)))))))

================================================================================
Conditionals
================================================================================

if $hello {
    echo hi
} elseif $hello {
    echo hi
} else {
    echo bye
}

--------------------------------------------------------------------------------

(source_file
  (conditional
    (expr
      (variable_substitution
        (id)))
    (braced_word
      (command
        (simple_word)
        (word_list
          (simple_word))))
    (elseif
      (expr
        (variable_substitution
          (id)))
      (braced_word
        (command
          (simple_word)
          (word_list
            (simple_word)))))
    (else
      (braced_word
        (command
          (simple_word)
          (word_list
            (simple_word)))))))

================================================================================
Command substitution
================================================================================

echo [echo hello]

--------------------------------------------------------------------------------

(source_file
  (command
    (simple_word)
    (word_list
      (command_substitution
        (command
          (simple_word)
          (word_list
            (simple_word)))))))

================================================================================
Escaped string
================================================================================

echo "word$hi \$bye word"

--------------------------------------------------------------------------------

(source_file
  (command
    (simple_word)
    (word_list
      (quoted_word
        (variable_substitution
          (id))
        (escaped_character)))))

================================================================================
Slash in string
================================================================================

set dir $build_dir/subdir

--------------------------------------------------------------------------------

(source_file
  (set
    (id)
      (variable_substitution
        (id))
      (simple_word)))

================================================================================
Curly in string
================================================================================

set v $a{b}

--------------------------------------------------------------------------------

(source_file
  (set
    (id)
      (variable_substitution
        (id))
      (braced_word_simple
        (simple_word))))


================================================================================
Regexp
================================================================================

regexp {\d} $var m b

--------------------------------------------------------------------------------

(source_file
  (regexp
    (braced_word_simple
        (escaped_character))
    (variable_substitution
      (id))
    (simple_word)
    (simple_word)))


================================================================================
Expr 'in'
================================================================================

if {$foo in {"basic"}} {}

if {{foo} in {basic}} {}

--------------------------------------------------------------------------------

(source_file
  (conditional
    (expr
      (binop_expr
        (variable_substitution
          (id))
        (braced_word_simple
          (quoted_word))))
        (braced_word))
      (conditional
        (expr
          (binop_expr
            (braced_word_simple
              (simple_word))
            (braced_word_simple
              (simple_word))))
    (braced_word)))

================================================================================
Expr eq and &&
================================================================================

expr {$var eq "sec" && $bar}

--------------------------------------------------------------------------------

(source_file
  (expr_cmd
    (expr
      (binop_expr
        (binop_expr
          (variable_substitution
            (id))
          (quoted_word))
        (variable_substitution
          (id))))))

================================================================================
Set array
================================================================================

set foo($i) 1

--------------------------------------------------------------------------------

(source_file
  (set
    (id)
    (array_index
      (variable_substitution
        (id)))
    (simple_word)))


================================================================================
Namespace id
================================================================================

set a $::var
set a $::var::sub

--------------------------------------------------------------------------------

(source_file
  (set (id) (variable_substitution (id)))
  (set (id) (variable_substitution (id)))
)

================================================================================
Empty statement block
================================================================================

if {1} {
}

if {1} {
}


--------------------------------------------------------------------------------
(source_file
  (conditional
    (expr)
    (braced_word))
  (conditional
    (expr)
    (braced_word))
)


================================================================================
Command with no terminator
================================================================================

baz {foo}

baz {foo
foo}

--------------------------------------------------------------------------------

(source_file
  (command
    (simple_word)
    (word_list
      (braced_word
        (command
          (simple_word)))))
  (command
    (simple_word)
    (word_list
      (braced_word
        (command
          (simple_word))
        (command
          (simple_word))))))

================================================================================
Command with trailing terminator
================================================================================

baz {
    aa
    ;
}

--------------------------------------------------------------------------------

(source_file
  (command
    (simple_word)
    (word_list
      (braced_word
        (command
          (simple_word))))))

================================================================================
Command with middle terminator
================================================================================

baz {
    aa
    ;
    aa
}

--------------------------------------------------------------------------------

(source_file
  (command
    (simple_word)
    (word_list
      (braced_word
        (command
          (simple_word))
        (command
          (simple_word))))))

================================================================================
Comment in namespace
================================================================================

namespace eval ::ns {
    # command
}

--------------------------------------------------------------------------------

(source_file
  (namespace
    (word_list
      (simple_word)
      (simple_word)
      (braced_word
        (comment)))))
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!1210 blocks
openSUSE Build Service is sponsored by