/* Automatically @generated by tree-sitter */

#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 438
#define LARGE_STATE_COUNT 45
#define SYMBOL_COUNT 105
#define ALIAS_COUNT 0
#define TOKEN_COUNT 56
#define EXTERNAL_TOKEN_COUNT 3
#define FIELD_COUNT 9
#define MAX_ALIAS_SEQUENCE_LENGTH 7
#define MAX_RESERVED_WORD_SET_SIZE 0
#define PRODUCTION_ID_COUNT 18
#define SUPERTYPE_COUNT 0

enum ts_symbol_identifiers {
  sym_word = 1,
  anon_sym_and = 2,
  anon_sym_or = 3,
  anon_sym_PIPE_PIPE = 4,
  anon_sym_AMP_AMP = 5,
  anon_sym_AMP_PIPE = 6,
  anon_sym_2_GT_PIPE = 7,
  anon_sym_PIPE = 8,
  anon_sym_SEMI = 9,
  anon_sym_AMP = 10,
  anon_sym_LF = 11,
  anon_sym_CR = 12,
  anon_sym_CR_LF = 13,
  anon_sym_BANG = 14,
  anon_sym_not = 15,
  anon_sym_DOLLAR = 16,
  anon_sym_LPAREN = 17,
  anon_sym_RPAREN = 18,
  anon_sym_function = 19,
  anon_sym_end = 20,
  sym_integer = 21,
  sym_float = 22,
  anon_sym_return = 23,
  anon_sym_switch = 24,
  anon_sym_case = 25,
  sym_break = 26,
  sym_continue = 27,
  anon_sym_for = 28,
  anon_sym_in = 29,
  anon_sym_while = 30,
  anon_sym_if = 31,
  anon_sym_else = 32,
  anon_sym_begin = 33,
  sym_comment = 34,
  sym_variable_name = 35,
  anon_sym_DOT_DOT = 36,
  anon_sym_LBRACK = 37,
  anon_sym_RBRACK = 38,
  anon_sym_LBRACE = 39,
  anon_sym_COMMA = 40,
  anon_sym_RBRACE = 41,
  anon_sym_DQUOTE = 42,
  aux_sym_double_quote_string_token1 = 43,
  anon_sym_SQUOTE = 44,
  aux_sym_single_quote_string_token1 = 45,
  sym_escape_sequence = 46,
  sym_stream_redirect = 47,
  sym_direction = 48,
  anon_sym_POUND = 49,
  sym_home_dir_expansion = 50,
  sym_glob = 51,
  sym_brace_word = 52,
  sym__concat = 53,
  sym__brace_concat = 54,
  sym__concat_list = 55,
  sym_program = 56,
  sym_conditional_execution = 57,
  sym_pipe = 58,
  sym_redirect_statement = 59,
  sym__terminated_statement = 60,
  sym__terminated_opt_statement = 61,
  sym_negated_statement = 62,
  sym_command_substitution = 63,
  sym_function_definition = 64,
  sym_return = 65,
  sym_switch_statement = 66,
  sym_case_clause = 67,
  sym_for_statement = 68,
  sym_while_statement = 69,
  sym_if_statement = 70,
  sym_else_if_clause = 71,
  sym_else_clause = 72,
  sym_begin_statement = 73,
  sym_variable_expansion = 74,
  sym_index = 75,
  sym_range = 76,
  sym_list_element_access = 77,
  sym_brace_expansion = 78,
  sym_double_quote_string = 79,
  sym_single_quote_string = 80,
  sym_command = 81,
  sym_file_redirect = 82,
  sym__special_character = 83,
  sym_concatenation = 84,
  sym__expression = 85,
  sym_brace_concatenation = 86,
  sym__brace_expression = 87,
  sym__base_brace_expression = 88,
  aux_sym_program_repeat1 = 89,
  aux_sym_function_definition_repeat1 = 90,
  aux_sym_function_definition_repeat2 = 91,
  aux_sym_switch_statement_repeat1 = 92,
  aux_sym_case_clause_repeat1 = 93,
  aux_sym_for_statement_repeat1 = 94,
  aux_sym_while_statement_repeat1 = 95,
  aux_sym_if_statement_repeat1 = 96,
  aux_sym_variable_expansion_repeat1 = 97,
  aux_sym_list_element_access_repeat1 = 98,
  aux_sym_brace_expansion_repeat1 = 99,
  aux_sym_double_quote_string_repeat1 = 100,
  aux_sym_single_quote_string_repeat1 = 101,
  aux_sym_command_repeat1 = 102,
  aux_sym_concatenation_repeat1 = 103,
  aux_sym_brace_concatenation_repeat1 = 104,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [sym_word] = "word",
  [anon_sym_and] = "and",
  [anon_sym_or] = "or",
  [anon_sym_PIPE_PIPE] = "||",
  [anon_sym_AMP_AMP] = "&&",
  [anon_sym_AMP_PIPE] = "&|",
  [anon_sym_2_GT_PIPE] = "2>|",
  [anon_sym_PIPE] = "|",
  [anon_sym_SEMI] = ";",
  [anon_sym_AMP] = "&",
  [anon_sym_LF] = "\n",
  [anon_sym_CR] = "\r",
  [anon_sym_CR_LF] = "\r\n",
  [anon_sym_BANG] = "!",
  [anon_sym_not] = "not",
  [anon_sym_DOLLAR] = "$",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_function] = "function",
  [anon_sym_end] = "end",
  [sym_integer] = "integer",
  [sym_float] = "float",
  [anon_sym_return] = "return",
  [anon_sym_switch] = "switch",
  [anon_sym_case] = "case",
  [sym_break] = "break",
  [sym_continue] = "continue",
  [anon_sym_for] = "for",
  [anon_sym_in] = "in",
  [anon_sym_while] = "while",
  [anon_sym_if] = "if",
  [anon_sym_else] = "else",
  [anon_sym_begin] = "begin",
  [sym_comment] = "comment",
  [sym_variable_name] = "variable_name",
  [anon_sym_DOT_DOT] = "..",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_LBRACE] = "{",
  [anon_sym_COMMA] = ",",
  [anon_sym_RBRACE] = "}",
  [anon_sym_DQUOTE] = "\"",
  [aux_sym_double_quote_string_token1] = "double_quote_string_token1",
  [anon_sym_SQUOTE] = "'",
  [aux_sym_single_quote_string_token1] = "single_quote_string_token1",
  [sym_escape_sequence] = "escape_sequence",
  [sym_stream_redirect] = "stream_redirect",
  [sym_direction] = "direction",
  [anon_sym_POUND] = "#",
  [sym_home_dir_expansion] = "home_dir_expansion",
  [sym_glob] = "glob",
  [sym_brace_word] = "word",
  [sym__concat] = "_concat",
  [sym__brace_concat] = "_brace_concat",
  [sym__concat_list] = "_concat_list",
  [sym_program] = "program",
  [sym_conditional_execution] = "conditional_execution",
  [sym_pipe] = "pipe",
  [sym_redirect_statement] = "redirect_statement",
  [sym__terminated_statement] = "_terminated_statement",
  [sym__terminated_opt_statement] = "_terminated_opt_statement",
  [sym_negated_statement] = "negated_statement",
  [sym_command_substitution] = "command_substitution",
  [sym_function_definition] = "function_definition",
  [sym_return] = "return",
  [sym_switch_statement] = "switch_statement",
  [sym_case_clause] = "case_clause",
  [sym_for_statement] = "for_statement",
  [sym_while_statement] = "while_statement",
  [sym_if_statement] = "if_statement",
  [sym_else_if_clause] = "else_if_clause",
  [sym_else_clause] = "else_clause",
  [sym_begin_statement] = "begin_statement",
  [sym_variable_expansion] = "variable_expansion",
  [sym_index] = "index",
  [sym_range] = "range",
  [sym_list_element_access] = "list_element_access",
  [sym_brace_expansion] = "brace_expansion",
  [sym_double_quote_string] = "double_quote_string",
  [sym_single_quote_string] = "single_quote_string",
  [sym_command] = "command",
  [sym_file_redirect] = "file_redirect",
  [sym__special_character] = "_special_character",
  [sym_concatenation] = "concatenation",
  [sym__expression] = "_expression",
  [sym_brace_concatenation] = "concatenation",
  [sym__brace_expression] = "_brace_expression",
  [sym__base_brace_expression] = "_base_brace_expression",
  [aux_sym_program_repeat1] = "program_repeat1",
  [aux_sym_function_definition_repeat1] = "function_definition_repeat1",
  [aux_sym_function_definition_repeat2] = "function_definition_repeat2",
  [aux_sym_switch_statement_repeat1] = "switch_statement_repeat1",
  [aux_sym_case_clause_repeat1] = "case_clause_repeat1",
  [aux_sym_for_statement_repeat1] = "for_statement_repeat1",
  [aux_sym_while_statement_repeat1] = "while_statement_repeat1",
  [aux_sym_if_statement_repeat1] = "if_statement_repeat1",
  [aux_sym_variable_expansion_repeat1] = "variable_expansion_repeat1",
  [aux_sym_list_element_access_repeat1] = "list_element_access_repeat1",
  [aux_sym_brace_expansion_repeat1] = "brace_expansion_repeat1",
  [aux_sym_double_quote_string_repeat1] = "double_quote_string_repeat1",
  [aux_sym_single_quote_string_repeat1] = "single_quote_string_repeat1",
  [aux_sym_command_repeat1] = "command_repeat1",
  [aux_sym_concatenation_repeat1] = "concatenation_repeat1",
  [aux_sym_brace_concatenation_repeat1] = "brace_concatenation_repeat1",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [sym_word] = sym_word,
  [anon_sym_and] = anon_sym_and,
  [anon_sym_or] = anon_sym_or,
  [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE,
  [anon_sym_AMP_AMP] = anon_sym_AMP_AMP,
  [anon_sym_AMP_PIPE] = anon_sym_AMP_PIPE,
  [anon_sym_2_GT_PIPE] = anon_sym_2_GT_PIPE,
  [anon_sym_PIPE] = anon_sym_PIPE,
  [anon_sym_SEMI] = anon_sym_SEMI,
  [anon_sym_AMP] = anon_sym_AMP,
  [anon_sym_LF] = anon_sym_LF,
  [anon_sym_CR] = anon_sym_CR,
  [anon_sym_CR_LF] = anon_sym_CR_LF,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_not] = anon_sym_not,
  [anon_sym_DOLLAR] = anon_sym_DOLLAR,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_function] = anon_sym_function,
  [anon_sym_end] = anon_sym_end,
  [sym_integer] = sym_integer,
  [sym_float] = sym_float,
  [anon_sym_return] = anon_sym_return,
  [anon_sym_switch] = anon_sym_switch,
  [anon_sym_case] = anon_sym_case,
  [sym_break] = sym_break,
  [sym_continue] = sym_continue,
  [anon_sym_for] = anon_sym_for,
  [anon_sym_in] = anon_sym_in,
  [anon_sym_while] = anon_sym_while,
  [anon_sym_if] = anon_sym_if,
  [anon_sym_else] = anon_sym_else,
  [anon_sym_begin] = anon_sym_begin,
  [sym_comment] = sym_comment,
  [sym_variable_name] = sym_variable_name,
  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
  [aux_sym_double_quote_string_token1] = aux_sym_double_quote_string_token1,
  [anon_sym_SQUOTE] = anon_sym_SQUOTE,
  [aux_sym_single_quote_string_token1] = aux_sym_single_quote_string_token1,
  [sym_escape_sequence] = sym_escape_sequence,
  [sym_stream_redirect] = sym_stream_redirect,
  [sym_direction] = sym_direction,
  [anon_sym_POUND] = anon_sym_POUND,
  [sym_home_dir_expansion] = sym_home_dir_expansion,
  [sym_glob] = sym_glob,
  [sym_brace_word] = sym_word,
  [sym__concat] = sym__concat,
  [sym__brace_concat] = sym__brace_concat,
  [sym__concat_list] = sym__concat_list,
  [sym_program] = sym_program,
  [sym_conditional_execution] = sym_conditional_execution,
  [sym_pipe] = sym_pipe,
  [sym_redirect_statement] = sym_redirect_statement,
  [sym__terminated_statement] = sym__terminated_statement,
  [sym__terminated_opt_statement] = sym__terminated_opt_statement,
  [sym_negated_statement] = sym_negated_statement,
  [sym_command_substitution] = sym_command_substitution,
  [sym_function_definition] = sym_function_definition,
  [sym_return] = sym_return,
  [sym_switch_statement] = sym_switch_statement,
  [sym_case_clause] = sym_case_clause,
  [sym_for_statement] = sym_for_statement,
  [sym_while_statement] = sym_while_statement,
  [sym_if_statement] = sym_if_statement,
  [sym_else_if_clause] = sym_else_if_clause,
  [sym_else_clause] = sym_else_clause,
  [sym_begin_statement] = sym_begin_statement,
  [sym_variable_expansion] = sym_variable_expansion,
  [sym_index] = sym_index,
  [sym_range] = sym_range,
  [sym_list_element_access] = sym_list_element_access,
  [sym_brace_expansion] = sym_brace_expansion,
  [sym_double_quote_string] = sym_double_quote_string,
  [sym_single_quote_string] = sym_single_quote_string,
  [sym_command] = sym_command,
  [sym_file_redirect] = sym_file_redirect,
  [sym__special_character] = sym__special_character,
  [sym_concatenation] = sym_concatenation,
  [sym__expression] = sym__expression,
  [sym_brace_concatenation] = sym_concatenation,
  [sym__brace_expression] = sym__brace_expression,
  [sym__base_brace_expression] = sym__base_brace_expression,
  [aux_sym_program_repeat1] = aux_sym_program_repeat1,
  [aux_sym_function_definition_repeat1] = aux_sym_function_definition_repeat1,
  [aux_sym_function_definition_repeat2] = aux_sym_function_definition_repeat2,
  [aux_sym_switch_statement_repeat1] = aux_sym_switch_statement_repeat1,
  [aux_sym_case_clause_repeat1] = aux_sym_case_clause_repeat1,
  [aux_sym_for_statement_repeat1] = aux_sym_for_statement_repeat1,
  [aux_sym_while_statement_repeat1] = aux_sym_while_statement_repeat1,
  [aux_sym_if_statement_repeat1] = aux_sym_if_statement_repeat1,
  [aux_sym_variable_expansion_repeat1] = aux_sym_variable_expansion_repeat1,
  [aux_sym_list_element_access_repeat1] = aux_sym_list_element_access_repeat1,
  [aux_sym_brace_expansion_repeat1] = aux_sym_brace_expansion_repeat1,
  [aux_sym_double_quote_string_repeat1] = aux_sym_double_quote_string_repeat1,
  [aux_sym_single_quote_string_repeat1] = aux_sym_single_quote_string_repeat1,
  [aux_sym_command_repeat1] = aux_sym_command_repeat1,
  [aux_sym_concatenation_repeat1] = aux_sym_concatenation_repeat1,
  [aux_sym_brace_concatenation_repeat1] = aux_sym_brace_concatenation_repeat1,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [sym_word] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_and] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_or] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_2_GT_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SEMI] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LF] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CR_LF] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_not] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOLLAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_function] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_end] = {
    .visible = true,
    .named = false,
  },
  [sym_integer] = {
    .visible = true,
    .named = true,
  },
  [sym_float] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_return] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_switch] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_case] = {
    .visible = true,
    .named = false,
  },
  [sym_break] = {
    .visible = true,
    .named = true,
  },
  [sym_continue] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_for] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_in] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_while] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_if] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_else] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_begin] = {
    .visible = true,
    .named = false,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [sym_variable_name] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_double_quote_string_token1] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_SQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_single_quote_string_token1] = {
    .visible = false,
    .named = false,
  },
  [sym_escape_sequence] = {
    .visible = true,
    .named = true,
  },
  [sym_stream_redirect] = {
    .visible = true,
    .named = true,
  },
  [sym_direction] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_POUND] = {
    .visible = true,
    .named = false,
  },
  [sym_home_dir_expansion] = {
    .visible = true,
    .named = true,
  },
  [sym_glob] = {
    .visible = true,
    .named = true,
  },
  [sym_brace_word] = {
    .visible = true,
    .named = true,
  },
  [sym__concat] = {
    .visible = false,
    .named = true,
  },
  [sym__brace_concat] = {
    .visible = false,
    .named = true,
  },
  [sym__concat_list] = {
    .visible = false,
    .named = true,
  },
  [sym_program] = {
    .visible = true,
    .named = true,
  },
  [sym_conditional_execution] = {
    .visible = true,
    .named = true,
  },
  [sym_pipe] = {
    .visible = true,
    .named = true,
  },
  [sym_redirect_statement] = {
    .visible = true,
    .named = true,
  },
  [sym__terminated_statement] = {
    .visible = false,
    .named = true,
  },
  [sym__terminated_opt_statement] = {
    .visible = false,
    .named = true,
  },
  [sym_negated_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_command_substitution] = {
    .visible = true,
    .named = true,
  },
  [sym_function_definition] = {
    .visible = true,
    .named = true,
  },
  [sym_return] = {
    .visible = true,
    .named = true,
  },
  [sym_switch_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_case_clause] = {
    .visible = true,
    .named = true,
  },
  [sym_for_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_while_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_if_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_else_if_clause] = {
    .visible = true,
    .named = true,
  },
  [sym_else_clause] = {
    .visible = true,
    .named = true,
  },
  [sym_begin_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_variable_expansion] = {
    .visible = true,
    .named = true,
  },
  [sym_index] = {
    .visible = true,
    .named = true,
  },
  [sym_range] = {
    .visible = true,
    .named = true,
  },
  [sym_list_element_access] = {
    .visible = true,
    .named = true,
  },
  [sym_brace_expansion] = {
    .visible = true,
    .named = true,
  },
  [sym_double_quote_string] = {
    .visible = true,
    .named = true,
  },
  [sym_single_quote_string] = {
    .visible = true,
    .named = true,
  },
  [sym_command] = {
    .visible = true,
    .named = true,
  },
  [sym_file_redirect] = {
    .visible = true,
    .named = true,
  },
  [sym__special_character] = {
    .visible = false,
    .named = true,
  },
  [sym_concatenation] = {
    .visible = true,
    .named = true,
  },
  [sym__expression] = {
    .visible = false,
    .named = true,
  },
  [sym_brace_concatenation] = {
    .visible = true,
    .named = true,
  },
  [sym__brace_expression] = {
    .visible = false,
    .named = true,
  },
  [sym__base_brace_expression] = {
    .visible = false,
    .named = true,
  },
  [aux_sym_program_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_definition_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_definition_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_switch_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_case_clause_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_for_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_while_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_if_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_variable_expansion_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_list_element_access_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_brace_expansion_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_double_quote_string_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_single_quote_string_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_command_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_concatenation_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_brace_concatenation_repeat1] = {
    .visible = false,
    .named = false,
  },
};

enum ts_field_identifiers {
  field_argument = 1,
  field_condition = 2,
  field_destination = 3,
  field_name = 4,
  field_operator = 5,
  field_option = 6,
  field_redirect = 7,
  field_value = 8,
  field_variable = 9,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_argument] = "argument",
  [field_condition] = "condition",
  [field_destination] = "destination",
  [field_name] = "name",
  [field_operator] = "operator",
  [field_option] = "option",
  [field_redirect] = "redirect",
  [field_value] = "value",
  [field_variable] = "variable",
};

static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [2] = {.index = 0, .length = 1},
  [3] = {.index = 1, .length = 1},
  [4] = {.index = 2, .length = 1},
  [5] = {.index = 3, .length = 3},
  [6] = {.index = 6, .length = 1},
  [7] = {.index = 7, .length = 2},
  [8] = {.index = 9, .length = 1},
  [9] = {.index = 10, .length = 4},
  [10] = {.index = 14, .length = 1},
  [11] = {.index = 15, .length = 2},
  [12] = {.index = 17, .length = 1},
  [13] = {.index = 18, .length = 1},
  [14] = {.index = 19, .length = 2},
  [15] = {.index = 21, .length = 2},
  [16] = {.index = 23, .length = 1},
  [17] = {.index = 24, .length = 2},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_name, 0},
  [1] =
    {field_redirect, 0},
  [2] =
    {field_argument, 0},
  [3] =
    {field_argument, 1, .inherited = true},
    {field_name, 0},
    {field_redirect, 1, .inherited = true},
  [6] =
    {field_option, 0},
  [7] =
    {field_destination, 1},
    {field_operator, 0},
  [9] =
    {field_condition, 1},
  [10] =
    {field_argument, 0, .inherited = true},
    {field_argument, 1, .inherited = true},
    {field_redirect, 0, .inherited = true},
    {field_redirect, 1, .inherited = true},
  [14] =
    {field_name, 1},
  [15] =
    {field_option, 0, .inherited = true},
    {field_option, 1, .inherited = true},
  [17] =
    {field_value, 1},
  [18] =
    {field_value, 0},
  [19] =
    {field_name, 1},
    {field_option, 2, .inherited = true},
  [21] =
    {field_value, 0, .inherited = true},
    {field_value, 1, .inherited = true},
  [23] =
    {field_condition, 2},
  [24] =
    {field_value, 3, .inherited = true},
    {field_variable, 1},
};

static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
  [0] = {0},
  [1] = {
    [0] = sym_word,
  },
};

static const uint16_t ts_non_terminal_alias_map[] = {
  sym__special_character, 2,
    sym__special_character,
    sym_word,
  0,
};

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 3,
  [4] = 4,
  [5] = 5,
  [6] = 6,
  [7] = 7,
  [8] = 8,
  [9] = 9,
  [10] = 4,
  [11] = 11,
  [12] = 12,
  [13] = 13,
  [14] = 14,
  [15] = 15,
  [16] = 16,
  [17] = 17,
  [18] = 18,
  [19] = 16,
  [20] = 20,
  [21] = 18,
  [22] = 20,
  [23] = 15,
  [24] = 17,
  [25] = 18,
  [26] = 20,
  [27] = 15,
  [28] = 17,
  [29] = 18,
  [30] = 20,
  [31] = 15,
  [32] = 17,
  [33] = 18,
  [34] = 20,
  [35] = 15,
  [36] = 17,
  [37] = 18,
  [38] = 20,
  [39] = 15,
  [40] = 17,
  [41] = 18,
  [42] = 20,
  [43] = 15,
  [44] = 17,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 51,
  [52] = 45,
  [53] = 53,
  [54] = 54,
  [55] = 55,
  [56] = 56,
  [57] = 57,
  [58] = 58,
  [59] = 59,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 66,
  [67] = 67,
  [68] = 68,
  [69] = 69,
  [70] = 70,
  [71] = 71,
  [72] = 72,
  [73] = 73,
  [74] = 74,
  [75] = 75,
  [76] = 76,
  [77] = 77,
  [78] = 78,
  [79] = 79,
  [80] = 80,
  [81] = 81,
  [82] = 82,
  [83] = 83,
  [84] = 82,
  [85] = 85,
  [86] = 85,
  [87] = 83,
  [88] = 88,
  [89] = 89,
  [90] = 89,
  [91] = 91,
  [92] = 91,
  [93] = 93,
  [94] = 94,
  [95] = 95,
  [96] = 96,
  [97] = 82,
  [98] = 98,
  [99] = 99,
  [100] = 100,
  [101] = 101,
  [102] = 102,
  [103] = 103,
  [104] = 104,
  [105] = 105,
  [106] = 106,
  [107] = 82,
  [108] = 108,
  [109] = 109,
  [110] = 110,
  [111] = 111,
  [112] = 112,
  [113] = 113,
  [114] = 114,
  [115] = 115,
  [116] = 116,
  [117] = 117,
  [118] = 118,
  [119] = 119,
  [120] = 120,
  [121] = 121,
  [122] = 122,
  [123] = 123,
  [124] = 124,
  [125] = 125,
  [126] = 126,
  [127] = 127,
  [128] = 88,
  [129] = 127,
  [130] = 127,
  [131] = 91,
  [132] = 89,
  [133] = 133,
  [134] = 91,
  [135] = 133,
  [136] = 127,
  [137] = 89,
  [138] = 127,
  [139] = 139,
  [140] = 140,
  [141] = 141,
  [142] = 96,
  [143] = 141,
  [144] = 144,
  [145] = 99,
  [146] = 100,
  [147] = 93,
  [148] = 94,
  [149] = 95,
  [150] = 141,
  [151] = 141,
  [152] = 98,
  [153] = 117,
  [154] = 102,
  [155] = 103,
  [156] = 109,
  [157] = 110,
  [158] = 105,
  [159] = 111,
  [160] = 113,
  [161] = 104,
  [162] = 108,
  [163] = 116,
  [164] = 112,
  [165] = 115,
  [166] = 166,
  [167] = 167,
  [168] = 89,
  [169] = 91,
  [170] = 170,
  [171] = 89,
  [172] = 91,
  [173] = 88,
  [174] = 94,
  [175] = 93,
  [176] = 95,
  [177] = 96,
  [178] = 98,
  [179] = 100,
  [180] = 99,
  [181] = 181,
  [182] = 182,
  [183] = 183,
  [184] = 184,
  [185] = 185,
  [186] = 186,
  [187] = 187,
  [188] = 105,
  [189] = 117,
  [190] = 108,
  [191] = 112,
  [192] = 115,
  [193] = 102,
  [194] = 116,
  [195] = 109,
  [196] = 110,
  [197] = 111,
  [198] = 113,
  [199] = 104,
  [200] = 103,
  [201] = 183,
  [202] = 182,
  [203] = 203,
  [204] = 204,
  [205] = 187,
  [206] = 206,
  [207] = 183,
  [208] = 182,
  [209] = 203,
  [210] = 204,
  [211] = 187,
  [212] = 183,
  [213] = 182,
  [214] = 203,
  [215] = 204,
  [216] = 187,
  [217] = 183,
  [218] = 182,
  [219] = 203,
  [220] = 204,
  [221] = 187,
  [222] = 183,
  [223] = 182,
  [224] = 203,
  [225] = 204,
  [226] = 187,
  [227] = 203,
  [228] = 204,
  [229] = 183,
  [230] = 182,
  [231] = 203,
  [232] = 204,
  [233] = 187,
  [234] = 234,
  [235] = 235,
  [236] = 236,
  [237] = 237,
  [238] = 238,
  [239] = 239,
  [240] = 240,
  [241] = 241,
  [242] = 242,
  [243] = 243,
  [244] = 244,
  [245] = 235,
  [246] = 246,
  [247] = 247,
  [248] = 248,
  [249] = 249,
  [250] = 250,
  [251] = 251,
  [252] = 252,
  [253] = 253,
  [254] = 244,
  [255] = 255,
  [256] = 256,
  [257] = 123,
  [258] = 244,
  [259] = 259,
  [260] = 260,
  [261] = 261,
  [262] = 262,
  [263] = 263,
  [264] = 264,
  [265] = 265,
  [266] = 266,
  [267] = 267,
  [268] = 268,
  [269] = 269,
  [270] = 270,
  [271] = 271,
  [272] = 247,
  [273] = 273,
  [274] = 274,
  [275] = 244,
  [276] = 276,
  [277] = 277,
  [278] = 278,
  [279] = 91,
  [280] = 89,
  [281] = 88,
  [282] = 91,
  [283] = 89,
  [284] = 91,
  [285] = 285,
  [286] = 93,
  [287] = 94,
  [288] = 285,
  [289] = 89,
  [290] = 290,
  [291] = 290,
  [292] = 285,
  [293] = 290,
  [294] = 285,
  [295] = 290,
  [296] = 88,
  [297] = 285,
  [298] = 298,
  [299] = 91,
  [300] = 89,
  [301] = 290,
  [302] = 285,
  [303] = 290,
  [304] = 99,
  [305] = 103,
  [306] = 91,
  [307] = 99,
  [308] = 98,
  [309] = 89,
  [310] = 95,
  [311] = 93,
  [312] = 94,
  [313] = 313,
  [314] = 100,
  [315] = 315,
  [316] = 316,
  [317] = 112,
  [318] = 96,
  [319] = 115,
  [320] = 113,
  [321] = 110,
  [322] = 111,
  [323] = 88,
  [324] = 91,
  [325] = 325,
  [326] = 117,
  [327] = 102,
  [328] = 89,
  [329] = 113,
  [330] = 330,
  [331] = 109,
  [332] = 110,
  [333] = 111,
  [334] = 104,
  [335] = 103,
  [336] = 105,
  [337] = 117,
  [338] = 108,
  [339] = 99,
  [340] = 112,
  [341] = 93,
  [342] = 94,
  [343] = 115,
  [344] = 102,
  [345] = 116,
  [346] = 346,
  [347] = 88,
  [348] = 91,
  [349] = 117,
  [350] = 89,
  [351] = 91,
  [352] = 102,
  [353] = 89,
  [354] = 354,
  [355] = 113,
  [356] = 356,
  [357] = 103,
  [358] = 358,
  [359] = 359,
  [360] = 93,
  [361] = 94,
  [362] = 362,
  [363] = 359,
  [364] = 364,
  [365] = 364,
  [366] = 366,
  [367] = 367,
  [368] = 358,
  [369] = 364,
  [370] = 370,
  [371] = 358,
  [372] = 359,
  [373] = 358,
  [374] = 99,
  [375] = 358,
  [376] = 376,
  [377] = 358,
  [378] = 364,
  [379] = 379,
  [380] = 380,
  [381] = 359,
  [382] = 364,
  [383] = 364,
  [384] = 359,
  [385] = 385,
  [386] = 364,
  [387] = 359,
  [388] = 388,
  [389] = 388,
  [390] = 390,
  [391] = 390,
  [392] = 392,
  [393] = 390,
  [394] = 394,
  [395] = 394,
  [396] = 388,
  [397] = 388,
  [398] = 117,
  [399] = 390,
  [400] = 392,
  [401] = 392,
  [402] = 108,
  [403] = 112,
  [404] = 390,
  [405] = 394,
  [406] = 115,
  [407] = 102,
  [408] = 394,
  [409] = 390,
  [410] = 109,
  [411] = 110,
  [412] = 392,
  [413] = 394,
  [414] = 388,
  [415] = 390,
  [416] = 111,
  [417] = 113,
  [418] = 418,
  [419] = 392,
  [420] = 104,
  [421] = 421,
  [422] = 103,
  [423] = 423,
  [424] = 424,
  [425] = 424,
  [426] = 424,
  [427] = 424,
  [428] = 424,
  [429] = 424,
  [430] = 424,
  [431] = 431,
  [432] = 432,
  [433] = 433,
  [434] = 434,
  [435] = 435,
  [436] = 436,
  [437] = 437,
};

static const TSCharacterRange extras_character_set_1[] = {
  {'\t', '\r'}, {' ', ' '}, {0x85, 0x85}, {0xa0, 0xa0}, {0x1680, 0x1680}, {0x2000, 0x200a}, {0x2028, 0x2029}, {0x202f, 0x202f},
  {0x205f, 0x205f}, {0x3000, 0x3000},
};

static const TSCharacterRange extras_character_set_3[] = {
  {'\t', '\f'}, {' ', ' '}, {0x85, 0x85}, {0xa0, 0xa0}, {0x1680, 0x1680}, {0x2000, 0x200a}, {0x2028, 0x2029}, {0x202f, 0x202f},
  {0x205f, 0x205f}, {0x3000, 0x3000},
};

static const TSCharacterRange extras_character_set_4[] = {
  {'\t', '\t'}, {0x0b, '\f'}, {' ', ' '}, {0x85, 0x85}, {0xa0, 0xa0}, {0x1680, 0x1680}, {0x2000, 0x200a}, {0x2028, 0x2029},
  {0x202f, 0x202f}, {0x205f, 0x205f}, {0x3000, 0x3000},
};

static const TSCharacterRange sym_word_character_set_2[] = {
  {0, 0x08}, {0x0e, 0x1f}, {'!', '!'}, {'#', '#'}, {'%', '%'}, {'+', ':'}, {'=', '='}, {'?', 'Z'},
  {'^', 'z'}, {0x7f, 0x10ffff},
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(33);
      ADVANCE_MAP(
        '!', 54,
        '"', 86,
        '#', 114,
        '$', 55,
        '&', 41,
        '\'', 90,
        '(', 56,
        ')', 58,
        '*', 117,
        ',', 84,
        '.', 129,
        '2', 62,
        ';', 39,
        '<', 108,
        '>', 109,
        '[', 80,
        '\\', 19,
        ']', 81,
        'c', 130,
        'e', 136,
        'i', 134,
        '{', 82,
        '|', 38,
        '}', 85,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(0);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(126);
      if (lookahead != 0) ADVANCE(142);
      END_STATE();
    case 1:
      ADVANCE_MAP(
        '\n', 43,
        '\r', 49,
        '#', 76,
        '&', 41,
        ')', 58,
        '2', 18,
        ';', 39,
        '<', 108,
        '>', 109,
        '|', 38,
      );
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17);
      if (set_contains(extras_character_set_4, 11, lookahead)) SKIP(1);
      END_STATE();
    case 2:
      if (lookahead == '\n') ADVANCE(43);
      if (lookahead == '\r') ADVANCE(49);
      if (lookahead == '#') ADVANCE(76);
      if (lookahead == '&') ADVANCE(40);
      if (lookahead == ';') ADVANCE(39);
      if (lookahead == 'i') ADVANCE(24);
      if (set_contains(extras_character_set_4, 11, lookahead)) SKIP(2);
      END_STATE();
    case 3:
      ADVANCE_MAP(
        '\n', 44,
        '\r', 50,
        '!', 54,
        '"', 86,
        '#', 76,
        '$', 55,
        '&', 40,
        '\'', 90,
        '(', 56,
        '*', 117,
        ';', 39,
        '[', 80,
        '\\', 19,
        ']', 81,
        'e', 136,
        'i', 135,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\f') ||
          lookahead == ' ') SKIP(3);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(119);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 4:
      ADVANCE_MAP(
        '\n', 45,
        '\r', 51,
        '!', 54,
        '"', 86,
        '#', 76,
        '$', 55,
        '&', 40,
        '\'', 90,
        '(', 56,
        '*', 117,
        ';', 39,
        '[', 80,
        '\\', 19,
        ']', 81,
        'e', 137,
        'i', 135,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\f') ||
          lookahead == ' ') SKIP(4);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(120);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 5:
      ADVANCE_MAP(
        '\n', 46,
        '\r', 52,
        '"', 86,
        '#', 76,
        '$', 55,
        '&', 41,
        '\'', 90,
        '(', 56,
        ')', 58,
        '*', 117,
        '2', 62,
        ';', 39,
        '<', 108,
        '>', 109,
        '[', 80,
        '\\', 19,
        ']', 81,
        '{', 82,
        '|', 38,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\f') ||
          lookahead == ' ') SKIP(5);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(121);
      if (lookahead != 0 &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 6:
      ADVANCE_MAP(
        '\n', 47,
        '\r', 53,
        '"', 86,
        '#', 76,
        '$', 55,
        '&', 40,
        '\'', 90,
        '(', 56,
        '*', 117,
        ';', 39,
        '[', 80,
        '\\', 19,
        ']', 81,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\f') ||
          lookahead == ' ') SKIP(6);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(122);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 7:
      ADVANCE_MAP(
        '!', 54,
        '"', 86,
        '#', 76,
        '$', 55,
        '\'', 90,
        '(', 56,
        '*', 117,
        '[', 80,
        '\\', 19,
        ']', 81,
        'c', 130,
        'e', 137,
        'i', 135,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(7);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(123);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 8:
      ADVANCE_MAP(
        '!', 54,
        '"', 86,
        '#', 76,
        '$', 55,
        '\'', 90,
        '(', 56,
        '*', 117,
        '[', 80,
        '\\', 19,
        ']', 81,
        'e', 137,
        'i', 135,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(8);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(124);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 9:
      ADVANCE_MAP(
        '!', 54,
        '"', 86,
        '#', 76,
        '$', 55,
        '\'', 90,
        '(', 56,
        '*', 117,
        '[', 80,
        '\\', 19,
        ']', 81,
        'i', 135,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(9);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(125);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 10:
      ADVANCE_MAP(
        '"', 86,
        '#', 114,
        '$', 55,
        '\'', 90,
        '(', 56,
        '*', 117,
        '[', 80,
        '\\', 19,
        ']', 81,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(10);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(128);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 11:
      ADVANCE_MAP(
        '"', 86,
        '#', 76,
        '$', 55,
        '\'', 90,
        '(', 56,
        '*', 117,
        '[', 80,
        '\\', 19,
        ']', 81,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(11);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(127);
      if (lookahead != 0 &&
          (lookahead < '&' || '+' < lookahead) &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 12:
      ADVANCE_MAP(
        '"', 86,
        '#', 143,
        '$', 55,
        '\'', 90,
        '(', 56,
        '*', 117,
        ',', 83,
        '\\', 19,
        '{', 82,
        '}', 85,
        '+', 145,
        '-', 145,
      );
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(64);
      if (set_contains(extras_character_set_1, 10, lookahead)) ADVANCE(144);
      if (lookahead != 0 &&
          (lookahead < '\'' || '-' < lookahead)) ADVANCE(147);
      END_STATE();
    case 13:
      if (lookahead == '"') ADVANCE(86);
      if (lookahead == '#') ADVANCE(87);
      if (lookahead == '$') ADVANCE(55);
      if (lookahead == '(') ADVANCE(57);
      if (lookahead == '\\') ADVANCE(19);
      if (set_contains(extras_character_set_1, 10, lookahead)) ADVANCE(88);
      if (lookahead != 0) ADVANCE(89);
      END_STATE();
    case 14:
      if (lookahead == '#') ADVANCE(76);
      if (lookahead == '$') ADVANCE(55);
      if (lookahead == '(') ADVANCE(56);
      if (set_contains(extras_character_set_1, 10, lookahead)) SKIP(14);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 15:
      if (lookahead == '#') ADVANCE(91);
      if (lookahead == '\'') ADVANCE(90);
      if (lookahead == '\\') ADVANCE(19);
      if (set_contains(extras_character_set_1, 10, lookahead)) ADVANCE(92);
      if (lookahead != 0) ADVANCE(93);
      END_STATE();
    case 16:
      if (lookahead == '.') ADVANCE(78);
      END_STATE();
    case 17:
      if (lookahead == '<') ADVANCE(108);
      if (lookahead == '>') ADVANCE(109);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17);
      END_STATE();
    case 18:
      if (lookahead == '<') ADVANCE(108);
      if (lookahead == '>') ADVANCE(110);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17);
      END_STATE();
    case 19:
      if (lookahead == 'U') ADVANCE(104);
      if (lookahead == 'X') ADVANCE(98);
      if (lookahead == 'c') ADVANCE(105);
      if (lookahead == 'u') ADVANCE(100);
      if (lookahead == 'x') ADVANCE(98);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(96);
      if (lookahead != 0) ADVANCE(94);
      END_STATE();
    case 20:
      if (lookahead == 'a') ADVANCE(27);
      END_STATE();
    case 21:
      if (lookahead == 'd') ADVANCE(59);
      END_STATE();
    case 22:
      if (lookahead == 'e') ADVANCE(68);
      END_STATE();
    case 23:
      if (lookahead == 'e') ADVANCE(74);
      END_STATE();
    case 24:
      if (lookahead == 'f') ADVANCE(72);
      END_STATE();
    case 25:
      if (lookahead == 'f') ADVANCE(72);
      if (lookahead == 'n') ADVANCE(70);
      END_STATE();
    case 26:
      if (lookahead == 'l') ADVANCE(28);
      if (lookahead == 'n') ADVANCE(21);
      END_STATE();
    case 27:
      if (lookahead == 's') ADVANCE(22);
      END_STATE();
    case 28:
      if (lookahead == 's') ADVANCE(23);
      END_STATE();
    case 29:
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '2')) ADVANCE(106);
      END_STATE();
    case 30:
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(65);
      END_STATE();
    case 31:
      if (eof) ADVANCE(33);
      ADVANCE_MAP(
        '\n', 42,
        '\r', 48,
        '!', 54,
        '"', 86,
        '#', 76,
        '$', 55,
        '&', 40,
        '\'', 90,
        '(', 56,
        ')', 58,
        '*', 117,
        ';', 39,
        '[', 80,
        '\\', 19,
        ']', 81,
        'i', 135,
        '{', 82,
        '~', 116,
        '+', 140,
        '-', 140,
      );
      if (('\t' <= lookahead && lookahead <= '\f') ||
          lookahead == ' ') SKIP(31);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if (set_contains(extras_character_set_4, 11, lookahead)) ADVANCE(118);
      if (lookahead != 0 &&
          lookahead != ';' &&
          lookahead != '<' &&
          lookahead != '>' &&
          (lookahead < '{' || '~' < lookahead)) ADVANCE(142);
      END_STATE();
    case 32:
      if (eof) ADVANCE(33);
      ADVANCE_MAP(
        '"', 86,
        '#', 76,
        '$', 55,
        '\'', 90,
        '(', 56,
        ',', 83,
        '.', 16,
        '[', 80,
        ']', 81,
        'c', 20,
        'e', 26,
        'i', 25,
        '}', 85,
        '+', 30,
        '-', 30,
      );
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(65);
      if (set_contains(extras_character_set_1, 10, lookahead)) SKIP(32);
      END_STATE();
    case 33:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 34:
      ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
      END_STATE();
    case 35:
      ACCEPT_TOKEN(anon_sym_AMP_AMP);
      END_STATE();
    case 36:
      ACCEPT_TOKEN(anon_sym_AMP_PIPE);
      END_STATE();
    case 37:
      ACCEPT_TOKEN(anon_sym_2_GT_PIPE);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(anon_sym_PIPE);
      if (lookahead == '|') ADVANCE(34);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(anon_sym_SEMI);
      END_STATE();
    case 40:
      ACCEPT_TOKEN(anon_sym_AMP);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_AMP);
      if (lookahead == '&') ADVANCE(35);
      if (lookahead == '<') ADVANCE(107);
      if (lookahead == '>') ADVANCE(112);
      if (lookahead == '|') ADVANCE(36);
      END_STATE();
    case 42:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(42);
      if (lookahead == '\r') ADVANCE(48);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(118);
      END_STATE();
    case 43:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(43);
      if (lookahead == '\r') ADVANCE(49);
      END_STATE();
    case 44:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(44);
      if (lookahead == '\r') ADVANCE(50);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(119);
      END_STATE();
    case 45:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(45);
      if (lookahead == '\r') ADVANCE(51);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(120);
      END_STATE();
    case 46:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(46);
      if (lookahead == '\r') ADVANCE(52);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(121);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(anon_sym_LF);
      if (lookahead == '\n') ADVANCE(47);
      if (lookahead == '\r') ADVANCE(53);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(122);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(anon_sym_CR);
      if (lookahead == '\n') ADVANCE(42);
      if (lookahead == '\r') ADVANCE(48);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(118);
      END_STATE();
    case 49:
      ACCEPT_TOKEN(anon_sym_CR);
      if (lookahead == '\n') ADVANCE(43);
      if (lookahead == '\r') ADVANCE(49);
      END_STATE();
    case 50:
      ACCEPT_TOKEN(anon_sym_CR);
      if (lookahead == '\n') ADVANCE(44);
      if (lookahead == '\r') ADVANCE(50);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(119);
      END_STATE();
    case 51:
      ACCEPT_TOKEN(anon_sym_CR);
      if (lookahead == '\n') ADVANCE(45);
      if (lookahead == '\r') ADVANCE(51);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(120);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(anon_sym_CR);
      if (lookahead == '\n') ADVANCE(46);
      if (lookahead == '\r') ADVANCE(52);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(121);
      END_STATE();
    case 53:
      ACCEPT_TOKEN(anon_sym_CR);
      if (lookahead == '\n') ADVANCE(47);
      if (lookahead == '\r') ADVANCE(53);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(122);
      END_STATE();
    case 54:
      ACCEPT_TOKEN(anon_sym_BANG);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 55:
      ACCEPT_TOKEN(anon_sym_DOLLAR);
      END_STATE();
    case 56:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 57:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(89);
      END_STATE();
    case 58:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 59:
      ACCEPT_TOKEN(anon_sym_end);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(anon_sym_end);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 61:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(141);
      if (lookahead == '<') ADVANCE(108);
      if (lookahead == '>') ADVANCE(109);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 62:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(141);
      if (lookahead == '<') ADVANCE(108);
      if (lookahead == '>') ADVANCE(110);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 63:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(141);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 64:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(146);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(64);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '\'' || '*' < lookahead) &&
          lookahead != ',' &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(147);
      END_STATE();
    case 65:
      ACCEPT_TOKEN(sym_integer);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(65);
      END_STATE();
    case 66:
      ACCEPT_TOKEN(sym_float);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(66);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 67:
      ACCEPT_TOKEN(sym_float);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(67);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '\'' || '*' < lookahead) &&
          lookahead != ',' &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(147);
      END_STATE();
    case 68:
      ACCEPT_TOKEN(anon_sym_case);
      END_STATE();
    case 69:
      ACCEPT_TOKEN(anon_sym_case);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 70:
      ACCEPT_TOKEN(anon_sym_in);
      END_STATE();
    case 71:
      ACCEPT_TOKEN(anon_sym_in);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 72:
      ACCEPT_TOKEN(anon_sym_if);
      END_STATE();
    case 73:
      ACCEPT_TOKEN(anon_sym_if);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 74:
      ACCEPT_TOKEN(anon_sym_else);
      END_STATE();
    case 75:
      ACCEPT_TOKEN(anon_sym_else);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 76:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(76);
      END_STATE();
    case 77:
      ACCEPT_TOKEN(sym_variable_name);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 78:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      END_STATE();
    case 79:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 80:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 81:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 82:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 83:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 84:
      ACCEPT_TOKEN(anon_sym_COMMA);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 85:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 86:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      END_STATE();
    case 87:
      ACCEPT_TOKEN(aux_sym_double_quote_string_token1);
      if (lookahead == '\n') ADVANCE(89);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(87);
      END_STATE();
    case 88:
      ACCEPT_TOKEN(aux_sym_double_quote_string_token1);
      if (lookahead == '#') ADVANCE(87);
      if (lookahead == '(') ADVANCE(57);
      if (set_contains(extras_character_set_1, 10, lookahead)) ADVANCE(88);
      if (lookahead != 0 &&
          (lookahead < '"' || '$' < lookahead) &&
          lookahead != '\\') ADVANCE(89);
      END_STATE();
    case 89:
      ACCEPT_TOKEN(aux_sym_double_quote_string_token1);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(89);
      END_STATE();
    case 90:
      ACCEPT_TOKEN(anon_sym_SQUOTE);
      END_STATE();
    case 91:
      ACCEPT_TOKEN(aux_sym_single_quote_string_token1);
      if (lookahead == '\n') ADVANCE(93);
      if (lookahead != 0 &&
          lookahead != '\'' &&
          lookahead != '\\') ADVANCE(91);
      END_STATE();
    case 92:
      ACCEPT_TOKEN(aux_sym_single_quote_string_token1);
      if (lookahead == '#') ADVANCE(91);
      if (set_contains(extras_character_set_1, 10, lookahead)) ADVANCE(92);
      if (lookahead != 0 &&
          lookahead != '\'' &&
          lookahead != '\\') ADVANCE(93);
      END_STATE();
    case 93:
      ACCEPT_TOKEN(aux_sym_single_quote_string_token1);
      if (lookahead != 0 &&
          lookahead != '\'' &&
          lookahead != '\\') ADVANCE(93);
      END_STATE();
    case 94:
      ACCEPT_TOKEN(sym_escape_sequence);
      END_STATE();
    case 95:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(94);
      END_STATE();
    case 96:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(95);
      END_STATE();
    case 97:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(94);
      END_STATE();
    case 98:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(97);
      END_STATE();
    case 99:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(98);
      END_STATE();
    case 100:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(99);
      END_STATE();
    case 101:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(100);
      END_STATE();
    case 102:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(101);
      END_STATE();
    case 103:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(102);
      END_STATE();
    case 104:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(103);
      END_STATE();
    case 105:
      ACCEPT_TOKEN(sym_escape_sequence);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
      END_STATE();
    case 106:
      ACCEPT_TOKEN(sym_stream_redirect);
      END_STATE();
    case 107:
      ACCEPT_TOKEN(sym_direction);
      END_STATE();
    case 108:
      ACCEPT_TOKEN(sym_direction);
      if (lookahead == '&') ADVANCE(29);
      END_STATE();
    case 109:
      ACCEPT_TOKEN(sym_direction);
      if (lookahead == '&') ADVANCE(29);
      if (lookahead == '>') ADVANCE(111);
      if (lookahead == '?') ADVANCE(107);
      END_STATE();
    case 110:
      ACCEPT_TOKEN(sym_direction);
      if (lookahead == '&') ADVANCE(29);
      if (lookahead == '>') ADVANCE(111);
      if (lookahead == '?') ADVANCE(107);
      if (lookahead == '|') ADVANCE(37);
      END_STATE();
    case 111:
      ACCEPT_TOKEN(sym_direction);
      if (lookahead == '&') ADVANCE(29);
      if (lookahead == '?') ADVANCE(107);
      END_STATE();
    case 112:
      ACCEPT_TOKEN(sym_direction);
      if (lookahead == '>') ADVANCE(113);
      if (lookahead == '?') ADVANCE(107);
      END_STATE();
    case 113:
      ACCEPT_TOKEN(sym_direction);
      if (lookahead == '?') ADVANCE(107);
      END_STATE();
    case 114:
      ACCEPT_TOKEN(anon_sym_POUND);
      END_STATE();
    case 115:
      ACCEPT_TOKEN(anon_sym_POUND);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 116:
      ACCEPT_TOKEN(sym_home_dir_expansion);
      END_STATE();
    case 117:
      ACCEPT_TOKEN(sym_glob);
      if (lookahead == '*') ADVANCE(117);
      END_STATE();
    case 118:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '\n') ADVANCE(42);
      if (lookahead == '\r') ADVANCE(48);
      if (lookahead == '!') ADVANCE(54);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == 'i') ADVANCE(135);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(118);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 119:
      ACCEPT_TOKEN(sym_word);
      ADVANCE_MAP(
        '\n', 44,
        '\r', 50,
        '!', 54,
        '#', 142,
        'e', 136,
        'i', 135,
        '+', 140,
        '-', 140,
      );
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(119);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 120:
      ACCEPT_TOKEN(sym_word);
      ADVANCE_MAP(
        '\n', 45,
        '\r', 51,
        '!', 54,
        '#', 142,
        'e', 137,
        'i', 135,
        '+', 140,
        '-', 140,
      );
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(120);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 121:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '\n') ADVANCE(46);
      if (lookahead == '\r') ADVANCE(52);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == '2') ADVANCE(62);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(121);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 122:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '\n') ADVANCE(47);
      if (lookahead == '\r') ADVANCE(53);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_4, 11, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(122);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 123:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '!') ADVANCE(54);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == 'c') ADVANCE(130);
      if (lookahead == 'e') ADVANCE(137);
      if (lookahead == 'i') ADVANCE(135);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_3, 10, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(123);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 124:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '!') ADVANCE(54);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == 'e') ADVANCE(137);
      if (lookahead == 'i') ADVANCE(135);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_3, 10, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(124);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 125:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '!') ADVANCE(54);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == 'i') ADVANCE(135);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_3, 10, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(125);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 126:
      ACCEPT_TOKEN(sym_word);
      ADVANCE_MAP(
        '!', 54,
        '#', 115,
        ',', 84,
        '.', 129,
        '2', 62,
        'c', 130,
        'e', 136,
        'i', 134,
        '+', 140,
        '-', 140,
      );
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61);
      if ((set_contains(extras_character_set_3, 10, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(126);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 127:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '#') ADVANCE(142);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_3, 10, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(127);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 128:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '#') ADVANCE(115);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(140);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((set_contains(extras_character_set_3, 10, lookahead)) &&
          (lookahead < '\t' || '\f' < lookahead) &&
          lookahead != ' ') ADVANCE(128);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 129:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == '.') ADVANCE(79);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 130:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'a') ADVANCE(138);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 131:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'd') ADVANCE(60);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 132:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'e') ADVANCE(69);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 133:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'e') ADVANCE(75);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 134:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'f') ADVANCE(73);
      if (lookahead == 'n') ADVANCE(71);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 135:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'f') ADVANCE(73);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 136:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'l') ADVANCE(139);
      if (lookahead == 'n') ADVANCE(131);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 137:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 'n') ADVANCE(131);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 138:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 's') ADVANCE(132);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 139:
      ACCEPT_TOKEN(sym_word);
      if (lookahead == 's') ADVANCE(133);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 140:
      ACCEPT_TOKEN(sym_word);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 141:
      ACCEPT_TOKEN(sym_word);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(66);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 142:
      ACCEPT_TOKEN(sym_word);
      if ((!eof && set_contains(sym_word_character_set_2, 10, lookahead))) ADVANCE(142);
      END_STATE();
    case 143:
      ACCEPT_TOKEN(sym_brace_word);
      if (lookahead == '\n') ADVANCE(147);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '\'' || '*' < lookahead) &&
          lookahead != ',' &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(143);
      END_STATE();
    case 144:
      ACCEPT_TOKEN(sym_brace_word);
      if (lookahead == '#') ADVANCE(143);
      if (lookahead == '+' ||
          lookahead == '-') ADVANCE(145);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(64);
      if (set_contains(extras_character_set_1, 10, lookahead)) ADVANCE(144);
      if (lookahead != 0 &&
          (lookahead < '"' || '$' < lookahead) &&
          (lookahead < '\'' || '-' < lookahead) &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(147);
      END_STATE();
    case 145:
      ACCEPT_TOKEN(sym_brace_word);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(64);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '\'' || '*' < lookahead) &&
          lookahead != ',' &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(147);
      END_STATE();
    case 146:
      ACCEPT_TOKEN(sym_brace_word);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(67);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '\'' || '*' < lookahead) &&
          lookahead != ',' &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(147);
      END_STATE();
    case 147:
      ACCEPT_TOKEN(sym_brace_word);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          (lookahead < '\'' || '*' < lookahead) &&
          lookahead != ',' &&
          lookahead != '\\' &&
          lookahead != '{' &&
          lookahead != '}') ADVANCE(147);
      END_STATE();
    default:
      return false;
  }
}

static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      ADVANCE_MAP(
        'a', 1,
        'b', 2,
        'c', 3,
        'f', 4,
        'n', 5,
        'o', 6,
        'r', 7,
        's', 8,
        'w', 9,
      );
      if (set_contains(extras_character_set_1, 10, lookahead)) SKIP(0);
      END_STATE();
    case 1:
      if (lookahead == 'n') ADVANCE(10);
      END_STATE();
    case 2:
      if (lookahead == 'e') ADVANCE(11);
      if (lookahead == 'r') ADVANCE(12);
      END_STATE();
    case 3:
      if (lookahead == 'o') ADVANCE(13);
      END_STATE();
    case 4:
      if (lookahead == 'o') ADVANCE(14);
      if (lookahead == 'u') ADVANCE(15);
      END_STATE();
    case 5:
      if (lookahead == 'o') ADVANCE(16);
      END_STATE();
    case 6:
      if (lookahead == 'r') ADVANCE(17);
      END_STATE();
    case 7:
      if (lookahead == 'e') ADVANCE(18);
      END_STATE();
    case 8:
      if (lookahead == 'w') ADVANCE(19);
      END_STATE();
    case 9:
      if (lookahead == 'h') ADVANCE(20);
      END_STATE();
    case 10:
      if (lookahead == 'd') ADVANCE(21);
      END_STATE();
    case 11:
      if (lookahead == 'g') ADVANCE(22);
      END_STATE();
    case 12:
      if (lookahead == 'e') ADVANCE(23);
      END_STATE();
    case 13:
      if (lookahead == 'n') ADVANCE(24);
      END_STATE();
    case 14:
      if (lookahead == 'r') ADVANCE(25);
      END_STATE();
    case 15:
      if (lookahead == 'n') ADVANCE(26);
      END_STATE();
    case 16:
      if (lookahead == 't') ADVANCE(27);
      END_STATE();
    case 17:
      ACCEPT_TOKEN(anon_sym_or);
      END_STATE();
    case 18:
      if (lookahead == 't') ADVANCE(28);
      END_STATE();
    case 19:
      if (lookahead == 'i') ADVANCE(29);
      END_STATE();
    case 20:
      if (lookahead == 'i') ADVANCE(30);
      END_STATE();
    case 21:
      ACCEPT_TOKEN(anon_sym_and);
      END_STATE();
    case 22:
      if (lookahead == 'i') ADVANCE(31);
      END_STATE();
    case 23:
      if (lookahead == 'a') ADVANCE(32);
      END_STATE();
    case 24:
      if (lookahead == 't') ADVANCE(33);
      END_STATE();
    case 25:
      ACCEPT_TOKEN(anon_sym_for);
      END_STATE();
    case 26:
      if (lookahead == 'c') ADVANCE(34);
      END_STATE();
    case 27:
      ACCEPT_TOKEN(anon_sym_not);
      END_STATE();
    case 28:
      if (lookahead == 'u') ADVANCE(35);
      END_STATE();
    case 29:
      if (lookahead == 't') ADVANCE(36);
      END_STATE();
    case 30:
      if (lookahead == 'l') ADVANCE(37);
      END_STATE();
    case 31:
      if (lookahead == 'n') ADVANCE(38);
      END_STATE();
    case 32:
      if (lookahead == 'k') ADVANCE(39);
      END_STATE();
    case 33:
      if (lookahead == 'i') ADVANCE(40);
      END_STATE();
    case 34:
      if (lookahead == 't') ADVANCE(41);
      END_STATE();
    case 35:
      if (lookahead == 'r') ADVANCE(42);
      END_STATE();
    case 36:
      if (lookahead == 'c') ADVANCE(43);
      END_STATE();
    case 37:
      if (lookahead == 'e') ADVANCE(44);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(anon_sym_begin);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(sym_break);
      END_STATE();
    case 40:
      if (lookahead == 'n') ADVANCE(45);
      END_STATE();
    case 41:
      if (lookahead == 'i') ADVANCE(46);
      END_STATE();
    case 42:
      if (lookahead == 'n') ADVANCE(47);
      END_STATE();
    case 43:
      if (lookahead == 'h') ADVANCE(48);
      END_STATE();
    case 44:
      ACCEPT_TOKEN(anon_sym_while);
      END_STATE();
    case 45:
      if (lookahead == 'u') ADVANCE(49);
      END_STATE();
    case 46:
      if (lookahead == 'o') ADVANCE(50);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(anon_sym_return);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(anon_sym_switch);
      END_STATE();
    case 49:
      if (lookahead == 'e') ADVANCE(51);
      END_STATE();
    case 50:
      if (lookahead == 'n') ADVANCE(52);
      END_STATE();
    case 51:
      ACCEPT_TOKEN(sym_continue);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(anon_sym_function);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0, .external_lex_state = 1},
  [1] = {.lex_state = 31},
  [2] = {.lex_state = 3},
  [3] = {.lex_state = 3},
  [4] = {.lex_state = 3},
  [5] = {.lex_state = 3},
  [6] = {.lex_state = 3},
  [7] = {.lex_state = 4},
  [8] = {.lex_state = 4},
  [9] = {.lex_state = 4},
  [10] = {.lex_state = 4},
  [11] = {.lex_state = 4},
  [12] = {.lex_state = 4},
  [13] = {.lex_state = 4},
  [14] = {.lex_state = 31},
  [15] = {.lex_state = 31},
  [16] = {.lex_state = 31},
  [17] = {.lex_state = 31},
  [18] = {.lex_state = 31},
  [19] = {.lex_state = 31},
  [20] = {.lex_state = 31},
  [21] = {.lex_state = 31},
  [22] = {.lex_state = 31},
  [23] = {.lex_state = 31},
  [24] = {.lex_state = 31},
  [25] = {.lex_state = 31},
  [26] = {.lex_state = 31},
  [27] = {.lex_state = 31},
  [28] = {.lex_state = 31},
  [29] = {.lex_state = 31},
  [30] = {.lex_state = 31},
  [31] = {.lex_state = 31},
  [32] = {.lex_state = 31},
  [33] = {.lex_state = 31},
  [34] = {.lex_state = 31},
  [35] = {.lex_state = 31},
  [36] = {.lex_state = 31},
  [37] = {.lex_state = 31},
  [38] = {.lex_state = 31},
  [39] = {.lex_state = 31},
  [40] = {.lex_state = 31},
  [41] = {.lex_state = 31},
  [42] = {.lex_state = 31},
  [43] = {.lex_state = 31},
  [44] = {.lex_state = 31},
  [45] = {.lex_state = 7},
  [46] = {.lex_state = 7},
  [47] = {.lex_state = 7},
  [48] = {.lex_state = 8},
  [49] = {.lex_state = 8},
  [50] = {.lex_state = 8},
  [51] = {.lex_state = 8},
  [52] = {.lex_state = 8},
  [53] = {.lex_state = 8},
  [54] = {.lex_state = 8},
  [55] = {.lex_state = 8},
  [56] = {.lex_state = 8},
  [57] = {.lex_state = 8},
  [58] = {.lex_state = 8},
  [59] = {.lex_state = 8},
  [60] = {.lex_state = 8},
  [61] = {.lex_state = 8},
  [62] = {.lex_state = 8},
  [63] = {.lex_state = 8},
  [64] = {.lex_state = 8},
  [65] = {.lex_state = 8},
  [66] = {.lex_state = 8},
  [67] = {.lex_state = 8},
  [68] = {.lex_state = 8},
  [69] = {.lex_state = 8},
  [70] = {.lex_state = 8},
  [71] = {.lex_state = 9},
  [72] = {.lex_state = 9},
  [73] = {.lex_state = 9},
  [74] = {.lex_state = 9},
  [75] = {.lex_state = 9},
  [76] = {.lex_state = 9},
  [77] = {.lex_state = 9},
  [78] = {.lex_state = 5},
  [79] = {.lex_state = 5},
  [80] = {.lex_state = 5},
  [81] = {.lex_state = 5},
  [82] = {.lex_state = 3},
  [83] = {.lex_state = 3},
  [84] = {.lex_state = 4},
  [85] = {.lex_state = 31},
  [86] = {.lex_state = 31},
  [87] = {.lex_state = 4},
  [88] = {.lex_state = 5, .external_lex_state = 2},
  [89] = {.lex_state = 5, .external_lex_state = 2},
  [90] = {.lex_state = 5, .external_lex_state = 2},
  [91] = {.lex_state = 5, .external_lex_state = 2},
  [92] = {.lex_state = 5, .external_lex_state = 2},
  [93] = {.lex_state = 5, .external_lex_state = 2},
  [94] = {.lex_state = 5, .external_lex_state = 2},
  [95] = {.lex_state = 5, .external_lex_state = 3},
  [96] = {.lex_state = 5, .external_lex_state = 3},
  [97] = {.lex_state = 7},
  [98] = {.lex_state = 5, .external_lex_state = 3},
  [99] = {.lex_state = 5, .external_lex_state = 2},
  [100] = {.lex_state = 5, .external_lex_state = 3},
  [101] = {.lex_state = 6},
  [102] = {.lex_state = 5, .external_lex_state = 3},
  [103] = {.lex_state = 5, .external_lex_state = 3},
  [104] = {.lex_state = 5, .external_lex_state = 3},
  [105] = {.lex_state = 5, .external_lex_state = 3},
  [106] = {.lex_state = 6},
  [107] = {.lex_state = 8},
  [108] = {.lex_state = 5, .external_lex_state = 3},
  [109] = {.lex_state = 5, .external_lex_state = 3},
  [110] = {.lex_state = 5, .external_lex_state = 3},
  [111] = {.lex_state = 5, .external_lex_state = 3},
  [112] = {.lex_state = 5, .external_lex_state = 3},
  [113] = {.lex_state = 5, .external_lex_state = 3},
  [114] = {.lex_state = 6},
  [115] = {.lex_state = 5, .external_lex_state = 3},
  [116] = {.lex_state = 5, .external_lex_state = 3},
  [117] = {.lex_state = 5, .external_lex_state = 3},
  [118] = {.lex_state = 6},
  [119] = {.lex_state = 6},
  [120] = {.lex_state = 6},
  [121] = {.lex_state = 6},
  [122] = {.lex_state = 5},
  [123] = {.lex_state = 5},
  [124] = {.lex_state = 5},
  [125] = {.lex_state = 11},
  [126] = {.lex_state = 11},
  [127] = {.lex_state = 12},
  [128] = {.lex_state = 6, .external_lex_state = 2},
  [129] = {.lex_state = 12},
  [130] = {.lex_state = 12},
  [131] = {.lex_state = 6, .external_lex_state = 2},
  [132] = {.lex_state = 6, .external_lex_state = 2},
  [133] = {.lex_state = 11},
  [134] = {.lex_state = 6, .external_lex_state = 2},
  [135] = {.lex_state = 11},
  [136] = {.lex_state = 12},
  [137] = {.lex_state = 6, .external_lex_state = 2},
  [138] = {.lex_state = 12},
  [139] = {.lex_state = 11},
  [140] = {.lex_state = 11},
  [141] = {.lex_state = 10},
  [142] = {.lex_state = 6, .external_lex_state = 3},
  [143] = {.lex_state = 10},
  [144] = {.lex_state = 12},
  [145] = {.lex_state = 6, .external_lex_state = 2},
  [146] = {.lex_state = 6, .external_lex_state = 3},
  [147] = {.lex_state = 6, .external_lex_state = 2},
  [148] = {.lex_state = 6, .external_lex_state = 2},
  [149] = {.lex_state = 6, .external_lex_state = 3},
  [150] = {.lex_state = 10},
  [151] = {.lex_state = 10},
  [152] = {.lex_state = 6, .external_lex_state = 3},
  [153] = {.lex_state = 6, .external_lex_state = 3},
  [154] = {.lex_state = 6, .external_lex_state = 3},
  [155] = {.lex_state = 6, .external_lex_state = 3},
  [156] = {.lex_state = 6, .external_lex_state = 3},
  [157] = {.lex_state = 6, .external_lex_state = 3},
  [158] = {.lex_state = 6, .external_lex_state = 3},
  [159] = {.lex_state = 6, .external_lex_state = 3},
  [160] = {.lex_state = 6, .external_lex_state = 3},
  [161] = {.lex_state = 6, .external_lex_state = 3},
  [162] = {.lex_state = 6, .external_lex_state = 3},
  [163] = {.lex_state = 6, .external_lex_state = 3},
  [164] = {.lex_state = 6, .external_lex_state = 3},
  [165] = {.lex_state = 6, .external_lex_state = 3},
  [166] = {.lex_state = 6},
  [167] = {.lex_state = 6},
  [168] = {.lex_state = 1, .external_lex_state = 2},
  [169] = {.lex_state = 1, .external_lex_state = 2},
  [170] = {.lex_state = 12},
  [171] = {.lex_state = 1, .external_lex_state = 2},
  [172] = {.lex_state = 1, .external_lex_state = 2},
  [173] = {.lex_state = 1, .external_lex_state = 2},
  [174] = {.lex_state = 1, .external_lex_state = 2},
  [175] = {.lex_state = 1, .external_lex_state = 2},
  [176] = {.lex_state = 1, .external_lex_state = 3},
  [177] = {.lex_state = 1, .external_lex_state = 3},
  [178] = {.lex_state = 1, .external_lex_state = 3},
  [179] = {.lex_state = 1, .external_lex_state = 3},
  [180] = {.lex_state = 1, .external_lex_state = 2},
  [181] = {.lex_state = 1},
  [182] = {.lex_state = 1},
  [183] = {.lex_state = 1},
  [184] = {.lex_state = 1},
  [185] = {.lex_state = 1},
  [186] = {.lex_state = 1},
  [187] = {.lex_state = 32},
  [188] = {.lex_state = 1, .external_lex_state = 3},
  [189] = {.lex_state = 1, .external_lex_state = 3},
  [190] = {.lex_state = 1, .external_lex_state = 3},
  [191] = {.lex_state = 1, .external_lex_state = 3},
  [192] = {.lex_state = 1, .external_lex_state = 3},
  [193] = {.lex_state = 1, .external_lex_state = 3},
  [194] = {.lex_state = 1, .external_lex_state = 3},
  [195] = {.lex_state = 1, .external_lex_state = 3},
  [196] = {.lex_state = 1, .external_lex_state = 3},
  [197] = {.lex_state = 1, .external_lex_state = 3},
  [198] = {.lex_state = 1, .external_lex_state = 3},
  [199] = {.lex_state = 1, .external_lex_state = 3},
  [200] = {.lex_state = 1, .external_lex_state = 3},
  [201] = {.lex_state = 1},
  [202] = {.lex_state = 1},
  [203] = {.lex_state = 1},
  [204] = {.lex_state = 32},
  [205] = {.lex_state = 32},
  [206] = {.lex_state = 32},
  [207] = {.lex_state = 1},
  [208] = {.lex_state = 1},
  [209] = {.lex_state = 1},
  [210] = {.lex_state = 32},
  [211] = {.lex_state = 32},
  [212] = {.lex_state = 1},
  [213] = {.lex_state = 1},
  [214] = {.lex_state = 1},
  [215] = {.lex_state = 32},
  [216] = {.lex_state = 32},
  [217] = {.lex_state = 1},
  [218] = {.lex_state = 1},
  [219] = {.lex_state = 1},
  [220] = {.lex_state = 32},
  [221] = {.lex_state = 32},
  [222] = {.lex_state = 1},
  [223] = {.lex_state = 1},
  [224] = {.lex_state = 1},
  [225] = {.lex_state = 32},
  [226] = {.lex_state = 32},
  [227] = {.lex_state = 1},
  [228] = {.lex_state = 32},
  [229] = {.lex_state = 1},
  [230] = {.lex_state = 1},
  [231] = {.lex_state = 1},
  [232] = {.lex_state = 32},
  [233] = {.lex_state = 32},
  [234] = {.lex_state = 1},
  [235] = {.lex_state = 1},
  [236] = {.lex_state = 1},
  [237] = {.lex_state = 1},
  [238] = {.lex_state = 1},
  [239] = {.lex_state = 1},
  [240] = {.lex_state = 1},
  [241] = {.lex_state = 1},
  [242] = {.lex_state = 1},
  [243] = {.lex_state = 1},
  [244] = {.lex_state = 1},
  [245] = {.lex_state = 1},
  [246] = {.lex_state = 1},
  [247] = {.lex_state = 1},
  [248] = {.lex_state = 1},
  [249] = {.lex_state = 1},
  [250] = {.lex_state = 1},
  [251] = {.lex_state = 1},
  [252] = {.lex_state = 1},
  [253] = {.lex_state = 1},
  [254] = {.lex_state = 1},
  [255] = {.lex_state = 1},
  [256] = {.lex_state = 1},
  [257] = {.lex_state = 1},
  [258] = {.lex_state = 1},
  [259] = {.lex_state = 1},
  [260] = {.lex_state = 1},
  [261] = {.lex_state = 1},
  [262] = {.lex_state = 1},
  [263] = {.lex_state = 1},
  [264] = {.lex_state = 1},
  [265] = {.lex_state = 1},
  [266] = {.lex_state = 1},
  [267] = {.lex_state = 1},
  [268] = {.lex_state = 1},
  [269] = {.lex_state = 1},
  [270] = {.lex_state = 1},
  [271] = {.lex_state = 1},
  [272] = {.lex_state = 1},
  [273] = {.lex_state = 1},
  [274] = {.lex_state = 1},
  [275] = {.lex_state = 1},
  [276] = {.lex_state = 1},
  [277] = {.lex_state = 32},
  [278] = {.lex_state = 32},
  [279] = {.lex_state = 32, .external_lex_state = 4},
  [280] = {.lex_state = 32, .external_lex_state = 4},
  [281] = {.lex_state = 32, .external_lex_state = 4},
  [282] = {.lex_state = 32, .external_lex_state = 4},
  [283] = {.lex_state = 32, .external_lex_state = 4},
  [284] = {.lex_state = 2, .external_lex_state = 2},
  [285] = {.lex_state = 13},
  [286] = {.lex_state = 32, .external_lex_state = 4},
  [287] = {.lex_state = 32, .external_lex_state = 4},
  [288] = {.lex_state = 13},
  [289] = {.lex_state = 2, .external_lex_state = 2},
  [290] = {.lex_state = 13},
  [291] = {.lex_state = 13},
  [292] = {.lex_state = 13},
  [293] = {.lex_state = 13},
  [294] = {.lex_state = 13},
  [295] = {.lex_state = 13},
  [296] = {.lex_state = 2, .external_lex_state = 2},
  [297] = {.lex_state = 13},
  [298] = {.lex_state = 13},
  [299] = {.lex_state = 2, .external_lex_state = 2},
  [300] = {.lex_state = 2, .external_lex_state = 2},
  [301] = {.lex_state = 13},
  [302] = {.lex_state = 13},
  [303] = {.lex_state = 13},
  [304] = {.lex_state = 32, .external_lex_state = 4},
  [305] = {.lex_state = 32},
  [306] = {.lex_state = 13, .external_lex_state = 4},
  [307] = {.lex_state = 2, .external_lex_state = 2},
  [308] = {.lex_state = 2, .external_lex_state = 3},
  [309] = {.lex_state = 13, .external_lex_state = 4},
  [310] = {.lex_state = 2, .external_lex_state = 3},
  [311] = {.lex_state = 2, .external_lex_state = 2},
  [312] = {.lex_state = 2, .external_lex_state = 2},
  [313] = {.lex_state = 32},
  [314] = {.lex_state = 2, .external_lex_state = 3},
  [315] = {.lex_state = 32},
  [316] = {.lex_state = 32},
  [317] = {.lex_state = 32},
  [318] = {.lex_state = 2, .external_lex_state = 3},
  [319] = {.lex_state = 32},
  [320] = {.lex_state = 32},
  [321] = {.lex_state = 32},
  [322] = {.lex_state = 32},
  [323] = {.lex_state = 13, .external_lex_state = 4},
  [324] = {.lex_state = 13, .external_lex_state = 4},
  [325] = {.lex_state = 32},
  [326] = {.lex_state = 32},
  [327] = {.lex_state = 32},
  [328] = {.lex_state = 13, .external_lex_state = 4},
  [329] = {.lex_state = 2, .external_lex_state = 3},
  [330] = {.lex_state = 2},
  [331] = {.lex_state = 2, .external_lex_state = 3},
  [332] = {.lex_state = 2, .external_lex_state = 3},
  [333] = {.lex_state = 2, .external_lex_state = 3},
  [334] = {.lex_state = 2, .external_lex_state = 3},
  [335] = {.lex_state = 2, .external_lex_state = 3},
  [336] = {.lex_state = 2, .external_lex_state = 3},
  [337] = {.lex_state = 2, .external_lex_state = 3},
  [338] = {.lex_state = 2, .external_lex_state = 3},
  [339] = {.lex_state = 13, .external_lex_state = 4},
  [340] = {.lex_state = 2, .external_lex_state = 3},
  [341] = {.lex_state = 13, .external_lex_state = 4},
  [342] = {.lex_state = 13, .external_lex_state = 4},
  [343] = {.lex_state = 2, .external_lex_state = 3},
  [344] = {.lex_state = 2, .external_lex_state = 3},
  [345] = {.lex_state = 2, .external_lex_state = 3},
  [346] = {.lex_state = 2},
  [347] = {.lex_state = 32, .external_lex_state = 5},
  [348] = {.lex_state = 32, .external_lex_state = 5},
  [349] = {.lex_state = 13},
  [350] = {.lex_state = 32, .external_lex_state = 5},
  [351] = {.lex_state = 32, .external_lex_state = 5},
  [352] = {.lex_state = 13},
  [353] = {.lex_state = 32, .external_lex_state = 5},
  [354] = {.lex_state = 32},
  [355] = {.lex_state = 13},
  [356] = {.lex_state = 32},
  [357] = {.lex_state = 13},
  [358] = {.lex_state = 15},
  [359] = {.lex_state = 15},
  [360] = {.lex_state = 32, .external_lex_state = 5},
  [361] = {.lex_state = 32, .external_lex_state = 5},
  [362] = {.lex_state = 32, .external_lex_state = 6},
  [363] = {.lex_state = 15},
  [364] = {.lex_state = 14},
  [365] = {.lex_state = 14},
  [366] = {.lex_state = 32},
  [367] = {.lex_state = 32},
  [368] = {.lex_state = 15},
  [369] = {.lex_state = 14},
  [370] = {.lex_state = 32, .external_lex_state = 6},
  [371] = {.lex_state = 15},
  [372] = {.lex_state = 15},
  [373] = {.lex_state = 15},
  [374] = {.lex_state = 32, .external_lex_state = 5},
  [375] = {.lex_state = 15},
  [376] = {.lex_state = 32, .external_lex_state = 6},
  [377] = {.lex_state = 15},
  [378] = {.lex_state = 14},
  [379] = {.lex_state = 15},
  [380] = {.lex_state = 32},
  [381] = {.lex_state = 15},
  [382] = {.lex_state = 14},
  [383] = {.lex_state = 14},
  [384] = {.lex_state = 15},
  [385] = {.lex_state = 32},
  [386] = {.lex_state = 14},
  [387] = {.lex_state = 15},
  [388] = {.lex_state = 32},
  [389] = {.lex_state = 32},
  [390] = {.lex_state = 14},
  [391] = {.lex_state = 14},
  [392] = {.lex_state = 32},
  [393] = {.lex_state = 14},
  [394] = {.lex_state = 32},
  [395] = {.lex_state = 32},
  [396] = {.lex_state = 32},
  [397] = {.lex_state = 32},
  [398] = {.lex_state = 32, .external_lex_state = 6},
  [399] = {.lex_state = 14},
  [400] = {.lex_state = 32},
  [401] = {.lex_state = 32},
  [402] = {.lex_state = 32, .external_lex_state = 6},
  [403] = {.lex_state = 32, .external_lex_state = 6},
  [404] = {.lex_state = 14},
  [405] = {.lex_state = 32},
  [406] = {.lex_state = 32, .external_lex_state = 6},
  [407] = {.lex_state = 32, .external_lex_state = 6},
  [408] = {.lex_state = 32},
  [409] = {.lex_state = 14},
  [410] = {.lex_state = 32, .external_lex_state = 6},
  [411] = {.lex_state = 32, .external_lex_state = 6},
  [412] = {.lex_state = 32},
  [413] = {.lex_state = 32},
  [414] = {.lex_state = 32},
  [415] = {.lex_state = 14},
  [416] = {.lex_state = 32, .external_lex_state = 6},
  [417] = {.lex_state = 32, .external_lex_state = 6},
  [418] = {.lex_state = 32, .external_lex_state = 6},
  [419] = {.lex_state = 32},
  [420] = {.lex_state = 32, .external_lex_state = 6},
  [421] = {.lex_state = 32},
  [422] = {.lex_state = 32, .external_lex_state = 6},
  [423] = {.lex_state = 32},
  [424] = {.lex_state = 32},
  [425] = {.lex_state = 32},
  [426] = {.lex_state = 32},
  [427] = {.lex_state = 32},
  [428] = {.lex_state = 32},
  [429] = {.lex_state = 32},
  [430] = {.lex_state = 32},
  [431] = {.lex_state = 32},
  [432] = {.lex_state = 14},
  [433] = {.lex_state = 32},
  [434] = {.lex_state = 32},
  [435] = {.lex_state = 32},
  [436] = {.lex_state = 32},
  [437] = {.lex_state = 32},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [STATE(0)] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [sym_word] = ACTIONS(1),
    [anon_sym_and] = ACTIONS(1),
    [anon_sym_or] = ACTIONS(1),
    [anon_sym_PIPE_PIPE] = ACTIONS(1),
    [anon_sym_AMP_AMP] = ACTIONS(1),
    [anon_sym_AMP_PIPE] = ACTIONS(1),
    [anon_sym_2_GT_PIPE] = ACTIONS(1),
    [anon_sym_PIPE] = ACTIONS(1),
    [anon_sym_SEMI] = ACTIONS(1),
    [anon_sym_AMP] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_not] = ACTIONS(1),
    [anon_sym_DOLLAR] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_function] = ACTIONS(1),
    [anon_sym_end] = ACTIONS(1),
    [sym_integer] = ACTIONS(1),
    [sym_float] = ACTIONS(1),
    [anon_sym_return] = ACTIONS(1),
    [anon_sym_switch] = ACTIONS(1),
    [anon_sym_case] = ACTIONS(1),
    [sym_break] = ACTIONS(1),
    [sym_continue] = ACTIONS(1),
    [anon_sym_for] = ACTIONS(1),
    [anon_sym_in] = ACTIONS(1),
    [anon_sym_while] = ACTIONS(1),
    [anon_sym_if] = ACTIONS(1),
    [anon_sym_else] = ACTIONS(1),
    [anon_sym_begin] = ACTIONS(1),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT_DOT] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_DQUOTE] = ACTIONS(1),
    [anon_sym_SQUOTE] = ACTIONS(1),
    [sym_escape_sequence] = ACTIONS(1),
    [sym_stream_redirect] = ACTIONS(1),
    [sym_direction] = ACTIONS(1),
    [anon_sym_POUND] = ACTIONS(1),
    [sym_home_dir_expansion] = ACTIONS(1),
    [sym_glob] = ACTIONS(1),
    [sym__concat] = ACTIONS(1),
    [sym__brace_concat] = ACTIONS(1),
    [sym__concat_list] = ACTIONS(1),
  },
  [STATE(1)] = {
    [sym_program] = STATE(431),
    [sym_conditional_execution] = STATE(247),
    [sym_pipe] = STATE(247),
    [sym_redirect_statement] = STATE(247),
    [sym_negated_statement] = STATE(247),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(247),
    [sym_return] = STATE(247),
    [sym_switch_statement] = STATE(247),
    [sym_for_statement] = STATE(247),
    [sym_while_statement] = STATE(247),
    [sym_if_statement] = STATE(247),
    [sym_begin_statement] = STATE(247),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(247),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(14),
    [ts_builtin_sym_end] = ACTIONS(5),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(11),
    [anon_sym_AMP] = ACTIONS(11),
    [anon_sym_LF] = ACTIONS(11),
    [anon_sym_CR] = ACTIONS(11),
    [anon_sym_CR_LF] = ACTIONS(11),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(25),
    [sym_continue] = ACTIONS(25),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(2)] = {
    [sym_conditional_execution] = STATE(235),
    [sym_pipe] = STATE(235),
    [sym_redirect_statement] = STATE(235),
    [sym__terminated_opt_statement] = STATE(3),
    [sym_negated_statement] = STATE(235),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(235),
    [sym_return] = STATE(235),
    [sym_switch_statement] = STATE(235),
    [sym_for_statement] = STATE(235),
    [sym_while_statement] = STATE(235),
    [sym_if_statement] = STATE(235),
    [sym_else_if_clause] = STATE(356),
    [sym_else_clause] = STATE(434),
    [sym_begin_statement] = STATE(235),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(235),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(3),
    [aux_sym_if_statement_repeat1] = STATE(356),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(43),
    [anon_sym_AMP] = ACTIONS(43),
    [anon_sym_LF] = ACTIONS(43),
    [anon_sym_CR] = ACTIONS(43),
    [anon_sym_CR_LF] = ACTIONS(43),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(45),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(47),
    [sym_continue] = ACTIONS(47),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_else] = ACTIONS(49),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(3)] = {
    [sym_conditional_execution] = STATE(235),
    [sym_pipe] = STATE(235),
    [sym_redirect_statement] = STATE(235),
    [sym__terminated_opt_statement] = STATE(4),
    [sym_negated_statement] = STATE(235),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(235),
    [sym_return] = STATE(235),
    [sym_switch_statement] = STATE(235),
    [sym_for_statement] = STATE(235),
    [sym_while_statement] = STATE(235),
    [sym_if_statement] = STATE(235),
    [sym_else_if_clause] = STATE(354),
    [sym_else_clause] = STATE(436),
    [sym_begin_statement] = STATE(235),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(235),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(4),
    [aux_sym_if_statement_repeat1] = STATE(354),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(51),
    [anon_sym_AMP] = ACTIONS(51),
    [anon_sym_LF] = ACTIONS(51),
    [anon_sym_CR] = ACTIONS(51),
    [anon_sym_CR_LF] = ACTIONS(51),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(53),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(47),
    [sym_continue] = ACTIONS(47),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_else] = ACTIONS(49),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(4)] = {
    [sym_conditional_execution] = STATE(235),
    [sym_pipe] = STATE(235),
    [sym_redirect_statement] = STATE(235),
    [sym__terminated_opt_statement] = STATE(4),
    [sym_negated_statement] = STATE(235),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(235),
    [sym_return] = STATE(235),
    [sym_switch_statement] = STATE(235),
    [sym_for_statement] = STATE(235),
    [sym_while_statement] = STATE(235),
    [sym_if_statement] = STATE(235),
    [sym_begin_statement] = STATE(235),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(235),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(4),
    [sym_word] = ACTIONS(55),
    [anon_sym_and] = ACTIONS(58),
    [anon_sym_or] = ACTIONS(58),
    [anon_sym_SEMI] = ACTIONS(61),
    [anon_sym_AMP] = ACTIONS(61),
    [anon_sym_LF] = ACTIONS(61),
    [anon_sym_CR] = ACTIONS(61),
    [anon_sym_CR_LF] = ACTIONS(61),
    [anon_sym_BANG] = ACTIONS(64),
    [anon_sym_not] = ACTIONS(64),
    [anon_sym_DOLLAR] = ACTIONS(67),
    [anon_sym_LPAREN] = ACTIONS(70),
    [anon_sym_function] = ACTIONS(73),
    [anon_sym_end] = ACTIONS(76),
    [sym_integer] = ACTIONS(55),
    [sym_float] = ACTIONS(55),
    [anon_sym_return] = ACTIONS(78),
    [anon_sym_switch] = ACTIONS(81),
    [sym_break] = ACTIONS(84),
    [sym_continue] = ACTIONS(84),
    [anon_sym_for] = ACTIONS(87),
    [anon_sym_while] = ACTIONS(90),
    [anon_sym_if] = ACTIONS(93),
    [anon_sym_else] = ACTIONS(76),
    [anon_sym_begin] = ACTIONS(96),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(99),
    [anon_sym_RBRACK] = ACTIONS(99),
    [anon_sym_LBRACE] = ACTIONS(102),
    [anon_sym_DQUOTE] = ACTIONS(105),
    [anon_sym_SQUOTE] = ACTIONS(108),
    [sym_escape_sequence] = ACTIONS(55),
    [sym_home_dir_expansion] = ACTIONS(55),
    [sym_glob] = ACTIONS(55),
  },
  [STATE(5)] = {
    [sym_conditional_execution] = STATE(235),
    [sym_pipe] = STATE(235),
    [sym_redirect_statement] = STATE(235),
    [sym__terminated_opt_statement] = STATE(6),
    [sym_negated_statement] = STATE(235),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(235),
    [sym_return] = STATE(235),
    [sym_switch_statement] = STATE(235),
    [sym_for_statement] = STATE(235),
    [sym_while_statement] = STATE(235),
    [sym_if_statement] = STATE(235),
    [sym_begin_statement] = STATE(235),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(235),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(6),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(111),
    [anon_sym_AMP] = ACTIONS(111),
    [anon_sym_LF] = ACTIONS(111),
    [anon_sym_CR] = ACTIONS(111),
    [anon_sym_CR_LF] = ACTIONS(111),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(113),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(47),
    [sym_continue] = ACTIONS(47),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_else] = ACTIONS(113),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(6)] = {
    [sym_conditional_execution] = STATE(235),
    [sym_pipe] = STATE(235),
    [sym_redirect_statement] = STATE(235),
    [sym__terminated_opt_statement] = STATE(4),
    [sym_negated_statement] = STATE(235),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(235),
    [sym_return] = STATE(235),
    [sym_switch_statement] = STATE(235),
    [sym_for_statement] = STATE(235),
    [sym_while_statement] = STATE(235),
    [sym_if_statement] = STATE(235),
    [sym_begin_statement] = STATE(235),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(235),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(4),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(51),
    [anon_sym_AMP] = ACTIONS(51),
    [anon_sym_LF] = ACTIONS(51),
    [anon_sym_CR] = ACTIONS(51),
    [anon_sym_CR_LF] = ACTIONS(51),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(115),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(47),
    [sym_continue] = ACTIONS(47),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_else] = ACTIONS(115),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(7)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(9),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(9),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(117),
    [anon_sym_AMP] = ACTIONS(117),
    [anon_sym_LF] = ACTIONS(117),
    [anon_sym_CR] = ACTIONS(117),
    [anon_sym_CR_LF] = ACTIONS(117),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(119),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(121),
    [sym_continue] = ACTIONS(121),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(8)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(12),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(12),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(123),
    [anon_sym_AMP] = ACTIONS(123),
    [anon_sym_LF] = ACTIONS(123),
    [anon_sym_CR] = ACTIONS(123),
    [anon_sym_CR_LF] = ACTIONS(123),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(125),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(121),
    [sym_continue] = ACTIONS(121),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(9)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(10),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(10),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(127),
    [anon_sym_AMP] = ACTIONS(127),
    [anon_sym_LF] = ACTIONS(127),
    [anon_sym_CR] = ACTIONS(127),
    [anon_sym_CR_LF] = ACTIONS(127),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(129),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(121),
    [sym_continue] = ACTIONS(121),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(10)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(10),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(10),
    [sym_word] = ACTIONS(55),
    [anon_sym_and] = ACTIONS(58),
    [anon_sym_or] = ACTIONS(58),
    [anon_sym_SEMI] = ACTIONS(131),
    [anon_sym_AMP] = ACTIONS(131),
    [anon_sym_LF] = ACTIONS(131),
    [anon_sym_CR] = ACTIONS(131),
    [anon_sym_CR_LF] = ACTIONS(131),
    [anon_sym_BANG] = ACTIONS(64),
    [anon_sym_not] = ACTIONS(64),
    [anon_sym_DOLLAR] = ACTIONS(67),
    [anon_sym_LPAREN] = ACTIONS(70),
    [anon_sym_function] = ACTIONS(73),
    [anon_sym_end] = ACTIONS(76),
    [sym_integer] = ACTIONS(55),
    [sym_float] = ACTIONS(55),
    [anon_sym_return] = ACTIONS(78),
    [anon_sym_switch] = ACTIONS(81),
    [sym_break] = ACTIONS(134),
    [sym_continue] = ACTIONS(134),
    [anon_sym_for] = ACTIONS(87),
    [anon_sym_while] = ACTIONS(90),
    [anon_sym_if] = ACTIONS(93),
    [anon_sym_begin] = ACTIONS(96),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(99),
    [anon_sym_RBRACK] = ACTIONS(99),
    [anon_sym_LBRACE] = ACTIONS(102),
    [anon_sym_DQUOTE] = ACTIONS(105),
    [anon_sym_SQUOTE] = ACTIONS(108),
    [sym_escape_sequence] = ACTIONS(55),
    [sym_home_dir_expansion] = ACTIONS(55),
    [sym_glob] = ACTIONS(55),
  },
  [STATE(11)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(13),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(13),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(137),
    [anon_sym_AMP] = ACTIONS(137),
    [anon_sym_LF] = ACTIONS(137),
    [anon_sym_CR] = ACTIONS(137),
    [anon_sym_CR_LF] = ACTIONS(137),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(139),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(121),
    [sym_continue] = ACTIONS(121),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(12)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(10),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(10),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(127),
    [anon_sym_AMP] = ACTIONS(127),
    [anon_sym_LF] = ACTIONS(127),
    [anon_sym_CR] = ACTIONS(127),
    [anon_sym_CR_LF] = ACTIONS(127),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(141),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(121),
    [sym_continue] = ACTIONS(121),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(13)] = {
    [sym_conditional_execution] = STATE(245),
    [sym_pipe] = STATE(245),
    [sym_redirect_statement] = STATE(245),
    [sym__terminated_opt_statement] = STATE(10),
    [sym_negated_statement] = STATE(245),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(245),
    [sym_return] = STATE(245),
    [sym_switch_statement] = STATE(245),
    [sym_for_statement] = STATE(245),
    [sym_while_statement] = STATE(245),
    [sym_if_statement] = STATE(245),
    [sym_begin_statement] = STATE(245),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(245),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_while_statement_repeat1] = STATE(10),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(127),
    [anon_sym_AMP] = ACTIONS(127),
    [anon_sym_LF] = ACTIONS(127),
    [anon_sym_CR] = ACTIONS(127),
    [anon_sym_CR_LF] = ACTIONS(127),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [anon_sym_end] = ACTIONS(143),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(121),
    [sym_continue] = ACTIONS(121),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(14)] = {
    [sym_conditional_execution] = STATE(247),
    [sym_pipe] = STATE(247),
    [sym_redirect_statement] = STATE(247),
    [sym_negated_statement] = STATE(247),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(247),
    [sym_return] = STATE(247),
    [sym_switch_statement] = STATE(247),
    [sym_for_statement] = STATE(247),
    [sym_while_statement] = STATE(247),
    [sym_if_statement] = STATE(247),
    [sym_begin_statement] = STATE(247),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(247),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(16),
    [ts_builtin_sym_end] = ACTIONS(145),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(147),
    [anon_sym_AMP] = ACTIONS(147),
    [anon_sym_LF] = ACTIONS(147),
    [anon_sym_CR] = ACTIONS(147),
    [anon_sym_CR_LF] = ACTIONS(147),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(25),
    [sym_continue] = ACTIONS(25),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(15)] = {
    [sym_conditional_execution] = STATE(182),
    [sym_pipe] = STATE(182),
    [sym_redirect_statement] = STATE(182),
    [sym_negated_statement] = STATE(182),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(182),
    [sym_return] = STATE(182),
    [sym_switch_statement] = STATE(182),
    [sym_for_statement] = STATE(182),
    [sym_while_statement] = STATE(182),
    [sym_if_statement] = STATE(182),
    [sym_begin_statement] = STATE(182),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(182),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(151),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(153),
    [sym_continue] = ACTIONS(153),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(16)] = {
    [sym_conditional_execution] = STATE(247),
    [sym_pipe] = STATE(247),
    [sym_redirect_statement] = STATE(247),
    [sym_negated_statement] = STATE(247),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(247),
    [sym_return] = STATE(247),
    [sym_switch_statement] = STATE(247),
    [sym_for_statement] = STATE(247),
    [sym_while_statement] = STATE(247),
    [sym_if_statement] = STATE(247),
    [sym_begin_statement] = STATE(247),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(247),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(16),
    [ts_builtin_sym_end] = ACTIONS(155),
    [sym_word] = ACTIONS(157),
    [anon_sym_and] = ACTIONS(160),
    [anon_sym_or] = ACTIONS(160),
    [anon_sym_SEMI] = ACTIONS(163),
    [anon_sym_AMP] = ACTIONS(163),
    [anon_sym_LF] = ACTIONS(163),
    [anon_sym_CR] = ACTIONS(163),
    [anon_sym_CR_LF] = ACTIONS(163),
    [anon_sym_BANG] = ACTIONS(166),
    [anon_sym_not] = ACTIONS(166),
    [anon_sym_DOLLAR] = ACTIONS(169),
    [anon_sym_LPAREN] = ACTIONS(172),
    [anon_sym_function] = ACTIONS(175),
    [sym_integer] = ACTIONS(157),
    [sym_float] = ACTIONS(157),
    [anon_sym_return] = ACTIONS(178),
    [anon_sym_switch] = ACTIONS(181),
    [sym_break] = ACTIONS(184),
    [sym_continue] = ACTIONS(184),
    [anon_sym_for] = ACTIONS(187),
    [anon_sym_while] = ACTIONS(190),
    [anon_sym_if] = ACTIONS(193),
    [anon_sym_begin] = ACTIONS(196),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(199),
    [anon_sym_RBRACK] = ACTIONS(199),
    [anon_sym_LBRACE] = ACTIONS(202),
    [anon_sym_DQUOTE] = ACTIONS(205),
    [anon_sym_SQUOTE] = ACTIONS(208),
    [sym_escape_sequence] = ACTIONS(157),
    [sym_home_dir_expansion] = ACTIONS(157),
    [sym_glob] = ACTIONS(157),
  },
  [STATE(17)] = {
    [sym_conditional_execution] = STATE(227),
    [sym_pipe] = STATE(227),
    [sym_redirect_statement] = STATE(227),
    [sym_negated_statement] = STATE(227),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(227),
    [sym_return] = STATE(227),
    [sym_switch_statement] = STATE(227),
    [sym_for_statement] = STATE(227),
    [sym_while_statement] = STATE(227),
    [sym_if_statement] = STATE(227),
    [sym_begin_statement] = STATE(227),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(227),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(211),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(213),
    [sym_continue] = ACTIONS(213),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(18)] = {
    [sym_conditional_execution] = STATE(183),
    [sym_pipe] = STATE(183),
    [sym_redirect_statement] = STATE(183),
    [sym_negated_statement] = STATE(183),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(183),
    [sym_return] = STATE(183),
    [sym_switch_statement] = STATE(183),
    [sym_for_statement] = STATE(183),
    [sym_while_statement] = STATE(183),
    [sym_if_statement] = STATE(183),
    [sym_begin_statement] = STATE(183),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(183),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(15),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(215),
    [anon_sym_AMP] = ACTIONS(215),
    [anon_sym_LF] = ACTIONS(215),
    [anon_sym_CR] = ACTIONS(215),
    [anon_sym_CR_LF] = ACTIONS(215),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(217),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(219),
    [sym_continue] = ACTIONS(219),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(19)] = {
    [sym_conditional_execution] = STATE(272),
    [sym_pipe] = STATE(272),
    [sym_redirect_statement] = STATE(272),
    [sym_negated_statement] = STATE(272),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(272),
    [sym_return] = STATE(272),
    [sym_switch_statement] = STATE(272),
    [sym_for_statement] = STATE(272),
    [sym_while_statement] = STATE(272),
    [sym_if_statement] = STATE(272),
    [sym_begin_statement] = STATE(272),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(272),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(157),
    [anon_sym_and] = ACTIONS(160),
    [anon_sym_or] = ACTIONS(160),
    [anon_sym_SEMI] = ACTIONS(221),
    [anon_sym_AMP] = ACTIONS(221),
    [anon_sym_LF] = ACTIONS(221),
    [anon_sym_CR] = ACTIONS(221),
    [anon_sym_CR_LF] = ACTIONS(221),
    [anon_sym_BANG] = ACTIONS(166),
    [anon_sym_not] = ACTIONS(166),
    [anon_sym_DOLLAR] = ACTIONS(169),
    [anon_sym_LPAREN] = ACTIONS(172),
    [anon_sym_RPAREN] = ACTIONS(224),
    [anon_sym_function] = ACTIONS(175),
    [sym_integer] = ACTIONS(157),
    [sym_float] = ACTIONS(157),
    [anon_sym_return] = ACTIONS(178),
    [anon_sym_switch] = ACTIONS(181),
    [sym_break] = ACTIONS(226),
    [sym_continue] = ACTIONS(226),
    [anon_sym_for] = ACTIONS(187),
    [anon_sym_while] = ACTIONS(190),
    [anon_sym_if] = ACTIONS(193),
    [anon_sym_begin] = ACTIONS(196),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(199),
    [anon_sym_RBRACK] = ACTIONS(199),
    [anon_sym_LBRACE] = ACTIONS(202),
    [anon_sym_DQUOTE] = ACTIONS(205),
    [anon_sym_SQUOTE] = ACTIONS(208),
    [sym_escape_sequence] = ACTIONS(157),
    [sym_home_dir_expansion] = ACTIONS(157),
    [sym_glob] = ACTIONS(157),
  },
  [STATE(20)] = {
    [sym_conditional_execution] = STATE(182),
    [sym_pipe] = STATE(182),
    [sym_redirect_statement] = STATE(182),
    [sym_negated_statement] = STATE(182),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(182),
    [sym_return] = STATE(182),
    [sym_switch_statement] = STATE(182),
    [sym_for_statement] = STATE(182),
    [sym_while_statement] = STATE(182),
    [sym_if_statement] = STATE(182),
    [sym_begin_statement] = STATE(182),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(182),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(17),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(229),
    [anon_sym_AMP] = ACTIONS(229),
    [anon_sym_LF] = ACTIONS(229),
    [anon_sym_CR] = ACTIONS(229),
    [anon_sym_CR_LF] = ACTIONS(229),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(151),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(153),
    [sym_continue] = ACTIONS(153),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(21)] = {
    [sym_conditional_execution] = STATE(201),
    [sym_pipe] = STATE(201),
    [sym_redirect_statement] = STATE(201),
    [sym_negated_statement] = STATE(201),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(201),
    [sym_return] = STATE(201),
    [sym_switch_statement] = STATE(201),
    [sym_for_statement] = STATE(201),
    [sym_while_statement] = STATE(201),
    [sym_if_statement] = STATE(201),
    [sym_begin_statement] = STATE(201),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(201),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(23),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(231),
    [anon_sym_AMP] = ACTIONS(231),
    [anon_sym_LF] = ACTIONS(231),
    [anon_sym_CR] = ACTIONS(231),
    [anon_sym_CR_LF] = ACTIONS(231),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(233),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(235),
    [sym_continue] = ACTIONS(235),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(22)] = {
    [sym_conditional_execution] = STATE(202),
    [sym_pipe] = STATE(202),
    [sym_redirect_statement] = STATE(202),
    [sym_negated_statement] = STATE(202),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(202),
    [sym_return] = STATE(202),
    [sym_switch_statement] = STATE(202),
    [sym_for_statement] = STATE(202),
    [sym_while_statement] = STATE(202),
    [sym_if_statement] = STATE(202),
    [sym_begin_statement] = STATE(202),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(202),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(24),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(237),
    [anon_sym_AMP] = ACTIONS(237),
    [anon_sym_LF] = ACTIONS(237),
    [anon_sym_CR] = ACTIONS(237),
    [anon_sym_CR_LF] = ACTIONS(237),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(239),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(241),
    [sym_continue] = ACTIONS(241),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(23)] = {
    [sym_conditional_execution] = STATE(202),
    [sym_pipe] = STATE(202),
    [sym_redirect_statement] = STATE(202),
    [sym_negated_statement] = STATE(202),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(202),
    [sym_return] = STATE(202),
    [sym_switch_statement] = STATE(202),
    [sym_for_statement] = STATE(202),
    [sym_while_statement] = STATE(202),
    [sym_if_statement] = STATE(202),
    [sym_begin_statement] = STATE(202),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(202),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(239),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(241),
    [sym_continue] = ACTIONS(241),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(24)] = {
    [sym_conditional_execution] = STATE(203),
    [sym_pipe] = STATE(203),
    [sym_redirect_statement] = STATE(203),
    [sym_negated_statement] = STATE(203),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(203),
    [sym_return] = STATE(203),
    [sym_switch_statement] = STATE(203),
    [sym_for_statement] = STATE(203),
    [sym_while_statement] = STATE(203),
    [sym_if_statement] = STATE(203),
    [sym_begin_statement] = STATE(203),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(203),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(243),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(245),
    [sym_continue] = ACTIONS(245),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(25)] = {
    [sym_conditional_execution] = STATE(207),
    [sym_pipe] = STATE(207),
    [sym_redirect_statement] = STATE(207),
    [sym_negated_statement] = STATE(207),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(207),
    [sym_return] = STATE(207),
    [sym_switch_statement] = STATE(207),
    [sym_for_statement] = STATE(207),
    [sym_while_statement] = STATE(207),
    [sym_if_statement] = STATE(207),
    [sym_begin_statement] = STATE(207),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(207),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(27),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(247),
    [anon_sym_AMP] = ACTIONS(247),
    [anon_sym_LF] = ACTIONS(247),
    [anon_sym_CR] = ACTIONS(247),
    [anon_sym_CR_LF] = ACTIONS(247),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(249),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(251),
    [sym_continue] = ACTIONS(251),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(26)] = {
    [sym_conditional_execution] = STATE(208),
    [sym_pipe] = STATE(208),
    [sym_redirect_statement] = STATE(208),
    [sym_negated_statement] = STATE(208),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(208),
    [sym_return] = STATE(208),
    [sym_switch_statement] = STATE(208),
    [sym_for_statement] = STATE(208),
    [sym_while_statement] = STATE(208),
    [sym_if_statement] = STATE(208),
    [sym_begin_statement] = STATE(208),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(208),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(28),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(253),
    [anon_sym_AMP] = ACTIONS(253),
    [anon_sym_LF] = ACTIONS(253),
    [anon_sym_CR] = ACTIONS(253),
    [anon_sym_CR_LF] = ACTIONS(253),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(255),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(257),
    [sym_continue] = ACTIONS(257),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(27)] = {
    [sym_conditional_execution] = STATE(208),
    [sym_pipe] = STATE(208),
    [sym_redirect_statement] = STATE(208),
    [sym_negated_statement] = STATE(208),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(208),
    [sym_return] = STATE(208),
    [sym_switch_statement] = STATE(208),
    [sym_for_statement] = STATE(208),
    [sym_while_statement] = STATE(208),
    [sym_if_statement] = STATE(208),
    [sym_begin_statement] = STATE(208),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(208),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(255),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(257),
    [sym_continue] = ACTIONS(257),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(28)] = {
    [sym_conditional_execution] = STATE(209),
    [sym_pipe] = STATE(209),
    [sym_redirect_statement] = STATE(209),
    [sym_negated_statement] = STATE(209),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(209),
    [sym_return] = STATE(209),
    [sym_switch_statement] = STATE(209),
    [sym_for_statement] = STATE(209),
    [sym_while_statement] = STATE(209),
    [sym_if_statement] = STATE(209),
    [sym_begin_statement] = STATE(209),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(209),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(259),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(261),
    [sym_continue] = ACTIONS(261),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(29)] = {
    [sym_conditional_execution] = STATE(212),
    [sym_pipe] = STATE(212),
    [sym_redirect_statement] = STATE(212),
    [sym_negated_statement] = STATE(212),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(212),
    [sym_return] = STATE(212),
    [sym_switch_statement] = STATE(212),
    [sym_for_statement] = STATE(212),
    [sym_while_statement] = STATE(212),
    [sym_if_statement] = STATE(212),
    [sym_begin_statement] = STATE(212),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(212),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(31),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(263),
    [anon_sym_AMP] = ACTIONS(263),
    [anon_sym_LF] = ACTIONS(263),
    [anon_sym_CR] = ACTIONS(263),
    [anon_sym_CR_LF] = ACTIONS(263),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(265),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(267),
    [sym_continue] = ACTIONS(267),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(30)] = {
    [sym_conditional_execution] = STATE(213),
    [sym_pipe] = STATE(213),
    [sym_redirect_statement] = STATE(213),
    [sym_negated_statement] = STATE(213),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(213),
    [sym_return] = STATE(213),
    [sym_switch_statement] = STATE(213),
    [sym_for_statement] = STATE(213),
    [sym_while_statement] = STATE(213),
    [sym_if_statement] = STATE(213),
    [sym_begin_statement] = STATE(213),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(213),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(32),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(269),
    [anon_sym_AMP] = ACTIONS(269),
    [anon_sym_LF] = ACTIONS(269),
    [anon_sym_CR] = ACTIONS(269),
    [anon_sym_CR_LF] = ACTIONS(269),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(271),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(273),
    [sym_continue] = ACTIONS(273),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(31)] = {
    [sym_conditional_execution] = STATE(213),
    [sym_pipe] = STATE(213),
    [sym_redirect_statement] = STATE(213),
    [sym_negated_statement] = STATE(213),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(213),
    [sym_return] = STATE(213),
    [sym_switch_statement] = STATE(213),
    [sym_for_statement] = STATE(213),
    [sym_while_statement] = STATE(213),
    [sym_if_statement] = STATE(213),
    [sym_begin_statement] = STATE(213),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(213),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(271),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(273),
    [sym_continue] = ACTIONS(273),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(32)] = {
    [sym_conditional_execution] = STATE(214),
    [sym_pipe] = STATE(214),
    [sym_redirect_statement] = STATE(214),
    [sym_negated_statement] = STATE(214),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(214),
    [sym_return] = STATE(214),
    [sym_switch_statement] = STATE(214),
    [sym_for_statement] = STATE(214),
    [sym_while_statement] = STATE(214),
    [sym_if_statement] = STATE(214),
    [sym_begin_statement] = STATE(214),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(214),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(275),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(277),
    [sym_continue] = ACTIONS(277),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(33)] = {
    [sym_conditional_execution] = STATE(217),
    [sym_pipe] = STATE(217),
    [sym_redirect_statement] = STATE(217),
    [sym_negated_statement] = STATE(217),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(217),
    [sym_return] = STATE(217),
    [sym_switch_statement] = STATE(217),
    [sym_for_statement] = STATE(217),
    [sym_while_statement] = STATE(217),
    [sym_if_statement] = STATE(217),
    [sym_begin_statement] = STATE(217),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(217),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(35),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(279),
    [anon_sym_AMP] = ACTIONS(279),
    [anon_sym_LF] = ACTIONS(279),
    [anon_sym_CR] = ACTIONS(279),
    [anon_sym_CR_LF] = ACTIONS(279),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(281),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(283),
    [sym_continue] = ACTIONS(283),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(34)] = {
    [sym_conditional_execution] = STATE(218),
    [sym_pipe] = STATE(218),
    [sym_redirect_statement] = STATE(218),
    [sym_negated_statement] = STATE(218),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(218),
    [sym_return] = STATE(218),
    [sym_switch_statement] = STATE(218),
    [sym_for_statement] = STATE(218),
    [sym_while_statement] = STATE(218),
    [sym_if_statement] = STATE(218),
    [sym_begin_statement] = STATE(218),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(218),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(36),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(285),
    [anon_sym_AMP] = ACTIONS(285),
    [anon_sym_LF] = ACTIONS(285),
    [anon_sym_CR] = ACTIONS(285),
    [anon_sym_CR_LF] = ACTIONS(285),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(287),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(289),
    [sym_continue] = ACTIONS(289),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(35)] = {
    [sym_conditional_execution] = STATE(218),
    [sym_pipe] = STATE(218),
    [sym_redirect_statement] = STATE(218),
    [sym_negated_statement] = STATE(218),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(218),
    [sym_return] = STATE(218),
    [sym_switch_statement] = STATE(218),
    [sym_for_statement] = STATE(218),
    [sym_while_statement] = STATE(218),
    [sym_if_statement] = STATE(218),
    [sym_begin_statement] = STATE(218),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(218),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(287),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(289),
    [sym_continue] = ACTIONS(289),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(36)] = {
    [sym_conditional_execution] = STATE(219),
    [sym_pipe] = STATE(219),
    [sym_redirect_statement] = STATE(219),
    [sym_negated_statement] = STATE(219),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(219),
    [sym_return] = STATE(219),
    [sym_switch_statement] = STATE(219),
    [sym_for_statement] = STATE(219),
    [sym_while_statement] = STATE(219),
    [sym_if_statement] = STATE(219),
    [sym_begin_statement] = STATE(219),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(219),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(291),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(293),
    [sym_continue] = ACTIONS(293),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(37)] = {
    [sym_conditional_execution] = STATE(222),
    [sym_pipe] = STATE(222),
    [sym_redirect_statement] = STATE(222),
    [sym_negated_statement] = STATE(222),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(222),
    [sym_return] = STATE(222),
    [sym_switch_statement] = STATE(222),
    [sym_for_statement] = STATE(222),
    [sym_while_statement] = STATE(222),
    [sym_if_statement] = STATE(222),
    [sym_begin_statement] = STATE(222),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(222),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(39),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(295),
    [anon_sym_AMP] = ACTIONS(295),
    [anon_sym_LF] = ACTIONS(295),
    [anon_sym_CR] = ACTIONS(295),
    [anon_sym_CR_LF] = ACTIONS(295),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(297),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(299),
    [sym_continue] = ACTIONS(299),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(38)] = {
    [sym_conditional_execution] = STATE(223),
    [sym_pipe] = STATE(223),
    [sym_redirect_statement] = STATE(223),
    [sym_negated_statement] = STATE(223),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(223),
    [sym_return] = STATE(223),
    [sym_switch_statement] = STATE(223),
    [sym_for_statement] = STATE(223),
    [sym_while_statement] = STATE(223),
    [sym_if_statement] = STATE(223),
    [sym_begin_statement] = STATE(223),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(223),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(40),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(301),
    [anon_sym_AMP] = ACTIONS(301),
    [anon_sym_LF] = ACTIONS(301),
    [anon_sym_CR] = ACTIONS(301),
    [anon_sym_CR_LF] = ACTIONS(301),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(303),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(305),
    [sym_continue] = ACTIONS(305),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(39)] = {
    [sym_conditional_execution] = STATE(223),
    [sym_pipe] = STATE(223),
    [sym_redirect_statement] = STATE(223),
    [sym_negated_statement] = STATE(223),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(223),
    [sym_return] = STATE(223),
    [sym_switch_statement] = STATE(223),
    [sym_for_statement] = STATE(223),
    [sym_while_statement] = STATE(223),
    [sym_if_statement] = STATE(223),
    [sym_begin_statement] = STATE(223),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(223),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(303),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(305),
    [sym_continue] = ACTIONS(305),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(40)] = {
    [sym_conditional_execution] = STATE(224),
    [sym_pipe] = STATE(224),
    [sym_redirect_statement] = STATE(224),
    [sym_negated_statement] = STATE(224),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(224),
    [sym_return] = STATE(224),
    [sym_switch_statement] = STATE(224),
    [sym_for_statement] = STATE(224),
    [sym_while_statement] = STATE(224),
    [sym_if_statement] = STATE(224),
    [sym_begin_statement] = STATE(224),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(224),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(307),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(309),
    [sym_continue] = ACTIONS(309),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(41)] = {
    [sym_conditional_execution] = STATE(229),
    [sym_pipe] = STATE(229),
    [sym_redirect_statement] = STATE(229),
    [sym_negated_statement] = STATE(229),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(229),
    [sym_return] = STATE(229),
    [sym_switch_statement] = STATE(229),
    [sym_for_statement] = STATE(229),
    [sym_while_statement] = STATE(229),
    [sym_if_statement] = STATE(229),
    [sym_begin_statement] = STATE(229),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(229),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(43),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(311),
    [anon_sym_AMP] = ACTIONS(311),
    [anon_sym_LF] = ACTIONS(311),
    [anon_sym_CR] = ACTIONS(311),
    [anon_sym_CR_LF] = ACTIONS(311),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(313),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(315),
    [sym_continue] = ACTIONS(315),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(42)] = {
    [sym_conditional_execution] = STATE(230),
    [sym_pipe] = STATE(230),
    [sym_redirect_statement] = STATE(230),
    [sym_negated_statement] = STATE(230),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(230),
    [sym_return] = STATE(230),
    [sym_switch_statement] = STATE(230),
    [sym_for_statement] = STATE(230),
    [sym_while_statement] = STATE(230),
    [sym_if_statement] = STATE(230),
    [sym_begin_statement] = STATE(230),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(230),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(44),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(317),
    [anon_sym_AMP] = ACTIONS(317),
    [anon_sym_LF] = ACTIONS(317),
    [anon_sym_CR] = ACTIONS(317),
    [anon_sym_CR_LF] = ACTIONS(317),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(319),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(321),
    [sym_continue] = ACTIONS(321),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(43)] = {
    [sym_conditional_execution] = STATE(230),
    [sym_pipe] = STATE(230),
    [sym_redirect_statement] = STATE(230),
    [sym_negated_statement] = STATE(230),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(230),
    [sym_return] = STATE(230),
    [sym_switch_statement] = STATE(230),
    [sym_for_statement] = STATE(230),
    [sym_while_statement] = STATE(230),
    [sym_if_statement] = STATE(230),
    [sym_begin_statement] = STATE(230),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(230),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(319),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(321),
    [sym_continue] = ACTIONS(321),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
  [STATE(44)] = {
    [sym_conditional_execution] = STATE(231),
    [sym_pipe] = STATE(231),
    [sym_redirect_statement] = STATE(231),
    [sym_negated_statement] = STATE(231),
    [sym_command_substitution] = STATE(98),
    [sym_function_definition] = STATE(231),
    [sym_return] = STATE(231),
    [sym_switch_statement] = STATE(231),
    [sym_for_statement] = STATE(231),
    [sym_while_statement] = STATE(231),
    [sym_if_statement] = STATE(231),
    [sym_begin_statement] = STATE(231),
    [sym_variable_expansion] = STATE(98),
    [sym_brace_expansion] = STATE(98),
    [sym_double_quote_string] = STATE(98),
    [sym_single_quote_string] = STATE(98),
    [sym_command] = STATE(231),
    [sym__special_character] = STATE(95),
    [sym_concatenation] = STATE(80),
    [sym__expression] = STATE(80),
    [aux_sym_program_repeat1] = STATE(19),
    [sym_word] = ACTIONS(7),
    [anon_sym_and] = ACTIONS(9),
    [anon_sym_or] = ACTIONS(9),
    [anon_sym_SEMI] = ACTIONS(149),
    [anon_sym_AMP] = ACTIONS(149),
    [anon_sym_LF] = ACTIONS(149),
    [anon_sym_CR] = ACTIONS(149),
    [anon_sym_CR_LF] = ACTIONS(149),
    [anon_sym_BANG] = ACTIONS(13),
    [anon_sym_not] = ACTIONS(13),
    [anon_sym_DOLLAR] = ACTIONS(15),
    [anon_sym_LPAREN] = ACTIONS(17),
    [anon_sym_RPAREN] = ACTIONS(323),
    [anon_sym_function] = ACTIONS(19),
    [sym_integer] = ACTIONS(7),
    [sym_float] = ACTIONS(7),
    [anon_sym_return] = ACTIONS(21),
    [anon_sym_switch] = ACTIONS(23),
    [sym_break] = ACTIONS(325),
    [sym_continue] = ACTIONS(325),
    [anon_sym_for] = ACTIONS(27),
    [anon_sym_while] = ACTIONS(29),
    [anon_sym_if] = ACTIONS(31),
    [anon_sym_begin] = ACTIONS(33),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(35),
    [anon_sym_RBRACK] = ACTIONS(35),
    [anon_sym_LBRACE] = ACTIONS(37),
    [anon_sym_DQUOTE] = ACTIONS(39),
    [anon_sym_SQUOTE] = ACTIONS(41),
    [sym_escape_sequence] = ACTIONS(7),
    [sym_home_dir_expansion] = ACTIONS(7),
    [sym_glob] = ACTIONS(7),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(336), 1,
      anon_sym_DOLLAR,
    ACTIONS(339), 1,
      anon_sym_LPAREN,
    ACTIONS(342), 1,
      anon_sym_function,
    ACTIONS(347), 1,
      anon_sym_return,
    ACTIONS(350), 1,
      anon_sym_switch,
    ACTIONS(356), 1,
      anon_sym_for,
    ACTIONS(359), 1,
      anon_sym_while,
    ACTIONS(362), 1,
      anon_sym_if,
    ACTIONS(365), 1,
      anon_sym_begin,
    ACTIONS(371), 1,
      anon_sym_LBRACE,
    ACTIONS(374), 1,
      anon_sym_DQUOTE,
    ACTIONS(377), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(330), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(333), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(345), 2,
      anon_sym_end,
      anon_sym_case,
    ACTIONS(353), 2,
      sym_break,
      sym_continue,
    ACTIONS(368), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(45), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(327), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(254), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [100] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(380), 2,
      anon_sym_end,
      anon_sym_case,
    ACTIONS(382), 2,
      sym_break,
      sym_continue,
    STATE(45), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(254), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [200] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(382), 2,
      sym_break,
      sym_continue,
    ACTIONS(384), 2,
      anon_sym_end,
      anon_sym_case,
    STATE(46), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(254), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [300] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(386), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(55), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [399] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(390), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(56), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [498] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(392), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(57), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [597] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(394), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [696] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(336), 1,
      anon_sym_DOLLAR,
    ACTIONS(339), 1,
      anon_sym_LPAREN,
    ACTIONS(342), 1,
      anon_sym_function,
    ACTIONS(345), 1,
      anon_sym_end,
    ACTIONS(347), 1,
      anon_sym_return,
    ACTIONS(350), 1,
      anon_sym_switch,
    ACTIONS(356), 1,
      anon_sym_for,
    ACTIONS(359), 1,
      anon_sym_while,
    ACTIONS(362), 1,
      anon_sym_if,
    ACTIONS(365), 1,
      anon_sym_begin,
    ACTIONS(371), 1,
      anon_sym_LBRACE,
    ACTIONS(374), 1,
      anon_sym_DQUOTE,
    ACTIONS(377), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(330), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(333), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(368), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(396), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(327), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [795] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(399), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [894] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(401), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [993] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(403), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1092] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(405), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1191] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(407), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1290] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(409), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(64), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1389] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(411), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(65), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1488] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(413), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(67), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1587] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(415), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(53), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1686] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(417), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(51), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1785] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(419), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(68), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1884] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(421), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [1983] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(423), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2082] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(425), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2181] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(427), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2280] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(429), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(52), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2379] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(431), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(54), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2478] = 24,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(433), 1,
      anon_sym_end,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(388), 2,
      sym_break,
      sym_continue,
    STATE(66), 2,
      sym__terminated_statement,
      aux_sym_function_definition_repeat2,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(244), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2577] = 23,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(7), 1,
      sym__terminated_statement,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(435), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(258), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2672] = 23,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(5), 1,
      sym__terminated_statement,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(437), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(275), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2767] = 23,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(2), 1,
      sym__terminated_statement,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(437), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(275), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2862] = 22,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(439), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(185), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [2954] = 22,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(441), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(186), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [3046] = 22,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(443), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(181), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [3138] = 22,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      anon_sym_function,
    ACTIONS(21), 1,
      anon_sym_return,
    ACTIONS(23), 1,
      anon_sym_switch,
    ACTIONS(27), 1,
      anon_sym_for,
    ACTIONS(29), 1,
      anon_sym_while,
    ACTIONS(31), 1,
      anon_sym_if,
    ACTIONS(33), 1,
      anon_sym_begin,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(9), 2,
      anon_sym_and,
      anon_sym_or,
    ACTIONS(13), 2,
      anon_sym_BANG,
      anon_sym_not,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(445), 2,
      sym_break,
      sym_continue,
    STATE(80), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    STATE(184), 12,
      sym_conditional_execution,
      sym_pipe,
      sym_redirect_statement,
      sym_negated_statement,
      sym_function_definition,
      sym_return,
      sym_switch_statement,
      sym_for_statement,
      sym_while_statement,
      sym_if_statement,
      sym_begin_statement,
      sym_command,
  [3230] = 16,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(452), 1,
      anon_sym_DOLLAR,
    ACTIONS(455), 1,
      anon_sym_LPAREN,
    ACTIONS(461), 1,
      anon_sym_LBRACE,
    ACTIONS(464), 1,
      anon_sym_DQUOTE,
    ACTIONS(467), 1,
      anon_sym_SQUOTE,
    ACTIONS(470), 1,
      sym_stream_redirect,
    ACTIONS(473), 1,
      sym_direction,
    STATE(78), 1,
      aux_sym_command_repeat1,
    STATE(95), 1,
      sym__special_character,
    STATE(124), 1,
      sym_file_redirect,
    ACTIONS(458), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(122), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(447), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    ACTIONS(450), 11,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
  [3300] = 16,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(478), 1,
      sym_stream_redirect,
    ACTIONS(480), 1,
      sym_direction,
    STATE(78), 1,
      aux_sym_command_repeat1,
    STATE(95), 1,
      sym__special_character,
    STATE(124), 1,
      sym_file_redirect,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(122), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    ACTIONS(476), 11,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
  [3370] = 16,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(478), 1,
      sym_stream_redirect,
    ACTIONS(480), 1,
      sym_direction,
    STATE(79), 1,
      aux_sym_command_repeat1,
    STATE(95), 1,
      sym__special_character,
    STATE(124), 1,
      sym_file_redirect,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(122), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    ACTIONS(482), 11,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
  [3440] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(488), 1,
      anon_sym_DOLLAR,
    ACTIONS(490), 1,
      anon_sym_LPAREN,
    ACTIONS(494), 1,
      anon_sym_LBRACE,
    ACTIONS(496), 1,
      anon_sym_DQUOTE,
    ACTIONS(498), 1,
      anon_sym_SQUOTE,
    STATE(176), 1,
      sym__special_character,
    ACTIONS(492), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(268), 2,
      sym_concatenation,
      sym__expression,
    STATE(178), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(484), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
    ACTIONS(486), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [3500] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(500), 33,
      anon_sym_and,
      anon_sym_or,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      anon_sym_end,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_else,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3539] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 33,
      anon_sym_and,
      anon_sym_or,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      anon_sym_end,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_else,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3578] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(500), 32,
      anon_sym_and,
      anon_sym_or,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      anon_sym_end,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3616] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(224), 32,
      anon_sym_and,
      anon_sym_or,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_function,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3654] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(155), 1,
      ts_builtin_sym_end,
    ACTIONS(224), 31,
      anon_sym_and,
      anon_sym_or,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3694] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 32,
      anon_sym_and,
      anon_sym_or,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      anon_sym_end,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3732] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 1,
      sym__concat,
    ACTIONS(508), 1,
      sym__concat_list,
    STATE(88), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(504), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3773] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(513), 1,
      sym__concat,
    ACTIONS(515), 1,
      sym__concat_list,
    STATE(88), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(511), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3814] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(88), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(511), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3853] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(90), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(517), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3892] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(515), 1,
      sym__concat_list,
    ACTIONS(519), 1,
      sym__concat,
    STATE(89), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(517), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3933] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(523), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(521), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [3969] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(527), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(525), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4005] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(531), 1,
      sym__concat,
    STATE(100), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(529), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4043] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(535), 1,
      sym__concat,
    STATE(96), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(533), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4081] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(500), 28,
      anon_sym_and,
      anon_sym_or,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      anon_sym_end,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      anon_sym_case,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4115] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(531), 1,
      sym__concat,
    STATE(100), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(538), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4153] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(504), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4189] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(531), 1,
      sym__concat,
    STATE(96), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(540), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4227] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(547), 1,
      anon_sym_DOLLAR,
    ACTIONS(550), 1,
      anon_sym_LPAREN,
    ACTIONS(556), 1,
      anon_sym_LBRACE,
    ACTIONS(559), 1,
      anon_sym_DQUOTE,
    ACTIONS(562), 1,
      anon_sym_SQUOTE,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(553), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(101), 3,
      sym_concatenation,
      sym__expression,
      aux_sym_case_clause_repeat1,
    ACTIONS(545), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(542), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4280] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(567), 1,
      sym__concat,
    ACTIONS(565), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4315] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(571), 1,
      sym__concat,
    ACTIONS(569), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4350] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(575), 1,
      sym__concat,
    ACTIONS(573), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4385] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(579), 1,
      sym__concat,
    ACTIONS(577), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4420] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(101), 3,
      sym_concatenation,
      sym__expression,
      aux_sym_case_clause_repeat1,
    ACTIONS(583), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4473] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(500), 27,
      anon_sym_and,
      anon_sym_or,
      anon_sym_BANG,
      anon_sym_not,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_function,
      anon_sym_end,
      sym_integer,
      sym_float,
      anon_sym_return,
      anon_sym_switch,
      sym_break,
      sym_continue,
      anon_sym_for,
      anon_sym_while,
      anon_sym_if,
      anon_sym_begin,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4506] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(599), 1,
      sym__concat,
    ACTIONS(597), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4541] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(603), 1,
      sym__concat,
    ACTIONS(601), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4576] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(607), 1,
      sym__concat,
    ACTIONS(605), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4611] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(611), 1,
      sym__concat,
    ACTIONS(609), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4646] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(615), 1,
      sym__concat,
    ACTIONS(613), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4681] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(619), 1,
      sym__concat,
    ACTIONS(617), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4716] = 17,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    ACTIONS(621), 1,
      anon_sym_SEMI,
    ACTIONS(623), 1,
      anon_sym_AMP,
    ACTIONS(625), 1,
      anon_sym_LF,
    ACTIONS(627), 1,
      anon_sym_CR,
    ACTIONS(629), 1,
      anon_sym_CR_LF,
    STATE(119), 1,
      aux_sym_function_definition_repeat1,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(167), 2,
      sym_concatenation,
      sym__expression,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4779] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(633), 1,
      sym__concat,
    ACTIONS(631), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4814] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(635), 1,
      sym__concat,
    ACTIONS(533), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4849] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(639), 1,
      sym__concat,
    ACTIONS(637), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4884] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    STATE(114), 1,
      aux_sym_function_definition_repeat1,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(167), 2,
      sym_concatenation,
      sym__expression,
    ACTIONS(641), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4939] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(648), 1,
      anon_sym_DOLLAR,
    ACTIONS(651), 1,
      anon_sym_LPAREN,
    ACTIONS(657), 1,
      anon_sym_LBRACE,
    ACTIONS(660), 1,
      anon_sym_DQUOTE,
    ACTIONS(663), 1,
      anon_sym_SQUOTE,
    STATE(119), 1,
      aux_sym_function_definition_repeat1,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(654), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(167), 2,
      sym_concatenation,
      sym__expression,
    ACTIONS(646), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(643), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [4994] = 17,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    ACTIONS(666), 1,
      anon_sym_SEMI,
    ACTIONS(668), 1,
      anon_sym_AMP,
    ACTIONS(670), 1,
      anon_sym_LF,
    ACTIONS(672), 1,
      anon_sym_CR,
    ACTIONS(674), 1,
      anon_sym_CR_LF,
    STATE(121), 1,
      aux_sym_for_statement_repeat1,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(166), 2,
      sym_concatenation,
      sym__expression,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5057] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(681), 1,
      anon_sym_DOLLAR,
    ACTIONS(684), 1,
      anon_sym_LPAREN,
    ACTIONS(690), 1,
      anon_sym_LBRACE,
    ACTIONS(693), 1,
      anon_sym_DQUOTE,
    ACTIONS(696), 1,
      anon_sym_SQUOTE,
    STATE(121), 1,
      aux_sym_for_statement_repeat1,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(687), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(166), 2,
      sym_concatenation,
      sym__expression,
    ACTIONS(679), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(676), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5112] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(699), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5144] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(701), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5176] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(703), 26,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_stream_redirect,
      sym_direction,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5208] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    STATE(120), 1,
      aux_sym_for_statement_repeat1,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(166), 2,
      sym_concatenation,
      sym__expression,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5256] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(106), 3,
      sym_concatenation,
      sym__expression,
      aux_sym_case_clause_repeat1,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5302] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(713), 1,
      anon_sym_COMMA,
    ACTIONS(715), 1,
      anon_sym_RBRACE,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    STATE(397), 1,
      aux_sym_brace_expansion_repeat1,
    STATE(394), 2,
      sym_brace_concatenation,
      sym__brace_expression,
    ACTIONS(709), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(362), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [5349] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 1,
      sym__concat,
    ACTIONS(721), 1,
      sym__concat_list,
    STATE(128), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(504), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5382] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(713), 1,
      anon_sym_COMMA,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    ACTIONS(724), 1,
      anon_sym_RBRACE,
    STATE(389), 1,
      aux_sym_brace_expansion_repeat1,
    STATE(408), 2,
      sym_brace_concatenation,
      sym__brace_expression,
    ACTIONS(709), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(362), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [5429] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(713), 1,
      anon_sym_COMMA,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    ACTIONS(726), 1,
      anon_sym_RBRACE,
    STATE(414), 1,
      aux_sym_brace_expansion_repeat1,
    STATE(413), 2,
      sym_brace_concatenation,
      sym__brace_expression,
    ACTIONS(709), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(362), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [5476] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(519), 1,
      sym__concat,
    ACTIONS(728), 1,
      sym__concat_list,
    STATE(132), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(517), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5509] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(513), 1,
      sym__concat,
    ACTIONS(728), 1,
      sym__concat_list,
    STATE(128), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(511), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5542] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    STATE(95), 1,
      sym__special_character,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(123), 2,
      sym_concatenation,
      sym__expression,
    STATE(98), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(7), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5587] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(137), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(517), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5618] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(488), 1,
      anon_sym_DOLLAR,
    ACTIONS(490), 1,
      anon_sym_LPAREN,
    ACTIONS(494), 1,
      anon_sym_LBRACE,
    ACTIONS(496), 1,
      anon_sym_DQUOTE,
    ACTIONS(498), 1,
      anon_sym_SQUOTE,
    STATE(176), 1,
      sym__special_character,
    ACTIONS(492), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(257), 2,
      sym_concatenation,
      sym__expression,
    STATE(178), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(484), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5663] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(713), 1,
      anon_sym_COMMA,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    ACTIONS(730), 1,
      anon_sym_RBRACE,
    STATE(396), 1,
      aux_sym_brace_expansion_repeat1,
    STATE(395), 2,
      sym_brace_concatenation,
      sym__brace_expression,
    ACTIONS(709), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(362), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [5710] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(128), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(511), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5741] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(713), 1,
      anon_sym_COMMA,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    ACTIONS(732), 1,
      anon_sym_RBRACE,
    STATE(388), 1,
      aux_sym_brace_expansion_repeat1,
    STATE(405), 2,
      sym_brace_concatenation,
      sym__brace_expression,
    ACTIONS(709), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(362), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [5788] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    STATE(149), 1,
      sym__special_character,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(118), 2,
      sym_concatenation,
      sym__expression,
    STATE(152), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(581), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5833] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(736), 1,
      anon_sym_DOLLAR,
    ACTIONS(738), 1,
      anon_sym_LPAREN,
    ACTIONS(742), 1,
      anon_sym_LBRACE,
    ACTIONS(744), 1,
      anon_sym_DQUOTE,
    ACTIONS(746), 1,
      anon_sym_SQUOTE,
    STATE(310), 1,
      sym__special_character,
    ACTIONS(740), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(346), 2,
      sym_concatenation,
      sym__expression,
    STATE(308), 5,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
    ACTIONS(734), 6,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5878] = 9,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(585), 1,
      anon_sym_DOLLAR,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(591), 1,
      anon_sym_LBRACE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_SQUOTE,
    ACTIONS(589), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(163), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__special_character,
    ACTIONS(748), 7,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      anon_sym_POUND,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5918] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(750), 1,
      sym__concat,
    STATE(142), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(533), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5948] = 9,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(736), 1,
      anon_sym_DOLLAR,
    ACTIONS(738), 1,
      anon_sym_LPAREN,
    ACTIONS(742), 1,
      anon_sym_LBRACE,
    ACTIONS(744), 1,
      anon_sym_DQUOTE,
    ACTIONS(746), 1,
      anon_sym_SQUOTE,
    ACTIONS(740), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(345), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__special_character,
    ACTIONS(753), 7,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      anon_sym_POUND,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [5988] = 10,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    ACTIONS(755), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
    STATE(423), 2,
      sym_brace_concatenation,
      sym__brace_expression,
    ACTIONS(709), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(362), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [6030] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(504), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6058] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(757), 1,
      sym__concat,
    STATE(142), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(540), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6088] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(523), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(521), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6116] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(527), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(525), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6144] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(757), 1,
      sym__concat,
    STATE(146), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(529), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6174] = 9,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(488), 1,
      anon_sym_DOLLAR,
    ACTIONS(490), 1,
      anon_sym_LPAREN,
    ACTIONS(494), 1,
      anon_sym_LBRACE,
    ACTIONS(496), 1,
      anon_sym_DQUOTE,
    ACTIONS(498), 1,
      anon_sym_SQUOTE,
    ACTIONS(492), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(194), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__special_character,
    ACTIONS(759), 7,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      anon_sym_POUND,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6214] = 9,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(15), 1,
      anon_sym_DOLLAR,
    ACTIONS(17), 1,
      anon_sym_LPAREN,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_DQUOTE,
    ACTIONS(41), 1,
      anon_sym_SQUOTE,
    ACTIONS(35), 2,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    STATE(116), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__special_character,
    ACTIONS(761), 7,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      anon_sym_POUND,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6254] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(757), 1,
      sym__concat,
    STATE(146), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(538), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6284] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(639), 1,
      sym__concat,
    ACTIONS(637), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6311] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(567), 1,
      sym__concat,
    ACTIONS(565), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6338] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(571), 1,
      sym__concat,
    ACTIONS(569), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6365] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(603), 1,
      sym__concat,
    ACTIONS(601), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6392] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(607), 1,
      sym__concat,
    ACTIONS(605), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6419] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(579), 1,
      sym__concat,
    ACTIONS(577), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6446] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(611), 1,
      sym__concat,
    ACTIONS(609), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6473] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(619), 1,
      sym__concat,
    ACTIONS(617), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6500] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(575), 1,
      sym__concat,
    ACTIONS(573), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6527] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(599), 1,
      sym__concat,
    ACTIONS(597), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6554] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(635), 1,
      sym__concat,
    ACTIONS(533), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6581] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(615), 1,
      sym__concat,
    ACTIONS(613), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6608] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(633), 1,
      sym__concat,
    ACTIONS(631), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6635] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(763), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6659] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(765), 18,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      sym_float,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
      sym_escape_sequence,
      sym_home_dir_expansion,
      sym_glob,
      sym_word,
  [6683] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(513), 1,
      sym__concat,
    ACTIONS(767), 1,
      sym__concat_list,
    STATE(173), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(511), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6711] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(519), 1,
      sym__concat,
    ACTIONS(767), 1,
      sym__concat_list,
    STATE(168), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(517), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6739] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(705), 1,
      anon_sym_DOLLAR,
    ACTIONS(707), 1,
      anon_sym_LPAREN,
    ACTIONS(711), 1,
      anon_sym_LBRACE,
    ACTIONS(717), 1,
      anon_sym_DQUOTE,
    ACTIONS(719), 1,
      anon_sym_SQUOTE,
    ACTIONS(769), 5,
      sym_integer,
      sym_float,
      sym_escape_sequence,
      sym_glob,
      sym_brace_word,
    STATE(418), 6,
      sym_command_substitution,
      sym_variable_expansion,
      sym_brace_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
      sym__base_brace_expression,
  [6773] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(173), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(511), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6799] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(171), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(517), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6825] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 1,
      sym__concat,
    ACTIONS(771), 1,
      sym__concat_list,
    STATE(173), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(504), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6853] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(527), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(525), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6876] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(523), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(521), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6899] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(774), 1,
      sym__concat,
    STATE(179), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(529), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6924] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(776), 1,
      sym__concat,
    STATE(177), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(533), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6949] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(774), 1,
      sym__concat,
    STATE(179), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(538), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6974] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(774), 1,
      sym__concat,
    STATE(177), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(540), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [6999] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(504), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7022] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(779), 8,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
  [7050] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(211), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7082] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(151), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7114] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(791), 6,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
  [7144] = 3,
    ACTIONS(3), 1,
      sym_comment,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(793), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7166] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(795), 6,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
  [7196] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(807), 1,
      anon_sym_RBRACK,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [7234] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(579), 1,
      sym__concat,
    ACTIONS(577), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7256] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(639), 1,
      sym__concat,
    ACTIONS(637), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7278] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(599), 1,
      sym__concat,
    ACTIONS(597), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7300] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(615), 1,
      sym__concat,
    ACTIONS(613), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7322] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(633), 1,
      sym__concat,
    ACTIONS(631), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7344] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(567), 1,
      sym__concat,
    ACTIONS(565), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7366] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(635), 1,
      sym__concat,
    ACTIONS(533), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7388] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(603), 1,
      sym__concat,
    ACTIONS(601), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7410] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(607), 1,
      sym__concat,
    ACTIONS(605), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7432] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(611), 1,
      sym__concat,
    ACTIONS(609), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7454] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(619), 1,
      sym__concat,
    ACTIONS(617), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7476] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(575), 1,
      sym__concat,
    ACTIONS(573), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7498] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(571), 1,
      sym__concat,
    ACTIONS(569), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [7520] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(239), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7552] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(243), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7584] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(813), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7616] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(815), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(233), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [7654] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(817), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [7692] = 11,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(819), 1,
      anon_sym_DOLLAR,
    ACTIONS(822), 1,
      anon_sym_LPAREN,
    ACTIONS(825), 1,
      sym_integer,
    ACTIONS(828), 1,
      anon_sym_DOT_DOT,
    ACTIONS(831), 1,
      anon_sym_RBRACK,
    ACTIONS(833), 1,
      anon_sym_DQUOTE,
    ACTIONS(836), 1,
      anon_sym_SQUOTE,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [7730] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(255), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7762] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(259), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7794] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(839), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7826] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(841), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(211), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [7864] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(843), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [7902] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(271), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7934] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(275), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7966] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(845), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [7998] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(847), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(216), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8036] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(849), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8074] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(287), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8106] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(291), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8138] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(851), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8170] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(853), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(221), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8208] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(855), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8246] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(303), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8278] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(307), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8310] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(857), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8342] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(859), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(226), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8380] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(861), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8418] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(863), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8450] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(865), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(187), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8488] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(319), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8520] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(323), 1,
      anon_sym_RPAREN,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8552] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    ACTIONS(867), 1,
      anon_sym_RPAREN,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8584] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(869), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(205), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8622] = 11,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(805), 1,
      anon_sym_DOT_DOT,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    ACTIONS(871), 1,
      anon_sym_RBRACK,
    STATE(316), 1,
      sym_index,
    STATE(206), 2,
      sym_range,
      aux_sym_list_element_access_repeat1,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [8660] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(873), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8679] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(875), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8708] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(877), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8727] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(879), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8746] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(881), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8765] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(879), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8784] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(883), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8803] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(885), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8822] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(879), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8841] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(887), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8860] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(889), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8889] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(891), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8918] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(887), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8937] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(893), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [8966] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(895), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [8985] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(897), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9004] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(887), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9023] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(887), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9042] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(887), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9061] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(877), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9080] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(899), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9109] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(879), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9128] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(901), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9147] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(701), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9166] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(903), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9195] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(905), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9214] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(905), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9233] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(879), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9252] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(905), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9271] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(877), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9290] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(907), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9309] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(909), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9328] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(905), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9347] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(911), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9366] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(913), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9385] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(905), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9404] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(877), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9423] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(915), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9442] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(789), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9471] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(917), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9490] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(919), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9509] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(783), 1,
      sym_stream_redirect,
    ACTIONS(785), 1,
      sym_direction,
    STATE(234), 1,
      sym_file_redirect,
    ACTIONS(787), 2,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
    ACTIONS(781), 3,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
    ACTIONS(921), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9538] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(877), 13,
      anon_sym_PIPE_PIPE,
      anon_sym_AMP_AMP,
      anon_sym_AMP_PIPE,
      anon_sym_2_GT_PIPE,
      anon_sym_PIPE,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
      anon_sym_RPAREN,
      sym_stream_redirect,
      sym_direction,
  [9557] = 9,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    STATE(325), 1,
      sym_index,
    ACTIONS(923), 2,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [9589] = 9,
    ACTIONS(797), 1,
      anon_sym_DOLLAR,
    ACTIONS(799), 1,
      anon_sym_LPAREN,
    ACTIONS(801), 1,
      sym_integer,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(809), 1,
      anon_sym_DQUOTE,
    ACTIONS(811), 1,
      anon_sym_SQUOTE,
    STATE(313), 1,
      sym_index,
    ACTIONS(925), 2,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
    STATE(315), 4,
      sym_command_substitution,
      sym_variable_expansion,
      sym_double_quote_string,
      sym_single_quote_string,
  [9621] = 3,
    ACTIONS(803), 1,
      sym_comment,
    STATE(280), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 8,
      sym__concat_list,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9638] = 3,
    ACTIONS(803), 1,
      sym_comment,
    STATE(281), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 8,
      sym__concat_list,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9655] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(927), 1,
      sym__concat_list,
    STATE(281), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(506), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9674] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(930), 1,
      sym__concat_list,
    STATE(283), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9693] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(930), 1,
      sym__concat_list,
    STATE(281), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9712] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(289), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(517), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9730] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(936), 1,
      anon_sym_DQUOTE,
    ACTIONS(938), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9752] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(523), 8,
      sym__concat_list,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9766] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(527), 8,
      sym__concat_list,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [9780] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(940), 1,
      anon_sym_DQUOTE,
    ACTIONS(938), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9802] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(296), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(511), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9820] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(942), 1,
      anon_sym_DQUOTE,
    ACTIONS(944), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(288), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9842] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(946), 1,
      anon_sym_DQUOTE,
    ACTIONS(948), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(292), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9864] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(950), 1,
      anon_sym_DQUOTE,
    ACTIONS(938), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9886] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(952), 1,
      anon_sym_DQUOTE,
    ACTIONS(954), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(294), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9908] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(956), 1,
      anon_sym_DQUOTE,
    ACTIONS(938), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9930] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(958), 1,
      anon_sym_DQUOTE,
    ACTIONS(960), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(297), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9952] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 1,
      sym__concat,
    ACTIONS(962), 1,
      sym__concat_list,
    STATE(296), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(504), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [9972] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(965), 1,
      anon_sym_DQUOTE,
    ACTIONS(938), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [9994] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(967), 1,
      anon_sym_DOLLAR,
    ACTIONS(970), 1,
      anon_sym_LPAREN,
    ACTIONS(973), 1,
      anon_sym_DQUOTE,
    ACTIONS(975), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [10016] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(519), 1,
      sym__concat,
    ACTIONS(978), 1,
      sym__concat_list,
    STATE(300), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(517), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10036] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(513), 1,
      sym__concat,
    ACTIONS(978), 1,
      sym__concat_list,
    STATE(296), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(511), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10056] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(980), 1,
      anon_sym_DQUOTE,
    ACTIONS(982), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(302), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [10078] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(984), 1,
      anon_sym_DQUOTE,
    ACTIONS(938), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(298), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [10100] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(932), 1,
      anon_sym_DOLLAR,
    ACTIONS(934), 1,
      anon_sym_LPAREN,
    ACTIONS(986), 1,
      anon_sym_DQUOTE,
    ACTIONS(988), 2,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
    STATE(285), 3,
      sym_command_substitution,
      sym_variable_expansion,
      aux_sym_double_quote_string_repeat1,
  [10122] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(506), 8,
      sym__concat_list,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10136] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(571), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10149] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(519), 1,
      sym__concat_list,
    STATE(309), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(517), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10166] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(504), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10181] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(990), 1,
      sym__concat,
    STATE(314), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(538), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10198] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(513), 1,
      sym__concat_list,
    STATE(323), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(511), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10215] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(990), 1,
      sym__concat,
    STATE(314), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(529), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10232] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(523), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(521), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10247] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(527), 2,
      sym__concat,
      sym__concat_list,
    ACTIONS(525), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10262] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(923), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10275] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(990), 1,
      sym__concat,
    STATE(318), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(540), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10292] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(992), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10305] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(996), 1,
      anon_sym_DOT_DOT,
    ACTIONS(994), 6,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10320] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(615), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10333] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(998), 1,
      sym__concat,
    STATE(318), 1,
      aux_sym_concatenation_repeat1,
    ACTIONS(533), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10350] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(633), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10363] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(619), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10376] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(607), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10389] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(611), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10402] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1001), 1,
      sym__concat_list,
    STATE(323), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(504), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10419] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1004), 1,
      sym__concat_list,
    STATE(328), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(517), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10436] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1006), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10449] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(639), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10462] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(567), 7,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      sym_integer,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_DQUOTE,
      anon_sym_SQUOTE,
  [10475] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1004), 1,
      sym__concat_list,
    STATE(323), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(511), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10492] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(619), 1,
      sym__concat,
    ACTIONS(617), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10506] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1010), 1,
      anon_sym_if,
    ACTIONS(1008), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10520] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(603), 1,
      sym__concat,
    ACTIONS(601), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10534] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(607), 1,
      sym__concat,
    ACTIONS(605), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10548] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(611), 1,
      sym__concat,
    ACTIONS(609), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10562] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(575), 1,
      sym__concat,
    ACTIONS(573), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10576] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(571), 1,
      sym__concat,
    ACTIONS(569), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10590] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(579), 1,
      sym__concat,
    ACTIONS(577), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10604] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(639), 1,
      sym__concat,
    ACTIONS(637), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10618] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(599), 1,
      sym__concat,
    ACTIONS(597), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10632] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(506), 1,
      sym__concat_list,
    ACTIONS(504), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10646] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(615), 1,
      sym__concat,
    ACTIONS(613), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10660] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(523), 1,
      sym__concat_list,
    ACTIONS(521), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10674] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(527), 1,
      sym__concat_list,
    ACTIONS(525), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10688] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(633), 1,
      sym__concat,
    ACTIONS(631), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10702] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(567), 1,
      sym__concat,
    ACTIONS(565), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10716] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(635), 1,
      sym__concat,
    ACTIONS(533), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10730] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1012), 5,
      anon_sym_SEMI,
      anon_sym_AMP,
      anon_sym_LF,
      anon_sym_CR,
      anon_sym_CR_LF,
  [10741] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1014), 1,
      sym__concat_list,
    STATE(347), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(506), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10756] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1017), 1,
      sym__concat_list,
    STATE(353), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10771] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(637), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10782] = 3,
    ACTIONS(803), 1,
      sym_comment,
    STATE(347), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 4,
      sym__brace_concat,
      sym__concat_list,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10795] = 3,
    ACTIONS(803), 1,
      sym_comment,
    STATE(350), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(519), 4,
      sym__brace_concat,
      sym__concat_list,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10808] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(565), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10819] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1017), 1,
      sym__concat_list,
    STATE(347), 1,
      aux_sym_variable_expansion_repeat1,
    ACTIONS(513), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10834] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1019), 1,
      anon_sym_end,
    ACTIONS(1021), 1,
      anon_sym_else,
    STATE(435), 1,
      sym_else_clause,
    STATE(366), 2,
      sym_else_if_clause,
      aux_sym_if_statement_repeat1,
  [10851] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(617), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10862] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1021), 1,
      anon_sym_else,
    ACTIONS(1023), 1,
      anon_sym_end,
    STATE(436), 1,
      sym_else_clause,
    STATE(366), 2,
      sym_else_if_clause,
      aux_sym_if_statement_repeat1,
  [10879] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(569), 5,
      anon_sym_DOLLAR,
      anon_sym_LPAREN,
      anon_sym_DQUOTE,
      aux_sym_double_quote_string_token1,
      sym_escape_sequence,
  [10890] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1025), 1,
      anon_sym_SQUOTE,
    ACTIONS(1027), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1029), 1,
      sym_escape_sequence,
    STATE(381), 1,
      aux_sym_single_quote_string_repeat1,
  [10906] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1031), 1,
      anon_sym_SQUOTE,
    ACTIONS(1033), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1035), 1,
      sym_escape_sequence,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [10922] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(523), 4,
      sym__brace_concat,
      sym__concat_list,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10932] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(527), 4,
      sym__brace_concat,
      sym__concat_list,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10942] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1039), 1,
      sym__brace_concat,
    STATE(370), 1,
      aux_sym_brace_concatenation_repeat1,
    ACTIONS(1037), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10956] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1033), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1035), 1,
      sym_escape_sequence,
    ACTIONS(1041), 1,
      anon_sym_SQUOTE,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [10972] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1043), 1,
      anon_sym_DOLLAR,
    ACTIONS(1045), 1,
      anon_sym_LPAREN,
    ACTIONS(1047), 1,
      sym_variable_name,
    STATE(348), 1,
      sym_variable_expansion,
  [10988] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1049), 1,
      anon_sym_DOLLAR,
    ACTIONS(1051), 1,
      anon_sym_LPAREN,
    ACTIONS(1053), 1,
      sym_variable_name,
    STATE(324), 1,
      sym_variable_expansion,
  [11004] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1055), 1,
      anon_sym_end,
    ACTIONS(1057), 1,
      anon_sym_else,
    STATE(366), 2,
      sym_else_if_clause,
      aux_sym_if_statement_repeat1,
  [11018] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1060), 1,
      anon_sym_end,
    ACTIONS(1062), 1,
      anon_sym_case,
    STATE(380), 2,
      sym_case_clause,
      aux_sym_switch_statement_repeat1,
  [11032] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1064), 1,
      anon_sym_SQUOTE,
    ACTIONS(1066), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1068), 1,
      sym_escape_sequence,
    STATE(372), 1,
      aux_sym_single_quote_string_repeat1,
  [11048] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1070), 1,
      anon_sym_DOLLAR,
    ACTIONS(1072), 1,
      anon_sym_LPAREN,
    ACTIONS(1074), 1,
      sym_variable_name,
    STATE(169), 1,
      sym_variable_expansion,
  [11064] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1039), 1,
      sym__brace_concat,
    STATE(376), 1,
      aux_sym_brace_concatenation_repeat1,
    ACTIONS(1076), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11078] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1078), 1,
      anon_sym_SQUOTE,
    ACTIONS(1080), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1082), 1,
      sym_escape_sequence,
    STATE(384), 1,
      aux_sym_single_quote_string_repeat1,
  [11094] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1033), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1035), 1,
      sym_escape_sequence,
    ACTIONS(1084), 1,
      anon_sym_SQUOTE,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [11110] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1086), 1,
      anon_sym_SQUOTE,
    ACTIONS(1088), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1090), 1,
      sym_escape_sequence,
    STATE(359), 1,
      aux_sym_single_quote_string_repeat1,
  [11126] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(506), 4,
      sym__brace_concat,
      sym__concat_list,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11136] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1092), 1,
      anon_sym_SQUOTE,
    ACTIONS(1094), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1096), 1,
      sym_escape_sequence,
    STATE(387), 1,
      aux_sym_single_quote_string_repeat1,
  [11152] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1100), 1,
      sym__brace_concat,
    STATE(376), 1,
      aux_sym_brace_concatenation_repeat1,
    ACTIONS(1098), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11166] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1103), 1,
      anon_sym_SQUOTE,
    ACTIONS(1105), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1107), 1,
      sym_escape_sequence,
    STATE(363), 1,
      aux_sym_single_quote_string_repeat1,
  [11182] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1109), 1,
      anon_sym_DOLLAR,
    ACTIONS(1111), 1,
      anon_sym_LPAREN,
    ACTIONS(1113), 1,
      sym_variable_name,
    STATE(282), 1,
      sym_variable_expansion,
  [11198] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1115), 1,
      anon_sym_SQUOTE,
    ACTIONS(1117), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1120), 1,
      sym_escape_sequence,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [11214] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1123), 1,
      anon_sym_end,
    ACTIONS(1125), 1,
      anon_sym_case,
    STATE(380), 2,
      sym_case_clause,
      aux_sym_switch_statement_repeat1,
  [11228] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1033), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1035), 1,
      sym_escape_sequence,
    ACTIONS(1128), 1,
      anon_sym_SQUOTE,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [11244] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1130), 1,
      anon_sym_DOLLAR,
    ACTIONS(1132), 1,
      anon_sym_LPAREN,
    ACTIONS(1134), 1,
      sym_variable_name,
    STATE(299), 1,
      sym_variable_expansion,
  [11260] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1136), 1,
      anon_sym_DOLLAR,
    ACTIONS(1138), 1,
      anon_sym_LPAREN,
    ACTIONS(1140), 1,
      sym_variable_name,
    STATE(92), 1,
      sym_variable_expansion,
  [11276] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1033), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1035), 1,
      sym_escape_sequence,
    ACTIONS(1142), 1,
      anon_sym_SQUOTE,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [11292] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1062), 1,
      anon_sym_case,
    ACTIONS(1144), 1,
      anon_sym_end,
    STATE(367), 2,
      sym_case_clause,
      aux_sym_switch_statement_repeat1,
  [11306] = 5,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1146), 1,
      anon_sym_DOLLAR,
    ACTIONS(1148), 1,
      anon_sym_LPAREN,
    ACTIONS(1150), 1,
      sym_variable_name,
    STATE(131), 1,
      sym_variable_expansion,
  [11322] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(1033), 1,
      aux_sym_single_quote_string_token1,
    ACTIONS(1035), 1,
      sym_escape_sequence,
    ACTIONS(1152), 1,
      anon_sym_SQUOTE,
    STATE(379), 1,
      aux_sym_single_quote_string_repeat1,
  [11338] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1156), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11351] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1158), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11364] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1070), 1,
      anon_sym_DOLLAR,
    ACTIONS(1160), 1,
      sym_variable_name,
    STATE(172), 1,
      sym_variable_expansion,
  [11377] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1136), 1,
      anon_sym_DOLLAR,
    ACTIONS(1162), 1,
      sym_variable_name,
    STATE(91), 1,
      sym_variable_expansion,
  [11390] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1164), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11403] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1043), 1,
      anon_sym_DOLLAR,
    ACTIONS(1166), 1,
      sym_variable_name,
    STATE(351), 1,
      sym_variable_expansion,
  [11416] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1168), 1,
      anon_sym_RBRACE,
    STATE(401), 1,
      aux_sym_brace_expansion_repeat1,
  [11429] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1170), 1,
      anon_sym_RBRACE,
    STATE(400), 1,
      aux_sym_brace_expansion_repeat1,
  [11442] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1170), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11455] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1168), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11468] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(639), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11477] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1146), 1,
      anon_sym_DOLLAR,
    ACTIONS(1172), 1,
      sym_variable_name,
    STATE(134), 1,
      sym_variable_expansion,
  [11490] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1174), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11503] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1176), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11516] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(599), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11525] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(615), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11534] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1049), 1,
      anon_sym_DOLLAR,
    ACTIONS(1178), 1,
      sym_variable_name,
    STATE(306), 1,
      sym_variable_expansion,
  [11547] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1156), 1,
      anon_sym_RBRACE,
    STATE(412), 1,
      aux_sym_brace_expansion_repeat1,
  [11560] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(633), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11569] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(567), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11578] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1158), 1,
      anon_sym_RBRACE,
    STATE(392), 1,
      aux_sym_brace_expansion_repeat1,
  [11591] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1130), 1,
      anon_sym_DOLLAR,
    ACTIONS(1180), 1,
      sym_variable_name,
    STATE(284), 1,
      sym_variable_expansion,
  [11604] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(603), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11613] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(607), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11622] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1182), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11635] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1184), 1,
      anon_sym_RBRACE,
    STATE(419), 1,
      aux_sym_brace_expansion_repeat1,
  [11648] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1184), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11661] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1109), 1,
      anon_sym_DOLLAR,
    ACTIONS(1186), 1,
      sym_variable_name,
    STATE(279), 1,
      sym_variable_expansion,
  [11674] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(611), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11683] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(619), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11692] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1098), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11701] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1154), 1,
      anon_sym_COMMA,
    ACTIONS(1188), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11714] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(575), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11723] = 4,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1190), 1,
      anon_sym_COMMA,
    ACTIONS(1193), 1,
      anon_sym_RBRACE,
    STATE(421), 1,
      aux_sym_brace_expansion_repeat1,
  [11736] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(571), 3,
      sym__brace_concat,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11745] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1193), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [11753] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1195), 1,
      anon_sym_LBRACK,
    STATE(145), 1,
      sym_list_element_access,
  [11763] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1197), 1,
      anon_sym_LBRACK,
    STATE(99), 1,
      sym_list_element_access,
  [11773] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1199), 1,
      anon_sym_LBRACK,
    STATE(374), 1,
      sym_list_element_access,
  [11783] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1201), 1,
      anon_sym_LBRACK,
    STATE(180), 1,
      sym_list_element_access,
  [11793] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1203), 1,
      anon_sym_LBRACK,
    STATE(304), 1,
      sym_list_element_access,
  [11803] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1205), 1,
      anon_sym_LBRACK,
    STATE(307), 1,
      sym_list_element_access,
  [11813] = 3,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1207), 1,
      anon_sym_LBRACK,
    STATE(339), 1,
      sym_list_element_access,
  [11823] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1209), 1,
      ts_builtin_sym_end,
  [11830] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1211), 1,
      sym_variable_name,
  [11837] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1213), 1,
      anon_sym_in,
  [11844] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1023), 1,
      anon_sym_end,
  [11851] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1215), 1,
      anon_sym_end,
  [11858] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1019), 1,
      anon_sym_end,
  [11865] = 2,
    ACTIONS(803), 1,
      sym_comment,
    ACTIONS(1217), 1,
      anon_sym_if,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(45)] = 0,
  [SMALL_STATE(46)] = 100,
  [SMALL_STATE(47)] = 200,
  [SMALL_STATE(48)] = 300,
  [SMALL_STATE(49)] = 399,
  [SMALL_STATE(50)] = 498,
  [SMALL_STATE(51)] = 597,
  [SMALL_STATE(52)] = 696,
  [SMALL_STATE(53)] = 795,
  [SMALL_STATE(54)] = 894,
  [SMALL_STATE(55)] = 993,
  [SMALL_STATE(56)] = 1092,
  [SMALL_STATE(57)] = 1191,
  [SMALL_STATE(58)] = 1290,
  [SMALL_STATE(59)] = 1389,
  [SMALL_STATE(60)] = 1488,
  [SMALL_STATE(61)] = 1587,
  [SMALL_STATE(62)] = 1686,
  [SMALL_STATE(63)] = 1785,
  [SMALL_STATE(64)] = 1884,
  [SMALL_STATE(65)] = 1983,
  [SMALL_STATE(66)] = 2082,
  [SMALL_STATE(67)] = 2181,
  [SMALL_STATE(68)] = 2280,
  [SMALL_STATE(69)] = 2379,
  [SMALL_STATE(70)] = 2478,
  [SMALL_STATE(71)] = 2577,
  [SMALL_STATE(72)] = 2672,
  [SMALL_STATE(73)] = 2767,
  [SMALL_STATE(74)] = 2862,
  [SMALL_STATE(75)] = 2954,
  [SMALL_STATE(76)] = 3046,
  [SMALL_STATE(77)] = 3138,
  [SMALL_STATE(78)] = 3230,
  [SMALL_STATE(79)] = 3300,
  [SMALL_STATE(80)] = 3370,
  [SMALL_STATE(81)] = 3440,
  [SMALL_STATE(82)] = 3500,
  [SMALL_STATE(83)] = 3539,
  [SMALL_STATE(84)] = 3578,
  [SMALL_STATE(85)] = 3616,
  [SMALL_STATE(86)] = 3654,
  [SMALL_STATE(87)] = 3694,
  [SMALL_STATE(88)] = 3732,
  [SMALL_STATE(89)] = 3773,
  [SMALL_STATE(90)] = 3814,
  [SMALL_STATE(91)] = 3853,
  [SMALL_STATE(92)] = 3892,
  [SMALL_STATE(93)] = 3933,
  [SMALL_STATE(94)] = 3969,
  [SMALL_STATE(95)] = 4005,
  [SMALL_STATE(96)] = 4043,
  [SMALL_STATE(97)] = 4081,
  [SMALL_STATE(98)] = 4115,
  [SMALL_STATE(99)] = 4153,
  [SMALL_STATE(100)] = 4189,
  [SMALL_STATE(101)] = 4227,
  [SMALL_STATE(102)] = 4280,
  [SMALL_STATE(103)] = 4315,
  [SMALL_STATE(104)] = 4350,
  [SMALL_STATE(105)] = 4385,
  [SMALL_STATE(106)] = 4420,
  [SMALL_STATE(107)] = 4473,
  [SMALL_STATE(108)] = 4506,
  [SMALL_STATE(109)] = 4541,
  [SMALL_STATE(110)] = 4576,
  [SMALL_STATE(111)] = 4611,
  [SMALL_STATE(112)] = 4646,
  [SMALL_STATE(113)] = 4681,
  [SMALL_STATE(114)] = 4716,
  [SMALL_STATE(115)] = 4779,
  [SMALL_STATE(116)] = 4814,
  [SMALL_STATE(117)] = 4849,
  [SMALL_STATE(118)] = 4884,
  [SMALL_STATE(119)] = 4939,
  [SMALL_STATE(120)] = 4994,
  [SMALL_STATE(121)] = 5057,
  [SMALL_STATE(122)] = 5112,
  [SMALL_STATE(123)] = 5144,
  [SMALL_STATE(124)] = 5176,
  [SMALL_STATE(125)] = 5208,
  [SMALL_STATE(126)] = 5256,
  [SMALL_STATE(127)] = 5302,
  [SMALL_STATE(128)] = 5349,
  [SMALL_STATE(129)] = 5382,
  [SMALL_STATE(130)] = 5429,
  [SMALL_STATE(131)] = 5476,
  [SMALL_STATE(132)] = 5509,
  [SMALL_STATE(133)] = 5542,
  [SMALL_STATE(134)] = 5587,
  [SMALL_STATE(135)] = 5618,
  [SMALL_STATE(136)] = 5663,
  [SMALL_STATE(137)] = 5710,
  [SMALL_STATE(138)] = 5741,
  [SMALL_STATE(139)] = 5788,
  [SMALL_STATE(140)] = 5833,
  [SMALL_STATE(141)] = 5878,
  [SMALL_STATE(142)] = 5918,
  [SMALL_STATE(143)] = 5948,
  [SMALL_STATE(144)] = 5988,
  [SMALL_STATE(145)] = 6030,
  [SMALL_STATE(146)] = 6058,
  [SMALL_STATE(147)] = 6088,
  [SMALL_STATE(148)] = 6116,
  [SMALL_STATE(149)] = 6144,
  [SMALL_STATE(150)] = 6174,
  [SMALL_STATE(151)] = 6214,
  [SMALL_STATE(152)] = 6254,
  [SMALL_STATE(153)] = 6284,
  [SMALL_STATE(154)] = 6311,
  [SMALL_STATE(155)] = 6338,
  [SMALL_STATE(156)] = 6365,
  [SMALL_STATE(157)] = 6392,
  [SMALL_STATE(158)] = 6419,
  [SMALL_STATE(159)] = 6446,
  [SMALL_STATE(160)] = 6473,
  [SMALL_STATE(161)] = 6500,
  [SMALL_STATE(162)] = 6527,
  [SMALL_STATE(163)] = 6554,
  [SMALL_STATE(164)] = 6581,
  [SMALL_STATE(165)] = 6608,
  [SMALL_STATE(166)] = 6635,
  [SMALL_STATE(167)] = 6659,
  [SMALL_STATE(168)] = 6683,
  [SMALL_STATE(169)] = 6711,
  [SMALL_STATE(170)] = 6739,
  [SMALL_STATE(171)] = 6773,
  [SMALL_STATE(172)] = 6799,
  [SMALL_STATE(173)] = 6825,
  [SMALL_STATE(174)] = 6853,
  [SMALL_STATE(175)] = 6876,
  [SMALL_STATE(176)] = 6899,
  [SMALL_STATE(177)] = 6924,
  [SMALL_STATE(178)] = 6949,
  [SMALL_STATE(179)] = 6974,
  [SMALL_STATE(180)] = 6999,
  [SMALL_STATE(181)] = 7022,
  [SMALL_STATE(182)] = 7050,
  [SMALL_STATE(183)] = 7082,
  [SMALL_STATE(184)] = 7114,
  [SMALL_STATE(185)] = 7144,
  [SMALL_STATE(186)] = 7166,
  [SMALL_STATE(187)] = 7196,
  [SMALL_STATE(188)] = 7234,
  [SMALL_STATE(189)] = 7256,
  [SMALL_STATE(190)] = 7278,
  [SMALL_STATE(191)] = 7300,
  [SMALL_STATE(192)] = 7322,
  [SMALL_STATE(193)] = 7344,
  [SMALL_STATE(194)] = 7366,
  [SMALL_STATE(195)] = 7388,
  [SMALL_STATE(196)] = 7410,
  [SMALL_STATE(197)] = 7432,
  [SMALL_STATE(198)] = 7454,
  [SMALL_STATE(199)] = 7476,
  [SMALL_STATE(200)] = 7498,
  [SMALL_STATE(201)] = 7520,
  [SMALL_STATE(202)] = 7552,
  [SMALL_STATE(203)] = 7584,
  [SMALL_STATE(204)] = 7616,
  [SMALL_STATE(205)] = 7654,
  [SMALL_STATE(206)] = 7692,
  [SMALL_STATE(207)] = 7730,
  [SMALL_STATE(208)] = 7762,
  [SMALL_STATE(209)] = 7794,
  [SMALL_STATE(210)] = 7826,
  [SMALL_STATE(211)] = 7864,
  [SMALL_STATE(212)] = 7902,
  [SMALL_STATE(213)] = 7934,
  [SMALL_STATE(214)] = 7966,
  [SMALL_STATE(215)] = 7998,
  [SMALL_STATE(216)] = 8036,
  [SMALL_STATE(217)] = 8074,
  [SMALL_STATE(218)] = 8106,
  [SMALL_STATE(219)] = 8138,
  [SMALL_STATE(220)] = 8170,
  [SMALL_STATE(221)] = 8208,
  [SMALL_STATE(222)] = 8246,
  [SMALL_STATE(223)] = 8278,
  [SMALL_STATE(224)] = 8310,
  [SMALL_STATE(225)] = 8342,
  [SMALL_STATE(226)] = 8380,
  [SMALL_STATE(227)] = 8418,
  [SMALL_STATE(228)] = 8450,
  [SMALL_STATE(229)] = 8488,
  [SMALL_STATE(230)] = 8520,
  [SMALL_STATE(231)] = 8552,
  [SMALL_STATE(232)] = 8584,
  [SMALL_STATE(233)] = 8622,
  [SMALL_STATE(234)] = 8660,
  [SMALL_STATE(235)] = 8679,
  [SMALL_STATE(236)] = 8708,
  [SMALL_STATE(237)] = 8727,
  [SMALL_STATE(238)] = 8746,
  [SMALL_STATE(239)] = 8765,
  [SMALL_STATE(240)] = 8784,
  [SMALL_STATE(241)] = 8803,
  [SMALL_STATE(242)] = 8822,
  [SMALL_STATE(243)] = 8841,
  [SMALL_STATE(244)] = 8860,
  [SMALL_STATE(245)] = 8889,
  [SMALL_STATE(246)] = 8918,
  [SMALL_STATE(247)] = 8937,
  [SMALL_STATE(248)] = 8966,
  [SMALL_STATE(249)] = 8985,
  [SMALL_STATE(250)] = 9004,
  [SMALL_STATE(251)] = 9023,
  [SMALL_STATE(252)] = 9042,
  [SMALL_STATE(253)] = 9061,
  [SMALL_STATE(254)] = 9080,
  [SMALL_STATE(255)] = 9109,
  [SMALL_STATE(256)] = 9128,
  [SMALL_STATE(257)] = 9147,
  [SMALL_STATE(258)] = 9166,
  [SMALL_STATE(259)] = 9195,
  [SMALL_STATE(260)] = 9214,
  [SMALL_STATE(261)] = 9233,
  [SMALL_STATE(262)] = 9252,
  [SMALL_STATE(263)] = 9271,
  [SMALL_STATE(264)] = 9290,
  [SMALL_STATE(265)] = 9309,
  [SMALL_STATE(266)] = 9328,
  [SMALL_STATE(267)] = 9347,
  [SMALL_STATE(268)] = 9366,
  [SMALL_STATE(269)] = 9385,
  [SMALL_STATE(270)] = 9404,
  [SMALL_STATE(271)] = 9423,
  [SMALL_STATE(272)] = 9442,
  [SMALL_STATE(273)] = 9471,
  [SMALL_STATE(274)] = 9490,
  [SMALL_STATE(275)] = 9509,
  [SMALL_STATE(276)] = 9538,
  [SMALL_STATE(277)] = 9557,
  [SMALL_STATE(278)] = 9589,
  [SMALL_STATE(279)] = 9621,
  [SMALL_STATE(280)] = 9638,
  [SMALL_STATE(281)] = 9655,
  [SMALL_STATE(282)] = 9674,
  [SMALL_STATE(283)] = 9693,
  [SMALL_STATE(284)] = 9712,
  [SMALL_STATE(285)] = 9730,
  [SMALL_STATE(286)] = 9752,
  [SMALL_STATE(287)] = 9766,
  [SMALL_STATE(288)] = 9780,
  [SMALL_STATE(289)] = 9802,
  [SMALL_STATE(290)] = 9820,
  [SMALL_STATE(291)] = 9842,
  [SMALL_STATE(292)] = 9864,
  [SMALL_STATE(293)] = 9886,
  [SMALL_STATE(294)] = 9908,
  [SMALL_STATE(295)] = 9930,
  [SMALL_STATE(296)] = 9952,
  [SMALL_STATE(297)] = 9972,
  [SMALL_STATE(298)] = 9994,
  [SMALL_STATE(299)] = 10016,
  [SMALL_STATE(300)] = 10036,
  [SMALL_STATE(301)] = 10056,
  [SMALL_STATE(302)] = 10078,
  [SMALL_STATE(303)] = 10100,
  [SMALL_STATE(304)] = 10122,
  [SMALL_STATE(305)] = 10136,
  [SMALL_STATE(306)] = 10149,
  [SMALL_STATE(307)] = 10166,
  [SMALL_STATE(308)] = 10181,
  [SMALL_STATE(309)] = 10198,
  [SMALL_STATE(310)] = 10215,
  [SMALL_STATE(311)] = 10232,
  [SMALL_STATE(312)] = 10247,
  [SMALL_STATE(313)] = 10262,
  [SMALL_STATE(314)] = 10275,
  [SMALL_STATE(315)] = 10292,
  [SMALL_STATE(316)] = 10305,
  [SMALL_STATE(317)] = 10320,
  [SMALL_STATE(318)] = 10333,
  [SMALL_STATE(319)] = 10350,
  [SMALL_STATE(320)] = 10363,
  [SMALL_STATE(321)] = 10376,
  [SMALL_STATE(322)] = 10389,
  [SMALL_STATE(323)] = 10402,
  [SMALL_STATE(324)] = 10419,
  [SMALL_STATE(325)] = 10436,
  [SMALL_STATE(326)] = 10449,
  [SMALL_STATE(327)] = 10462,
  [SMALL_STATE(328)] = 10475,
  [SMALL_STATE(329)] = 10492,
  [SMALL_STATE(330)] = 10506,
  [SMALL_STATE(331)] = 10520,
  [SMALL_STATE(332)] = 10534,
  [SMALL_STATE(333)] = 10548,
  [SMALL_STATE(334)] = 10562,
  [SMALL_STATE(335)] = 10576,
  [SMALL_STATE(336)] = 10590,
  [SMALL_STATE(337)] = 10604,
  [SMALL_STATE(338)] = 10618,
  [SMALL_STATE(339)] = 10632,
  [SMALL_STATE(340)] = 10646,
  [SMALL_STATE(341)] = 10660,
  [SMALL_STATE(342)] = 10674,
  [SMALL_STATE(343)] = 10688,
  [SMALL_STATE(344)] = 10702,
  [SMALL_STATE(345)] = 10716,
  [SMALL_STATE(346)] = 10730,
  [SMALL_STATE(347)] = 10741,
  [SMALL_STATE(348)] = 10756,
  [SMALL_STATE(349)] = 10771,
  [SMALL_STATE(350)] = 10782,
  [SMALL_STATE(351)] = 10795,
  [SMALL_STATE(352)] = 10808,
  [SMALL_STATE(353)] = 10819,
  [SMALL_STATE(354)] = 10834,
  [SMALL_STATE(355)] = 10851,
  [SMALL_STATE(356)] = 10862,
  [SMALL_STATE(357)] = 10879,
  [SMALL_STATE(358)] = 10890,
  [SMALL_STATE(359)] = 10906,
  [SMALL_STATE(360)] = 10922,
  [SMALL_STATE(361)] = 10932,
  [SMALL_STATE(362)] = 10942,
  [SMALL_STATE(363)] = 10956,
  [SMALL_STATE(364)] = 10972,
  [SMALL_STATE(365)] = 10988,
  [SMALL_STATE(366)] = 11004,
  [SMALL_STATE(367)] = 11018,
  [SMALL_STATE(368)] = 11032,
  [SMALL_STATE(369)] = 11048,
  [SMALL_STATE(370)] = 11064,
  [SMALL_STATE(371)] = 11078,
  [SMALL_STATE(372)] = 11094,
  [SMALL_STATE(373)] = 11110,
  [SMALL_STATE(374)] = 11126,
  [SMALL_STATE(375)] = 11136,
  [SMALL_STATE(376)] = 11152,
  [SMALL_STATE(377)] = 11166,
  [SMALL_STATE(378)] = 11182,
  [SMALL_STATE(379)] = 11198,
  [SMALL_STATE(380)] = 11214,
  [SMALL_STATE(381)] = 11228,
  [SMALL_STATE(382)] = 11244,
  [SMALL_STATE(383)] = 11260,
  [SMALL_STATE(384)] = 11276,
  [SMALL_STATE(385)] = 11292,
  [SMALL_STATE(386)] = 11306,
  [SMALL_STATE(387)] = 11322,
  [SMALL_STATE(388)] = 11338,
  [SMALL_STATE(389)] = 11351,
  [SMALL_STATE(390)] = 11364,
  [SMALL_STATE(391)] = 11377,
  [SMALL_STATE(392)] = 11390,
  [SMALL_STATE(393)] = 11403,
  [SMALL_STATE(394)] = 11416,
  [SMALL_STATE(395)] = 11429,
  [SMALL_STATE(396)] = 11442,
  [SMALL_STATE(397)] = 11455,
  [SMALL_STATE(398)] = 11468,
  [SMALL_STATE(399)] = 11477,
  [SMALL_STATE(400)] = 11490,
  [SMALL_STATE(401)] = 11503,
  [SMALL_STATE(402)] = 11516,
  [SMALL_STATE(403)] = 11525,
  [SMALL_STATE(404)] = 11534,
  [SMALL_STATE(405)] = 11547,
  [SMALL_STATE(406)] = 11560,
  [SMALL_STATE(407)] = 11569,
  [SMALL_STATE(408)] = 11578,
  [SMALL_STATE(409)] = 11591,
  [SMALL_STATE(410)] = 11604,
  [SMALL_STATE(411)] = 11613,
  [SMALL_STATE(412)] = 11622,
  [SMALL_STATE(413)] = 11635,
  [SMALL_STATE(414)] = 11648,
  [SMALL_STATE(415)] = 11661,
  [SMALL_STATE(416)] = 11674,
  [SMALL_STATE(417)] = 11683,
  [SMALL_STATE(418)] = 11692,
  [SMALL_STATE(419)] = 11701,
  [SMALL_STATE(420)] = 11714,
  [SMALL_STATE(421)] = 11723,
  [SMALL_STATE(422)] = 11736,
  [SMALL_STATE(423)] = 11745,
  [SMALL_STATE(424)] = 11753,
  [SMALL_STATE(425)] = 11763,
  [SMALL_STATE(426)] = 11773,
  [SMALL_STATE(427)] = 11783,
  [SMALL_STATE(428)] = 11793,
  [SMALL_STATE(429)] = 11803,
  [SMALL_STATE(430)] = 11813,
  [SMALL_STATE(431)] = 11823,
  [SMALL_STATE(432)] = 11830,
  [SMALL_STATE(433)] = 11837,
  [SMALL_STATE(434)] = 11844,
  [SMALL_STATE(435)] = 11851,
  [SMALL_STATE(436)] = 11858,
  [SMALL_STATE(437)] = 11865,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0),
  [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98),
  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75),
  [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
  [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76),
  [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(383),
  [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139),
  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81),
  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140),
  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(432),
  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105),
  [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129),
  [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(290),
  [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(358),
  [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
  [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241),
  [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235),
  [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(330),
  [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
  [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256),
  [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(98),
  [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(75),
  [61] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4),
  [64] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(76),
  [67] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(383),
  [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(18),
  [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(139),
  [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0),
  [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(81),
  [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(140),
  [84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(235),
  [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(432),
  [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(71),
  [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(73),
  [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(8),
  [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(105),
  [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(129),
  [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(290),
  [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(358),
  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6),
  [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_if_clause, 3, 0, 16),
  [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_if_clause, 4, 0, 16),
  [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274),
  [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245),
  [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
  [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(238),
  [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
  [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(248),
  [131] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(10),
  [134] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_while_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(245),
  [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
  [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 2, 0, 0),
  [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(267),
  [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 0),
  [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0),
  [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
  [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
  [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102),
  [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182),
  [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0),
  [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(98),
  [160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(75),
  [163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(16),
  [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(76),
  [169] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(383),
  [172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(18),
  [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(139),
  [178] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(81),
  [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(140),
  [184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(247),
  [187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(432),
  [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(71),
  [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(73),
  [196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(8),
  [199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(105),
  [202] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(129),
  [205] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(290),
  [208] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(358),
  [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113),
  [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227),
  [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
  [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117),
  [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183),
  [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(19),
  [224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0),
  [226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(272),
  [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
  [231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23),
  [233] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153),
  [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201),
  [237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24),
  [239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154),
  [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(202),
  [243] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160),
  [245] = {.entry = {.count = 1, .reusable = false}}, SHIFT(203),
  [247] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27),
  [249] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189),
  [251] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207),
  [253] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28),
  [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193),
  [257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(208),
  [259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198),
  [261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(209),
  [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31),
  [265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337),
  [267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212),
  [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32),
  [271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344),
  [273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213),
  [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(329),
  [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214),
  [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35),
  [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(398),
  [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217),
  [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
  [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407),
  [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218),
  [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(417),
  [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219),
  [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39),
  [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(349),
  [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222),
  [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40),
  [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(352),
  [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223),
  [307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(355),
  [309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224),
  [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43),
  [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(326),
  [315] = {.entry = {.count = 1, .reusable = false}}, SHIFT(229),
  [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
  [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(327),
  [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230),
  [323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(320),
  [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(231),
  [327] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(98),
  [330] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(75),
  [333] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(76),
  [336] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(383),
  [339] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(18),
  [342] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(139),
  [345] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0),
  [347] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(81),
  [350] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(140),
  [353] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(254),
  [356] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(432),
  [359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(71),
  [362] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(73),
  [365] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(8),
  [368] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(105),
  [371] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(129),
  [374] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(290),
  [377] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(358),
  [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_clause, 4, 0, 0),
  [382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254),
  [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_clause, 3, 0, 0),
  [386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242),
  [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244),
  [390] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255),
  [392] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261),
  [394] = {.entry = {.count = 1, .reusable = false}}, SHIFT(264),
  [396] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat2, 2, 0, 0), SHIFT_REPEAT(244),
  [399] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243),
  [401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246),
  [403] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250),
  [405] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251),
  [407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252),
  [409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259),
  [411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260),
  [413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266),
  [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(237),
  [417] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249),
  [419] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269),
  [421] = {.entry = {.count = 1, .reusable = false}}, SHIFT(270),
  [423] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236),
  [425] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276),
  [427] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253),
  [429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263),
  [431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239),
  [433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(262),
  [435] = {.entry = {.count = 1, .reusable = false}}, SHIFT(258),
  [437] = {.entry = {.count = 1, .reusable = false}}, SHIFT(275),
  [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185),
  [441] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186),
  [443] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181),
  [445] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184),
  [447] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(98),
  [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9),
  [452] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(383),
  [455] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(18),
  [458] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(105),
  [461] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(129),
  [464] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(290),
  [467] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(358),
  [470] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(124),
  [473] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 2, 0, 9), SHIFT_REPEAT(133),
  [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 2, 0, 5),
  [478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124),
  [480] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133),
  [482] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command, 1, 0, 2),
  [484] = {.entry = {.count = 1, .reusable = false}}, SHIFT(178),
  [486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return, 1, 0, 0),
  [488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(369),
  [490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25),
  [492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188),
  [494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127),
  [496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(293),
  [498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(375),
  [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__terminated_statement, 2, 0, 0),
  [502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__terminated_opt_statement, 2, 0, 0),
  [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0),
  [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0),
  [508] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(425),
  [511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_expansion, 3, 0, 0),
  [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expansion, 3, 0, 0),
  [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425),
  [517] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_expansion, 2, 0, 0),
  [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expansion, 2, 0, 0),
  [521] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_element_access, 2, 0, 0),
  [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_element_access, 2, 0, 0),
  [525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_element_access, 3, 0, 0),
  [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_element_access, 3, 0, 0),
  [529] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 1),
  [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
  [533] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenation_repeat1, 2, 0, 0),
  [535] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenation_repeat1, 2, 0, 0), SHIFT_REPEAT(151),
  [538] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 0),
  [540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenation, 2, 0, 0),
  [542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(152),
  [545] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0),
  [547] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(386),
  [550] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(21),
  [553] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(158),
  [556] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(138),
  [559] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(291),
  [562] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(377),
  [565] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_substitution, 3, 0, 0),
  [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_substitution, 3, 0, 0),
  [569] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_substitution, 5, 0, 0),
  [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_substitution, 5, 0, 0),
  [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_brace_expansion, 4, 0, 0),
  [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_brace_expansion, 4, 0, 0),
  [577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__special_character, 1, 0, 0),
  [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__special_character, 1, 0, 0),
  [581] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152),
  [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47),
  [585] = {.entry = {.count = 1, .reusable = false}}, SHIFT(386),
  [587] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21),
  [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158),
  [591] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138),
  [593] = {.entry = {.count = 1, .reusable = false}}, SHIFT(291),
  [595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(377),
  [597] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_brace_expansion, 2, 0, 0),
  [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_brace_expansion, 2, 0, 0),
  [601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_brace_expansion, 3, 0, 0),
  [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_brace_expansion, 3, 0, 0),
  [605] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_double_quote_string, 3, 0, 0),
  [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_quote_string, 3, 0, 0),
  [609] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_single_quote_string, 3, 0, 0),
  [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_quote_string, 3, 0, 0),
  [613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_double_quote_string, 2, 0, 0),
  [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_quote_string, 2, 0, 0),
  [617] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_substitution, 4, 0, 0),
  [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_substitution, 4, 0, 0),
  [621] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
  [623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69),
  [625] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48),
  [627] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
  [629] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50),
  [631] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_single_quote_string, 2, 0, 0),
  [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_quote_string, 2, 0, 0),
  [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenation_repeat1, 2, 0, 0),
  [637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_substitution, 2, 0, 0),
  [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_substitution, 2, 0, 0),
  [641] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
  [643] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(152),
  [646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11),
  [648] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(386),
  [651] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(21),
  [654] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(158),
  [657] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(138),
  [660] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(291),
  [663] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 11), SHIFT_REPEAT(377),
  [666] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58),
  [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59),
  [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
  [672] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
  [674] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
  [676] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(152),
  [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15),
  [681] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(386),
  [684] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(21),
  [687] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(158),
  [690] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(138),
  [693] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(291),
  [696] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 2, 0, 15), SHIFT_REPEAT(377),
  [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 1, 0, 4),
  [701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_file_redirect, 2, 0, 7),
  [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_command_repeat1, 1, 0, 3),
  [705] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364),
  [707] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33),
  [709] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362),
  [711] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136),
  [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144),
  [715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190),
  [717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(301),
  [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(373),
  [721] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(424),
  [724] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108),
  [726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338),
  [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424),
  [730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(402),
  [732] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162),
  [734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308),
  [736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(382),
  [738] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
  [740] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336),
  [742] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130),
  [744] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295),
  [746] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371),
  [748] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163),
  [750] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenation_repeat1, 2, 0, 0), SHIFT_REPEAT(141),
  [753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345),
  [755] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_brace_expansion_repeat1, 1, 0, 0),
  [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
  [759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194),
  [761] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116),
  [763] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_for_statement_repeat1, 1, 0, 13),
  [765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_definition_repeat1, 1, 0, 6),
  [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427),
  [769] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418),
  [771] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(427),
  [774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
  [776] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenation_repeat1, 2, 0, 0), SHIFT_REPEAT(150),
  [779] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_negated_statement, 2, 0, 0),
  [781] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
  [783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234),
  [785] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135),
  [787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77),
  [789] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85),
  [791] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_execution, 3, 0, 0),
  [793] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pipe, 3, 0, 0),
  [795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_execution, 2, 0, 0),
  [797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378),
  [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
  [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
  [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
  [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278),
  [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
  [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303),
  [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368),
  [813] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155),
  [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
  [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287),
  [819] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0), SHIFT_REPEAT(378),
  [822] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0), SHIFT_REPEAT(41),
  [825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0), SHIFT_REPEAT(315),
  [828] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0), SHIFT_REPEAT(278),
  [831] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0),
  [833] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0), SHIFT_REPEAT(303),
  [836] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 2, 0, 0), SHIFT_REPEAT(368),
  [839] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200),
  [841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
  [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
  [845] = {.entry = {.count = 1, .reusable = false}}, SHIFT(335),
  [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311),
  [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
  [851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(422),
  [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360),
  [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361),
  [857] = {.entry = {.count = 1, .reusable = false}}, SHIFT(357),
  [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341),
  [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342),
  [863] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103),
  [865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
  [867] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305),
  [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
  [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
  [873] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_redirect_statement, 2, 0, 0),
  [875] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83),
  [877] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 17),
  [879] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 14),
  [881] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_begin_statement, 2, 0, 0),
  [883] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_switch_statement, 4, 0, 12),
  [885] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, 0, 8),
  [887] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 14),
  [889] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107),
  [891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
  [893] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86),
  [895] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 8),
  [897] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, 0, 10),
  [899] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97),
  [901] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 8),
  [903] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
  [905] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 17),
  [907] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 10),
  [909] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_switch_statement, 5, 0, 12),
  [911] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_begin_statement, 3, 0, 0),
  [913] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return, 2, 0, 0),
  [915] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 8),
  [917] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 8),
  [919] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 8),
  [921] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82),
  [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 2, 0, 0),
  [925] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 1, 0, 0),
  [927] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(428),
  [930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428),
  [932] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365),
  [934] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37),
  [936] = {.entry = {.count = 1, .reusable = false}}, SHIFT(321),
  [938] = {.entry = {.count = 1, .reusable = false}}, SHIFT(298),
  [940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110),
  [942] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112),
  [944] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288),
  [946] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164),
  [948] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292),
  [950] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157),
  [952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(191),
  [954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294),
  [956] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196),
  [958] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340),
  [960] = {.entry = {.count = 1, .reusable = false}}, SHIFT(297),
  [962] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(429),
  [965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(332),
  [967] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_double_quote_string_repeat1, 2, 0, 0), SHIFT_REPEAT(365),
  [970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_double_quote_string_repeat1, 2, 0, 0), SHIFT_REPEAT(37),
  [973] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_double_quote_string_repeat1, 2, 0, 0),
  [975] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_double_quote_string_repeat1, 2, 0, 0), SHIFT_REPEAT(298),
  [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429),
  [980] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403),
  [982] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302),
  [984] = {.entry = {.count = 1, .reusable = false}}, SHIFT(411),
  [986] = {.entry = {.count = 1, .reusable = false}}, SHIFT(317),
  [988] = {.entry = {.count = 1, .reusable = false}}, SHIFT(285),
  [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
  [992] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 1, 0, 0),
  [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_element_access_repeat1, 1, 0, 0),
  [996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277),
  [998] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenation_repeat1, 2, 0, 0), SHIFT_REPEAT(143),
  [1001] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(430),
  [1004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430),
  [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3, 0, 0),
  [1008] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
  [1010] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
  [1012] = {.entry = {.count = 1, .reusable = false}}, SHIFT(385),
  [1014] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(426),
  [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426),
  [1019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
  [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330),
  [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256),
  [1025] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115),
  [1027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381),
  [1029] = {.entry = {.count = 1, .reusable = false}}, SHIFT(381),
  [1031] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416),
  [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379),
  [1035] = {.entry = {.count = 1, .reusable = false}}, SHIFT(379),
  [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__brace_expression, 1, 0, 0),
  [1039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
  [1041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159),
  [1043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393),
  [1045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [1047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348),
  [1049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404),
  [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
  [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
  [1055] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 0),
  [1057] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(437),
  [1060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265),
  [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
  [1064] = {.entry = {.count = 1, .reusable = false}}, SHIFT(319),
  [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372),
  [1068] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372),
  [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390),
  [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
  [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
  [1076] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_brace_concatenation, 2, 0, 0),
  [1078] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343),
  [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384),
  [1082] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384),
  [1084] = {.entry = {.count = 1, .reusable = false}}, SHIFT(322),
  [1086] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406),
  [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359),
  [1090] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359),
  [1092] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192),
  [1094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387),
  [1096] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387),
  [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_brace_concatenation_repeat1, 2, 0, 0),
  [1100] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_brace_concatenation_repeat1, 2, 0, 0), SHIFT_REPEAT(170),
  [1103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(165),
  [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363),
  [1107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(363),
  [1109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415),
  [1111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
  [1113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
  [1115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_single_quote_string_repeat1, 2, 0, 0),
  [1117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_single_quote_string_repeat1, 2, 0, 0), SHIFT_REPEAT(379),
  [1120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_single_quote_string_repeat1, 2, 0, 0), SHIFT_REPEAT(379),
  [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_switch_statement_repeat1, 2, 0, 0),
  [1125] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_switch_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(126),
  [1128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111),
  [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409),
  [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
  [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
  [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391),
  [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
  [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
  [1142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(333),
  [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
  [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399),
  [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
  [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
  [1152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197),
  [1154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
  [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
  [1158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
  [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
  [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
  [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
  [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351),
  [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
  [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
  [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
  [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420),
  [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
  [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306),
  [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284),
  [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
  [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331),
  [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
  [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334),
  [1190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_brace_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(144),
  [1193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_brace_expansion_repeat1, 2, 0, 0),
  [1195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
  [1197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
  [1199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220),
  [1201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
  [1203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232),
  [1205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
  [1207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
  [1209] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [1211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433),
  [1213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
  [1215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
  [1217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
};

enum ts_external_scanner_symbol_identifiers {
  ts_external_token__concat = 0,
  ts_external_token__brace_concat = 1,
  ts_external_token__concat_list = 2,
};

static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
  [ts_external_token__concat] = sym__concat,
  [ts_external_token__brace_concat] = sym__brace_concat,
  [ts_external_token__concat_list] = sym__concat_list,
};

static const bool ts_external_scanner_states[7][EXTERNAL_TOKEN_COUNT] = {
  [1] = {
    [ts_external_token__concat] = true,
    [ts_external_token__brace_concat] = true,
    [ts_external_token__concat_list] = true,
  },
  [2] = {
    [ts_external_token__concat] = true,
    [ts_external_token__concat_list] = true,
  },
  [3] = {
    [ts_external_token__concat] = true,
  },
  [4] = {
    [ts_external_token__concat_list] = true,
  },
  [5] = {
    [ts_external_token__brace_concat] = true,
    [ts_external_token__concat_list] = true,
  },
  [6] = {
    [ts_external_token__brace_concat] = true,
  },
};

#ifdef __cplusplus
extern "C" {
#endif
void *tree_sitter_fish_external_scanner_create(void);
void tree_sitter_fish_external_scanner_destroy(void *);
bool tree_sitter_fish_external_scanner_scan(void *, TSLexer *, const bool *);
unsigned tree_sitter_fish_external_scanner_serialize(void *, char *);
void tree_sitter_fish_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_fish(void) {
  static const TSLanguage language = {
    .abi_version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = (const void*)ts_lex_modes,
    .lex_fn = ts_lex,
    .keyword_lex_fn = ts_lex_keywords,
    .keyword_capture_token = sym_word,
    .external_scanner = {
      &ts_external_scanner_states[0][0],
      ts_external_scanner_symbol_map,
      tree_sitter_fish_external_scanner_create,
      tree_sitter_fish_external_scanner_destroy,
      tree_sitter_fish_external_scanner_scan,
      tree_sitter_fish_external_scanner_serialize,
      tree_sitter_fish_external_scanner_deserialize,
    },
    .primary_state_ids = ts_primary_state_ids,
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
