#include "tree_sitter/parser.h"
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
#define LANGUAGE_VERSION 15
#define STATE_COUNT 88
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 52
#define ALIAS_COUNT 0
#define TOKEN_COUNT 27
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 1
#define MAX_ALIAS_SEQUENCE_LENGTH 5
#define MAX_RESERVED_WORD_SET_SIZE 0
#define PRODUCTION_ID_COUNT 3
#define SUPERTYPE_COUNT 0
enum ts_symbol_identifiers {
anon_sym_LF = 1,
anon_sym_POUND = 2,
aux_sym_comment_token1 = 3,
anon_sym_LPAREN = 4,
anon_sym_RPAREN = 5,
anon_sym_COMMA = 6,
anon_sym_LT = 7,
anon_sym_GT = 8,
anon_sym_GT_GT = 9,
anon_sym_GT2 = 10,
anon_sym_GT_GT2 = 11,
sym_file_descriptor = 12,
anon_sym_DQUOTE = 13,
anon_sym_SQUOTE = 14,
aux_sym__quoted_string_text_fragment_token1 = 15,
anon_sym_BSLASH = 16,
aux_sym__quoted_string_text_fragment2_token1 = 17,
anon_sym_BSLASH_DQUOTE = 18,
anon_sym_BSLASH_BSLASH = 19,
anon_sym_BSLASH_SQUOTE = 20,
sym_word = 21,
anon_sym_DOLLAR_LBRACE = 22,
aux_sym_macro_expansion_token1 = 23,
anon_sym_RBRACE = 24,
anon_sym_DOLLAR_LPAREN = 25,
aux_sym_macro_expansion_token2 = 26,
sym_source_file = 27,
sym_comment = 28,
sym_command = 29,
aux_sym__command_args = 30,
sym_source = 31,
sym_redirect = 32,
sym_command_name = 33,
sym_argument = 34,
sym_path = 35,
sym_string = 36,
sym__quoted_string = 37,
sym__quoted_string2 = 38,
sym__quoted_string_text_fragment = 39,
sym__quoted_string_text_fragment2 = 40,
sym_escape_sequence = 41,
sym_escape_sequence2 = 42,
sym__argument = 43,
sym_macro_expansion = 44,
aux_sym_source_file_repeat1 = 45,
aux_sym__quoted_string_repeat1 = 46,
aux_sym__quoted_string2_repeat1 = 47,
aux_sym__quoted_string_text_fragment_repeat1 = 48,
aux_sym__quoted_string_text_fragment2_repeat1 = 49,
aux_sym_macro_expansion_repeat1 = 50,
aux_sym_macro_expansion_repeat2 = 51,
};
static const char * const ts_symbol_names[] = {
[ts_builtin_sym_end] = "end",
[anon_sym_LF] = "\n",
[anon_sym_POUND] = "#",
[aux_sym_comment_token1] = "comment_token1",
[anon_sym_LPAREN] = "(",
[anon_sym_RPAREN] = ")",
[anon_sym_COMMA] = ",",
[anon_sym_LT] = "<",
[anon_sym_GT] = ">",
[anon_sym_GT_GT] = ">>",
[anon_sym_GT2] = ">",
[anon_sym_GT_GT2] = ">>",
[sym_file_descriptor] = "file_descriptor",
[anon_sym_DQUOTE] = "\"",
[anon_sym_SQUOTE] = "'",
[aux_sym__quoted_string_text_fragment_token1] = "_quoted_string_text_fragment_token1",
[anon_sym_BSLASH] = "\\",
[aux_sym__quoted_string_text_fragment2_token1] = "_quoted_string_text_fragment2_token1",
[anon_sym_BSLASH_DQUOTE] = "\\\"",
[anon_sym_BSLASH_BSLASH] = "\\\\",
[anon_sym_BSLASH_SQUOTE] = "\\'",
[sym_word] = "word",
[anon_sym_DOLLAR_LBRACE] = "${",
[aux_sym_macro_expansion_token1] = "macro_expansion_token1",
[anon_sym_RBRACE] = "}",
[anon_sym_DOLLAR_LPAREN] = "$(",
[aux_sym_macro_expansion_token2] = "macro_expansion_token2",
[sym_source_file] = "source_file",
[sym_comment] = "comment",
[sym_command] = "command",
[aux_sym__command_args] = "_command_args",
[sym_source] = "source",
[sym_redirect] = "redirect",
[sym_command_name] = "command_name",
[sym_argument] = "argument",
[sym_path] = "path",
[sym_string] = "string",
[sym__quoted_string] = "_quoted_string",
[sym__quoted_string2] = "_quoted_string2",
[sym__quoted_string_text_fragment] = "_quoted_string_text_fragment",
[sym__quoted_string_text_fragment2] = "_quoted_string_text_fragment2",
[sym_escape_sequence] = "escape_sequence",
[sym_escape_sequence2] = "escape_sequence",
[sym__argument] = "_argument",
[sym_macro_expansion] = "macro_expansion",
[aux_sym_source_file_repeat1] = "source_file_repeat1",
[aux_sym__quoted_string_repeat1] = "_quoted_string_repeat1",
[aux_sym__quoted_string2_repeat1] = "_quoted_string2_repeat1",
[aux_sym__quoted_string_text_fragment_repeat1] = "_quoted_string_text_fragment_repeat1",
[aux_sym__quoted_string_text_fragment2_repeat1] = "_quoted_string_text_fragment2_repeat1",
[aux_sym_macro_expansion_repeat1] = "macro_expansion_repeat1",
[aux_sym_macro_expansion_repeat2] = "macro_expansion_repeat2",
};
static const TSSymbol ts_symbol_map[] = {
[ts_builtin_sym_end] = ts_builtin_sym_end,
[anon_sym_LF] = anon_sym_LF,
[anon_sym_POUND] = anon_sym_POUND,
[aux_sym_comment_token1] = aux_sym_comment_token1,
[anon_sym_LPAREN] = anon_sym_LPAREN,
[anon_sym_RPAREN] = anon_sym_RPAREN,
[anon_sym_COMMA] = anon_sym_COMMA,
[anon_sym_LT] = anon_sym_LT,
[anon_sym_GT] = anon_sym_GT,
[anon_sym_GT_GT] = anon_sym_GT_GT,
[anon_sym_GT2] = anon_sym_GT,
[anon_sym_GT_GT2] = anon_sym_GT_GT,
[sym_file_descriptor] = sym_file_descriptor,
[anon_sym_DQUOTE] = anon_sym_DQUOTE,
[anon_sym_SQUOTE] = anon_sym_SQUOTE,
[aux_sym__quoted_string_text_fragment_token1] = aux_sym__quoted_string_text_fragment_token1,
[anon_sym_BSLASH] = anon_sym_BSLASH,
[aux_sym__quoted_string_text_fragment2_token1] = aux_sym__quoted_string_text_fragment2_token1,
[anon_sym_BSLASH_DQUOTE] = anon_sym_BSLASH_DQUOTE,
[anon_sym_BSLASH_BSLASH] = anon_sym_BSLASH_BSLASH,
[anon_sym_BSLASH_SQUOTE] = anon_sym_BSLASH_SQUOTE,
[sym_word] = sym_word,
[anon_sym_DOLLAR_LBRACE] = anon_sym_DOLLAR_LBRACE,
[aux_sym_macro_expansion_token1] = aux_sym_macro_expansion_token1,
[anon_sym_RBRACE] = anon_sym_RBRACE,
[anon_sym_DOLLAR_LPAREN] = anon_sym_DOLLAR_LPAREN,
[aux_sym_macro_expansion_token2] = aux_sym_macro_expansion_token2,
[sym_source_file] = sym_source_file,
[sym_comment] = sym_comment,
[sym_command] = sym_command,
[aux_sym__command_args] = aux_sym__command_args,
[sym_source] = sym_source,
[sym_redirect] = sym_redirect,
[sym_command_name] = sym_command_name,
[sym_argument] = sym_argument,
[sym_path] = sym_path,
[sym_string] = sym_string,
[sym__quoted_string] = sym__quoted_string,
[sym__quoted_string2] = sym__quoted_string2,
[sym__quoted_string_text_fragment] = sym__quoted_string_text_fragment,
[sym__quoted_string_text_fragment2] = sym__quoted_string_text_fragment2,
[sym_escape_sequence] = sym_escape_sequence,
[sym_escape_sequence2] = sym_escape_sequence,
[sym__argument] = sym__argument,
[sym_macro_expansion] = sym_macro_expansion,
[aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
[aux_sym__quoted_string_repeat1] = aux_sym__quoted_string_repeat1,
[aux_sym__quoted_string2_repeat1] = aux_sym__quoted_string2_repeat1,
[aux_sym__quoted_string_text_fragment_repeat1] = aux_sym__quoted_string_text_fragment_repeat1,
[aux_sym__quoted_string_text_fragment2_repeat1] = aux_sym__quoted_string_text_fragment2_repeat1,
[aux_sym_macro_expansion_repeat1] = aux_sym_macro_expansion_repeat1,
[aux_sym_macro_expansion_repeat2] = aux_sym_macro_expansion_repeat2,
};
static const TSSymbolMetadata ts_symbol_metadata[] = {
[ts_builtin_sym_end] = {
.visible = false,
.named = true,
},
[anon_sym_LF] = {
.visible = true,
.named = false,
},
[anon_sym_POUND] = {
.visible = true,
.named = false,
},
[aux_sym_comment_token1] = {
.visible = false,
.named = false,
},
[anon_sym_LPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_RPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_COMMA] = {
.visible = true,
.named = false,
},
[anon_sym_LT] = {
.visible = true,
.named = false,
},
[anon_sym_GT] = {
.visible = true,
.named = false,
},
[anon_sym_GT_GT] = {
.visible = true,
.named = false,
},
[anon_sym_GT2] = {
.visible = true,
.named = false,
},
[anon_sym_GT_GT2] = {
.visible = true,
.named = false,
},
[sym_file_descriptor] = {
.visible = true,
.named = true,
},
[anon_sym_DQUOTE] = {
.visible = true,
.named = false,
},
[anon_sym_SQUOTE] = {
.visible = true,
.named = false,
},
[aux_sym__quoted_string_text_fragment_token1] = {
.visible = false,
.named = false,
},
[anon_sym_BSLASH] = {
.visible = true,
.named = false,
},
[aux_sym__quoted_string_text_fragment2_token1] = {
.visible = false,
.named = false,
},
[anon_sym_BSLASH_DQUOTE] = {
.visible = true,
.named = false,
},
[anon_sym_BSLASH_BSLASH] = {
.visible = true,
.named = false,
},
[anon_sym_BSLASH_SQUOTE] = {
.visible = true,
.named = false,
},
[sym_word] = {
.visible = true,
.named = true,
},
[anon_sym_DOLLAR_LBRACE] = {
.visible = true,
.named = false,
},
[aux_sym_macro_expansion_token1] = {
.visible = false,
.named = false,
},
[anon_sym_RBRACE] = {
.visible = true,
.named = false,
},
[anon_sym_DOLLAR_LPAREN] = {
.visible = true,
.named = false,
},
[aux_sym_macro_expansion_token2] = {
.visible = false,
.named = false,
},
[sym_source_file] = {
.visible = true,
.named = true,
},
[sym_comment] = {
.visible = true,
.named = true,
},
[sym_command] = {
.visible = true,
.named = true,
},
[aux_sym__command_args] = {
.visible = false,
.named = false,
},
[sym_source] = {
.visible = true,
.named = true,
},
[sym_redirect] = {
.visible = true,
.named = true,
},
[sym_command_name] = {
.visible = true,
.named = true,
},
[sym_argument] = {
.visible = true,
.named = true,
},
[sym_path] = {
.visible = true,
.named = true,
},
[sym_string] = {
.visible = true,
.named = true,
},
[sym__quoted_string] = {
.visible = false,
.named = true,
},
[sym__quoted_string2] = {
.visible = false,
.named = true,
},
[sym__quoted_string_text_fragment] = {
.visible = false,
.named = true,
},
[sym__quoted_string_text_fragment2] = {
.visible = false,
.named = true,
},
[sym_escape_sequence] = {
.visible = true,
.named = true,
},
[sym_escape_sequence2] = {
.visible = true,
.named = true,
},
[sym__argument] = {
.visible = false,
.named = true,
},
[sym_macro_expansion] = {
.visible = true,
.named = true,
},
[aux_sym_source_file_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym__quoted_string_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym__quoted_string2_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym__quoted_string_text_fragment_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym__quoted_string_text_fragment2_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_macro_expansion_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_macro_expansion_repeat2] = {
.visible = false,
.named = false,
},
};
enum ts_field_identifiers {
field_name = 1,
};
static const char * const ts_field_names[] = {
[0] = NULL,
[field_name] = "name",
};
static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
[2] = {.index = 0, .length = 1},
};
static const TSFieldMapEntry ts_field_map_entries[] = {
[0] =
{field_name, 0},
};
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[] = {
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] = 6,
[9] = 9,
[10] = 10,
[11] = 11,
[12] = 12,
[13] = 13,
[14] = 14,
[15] = 15,
[16] = 16,
[17] = 17,
[18] = 18,
[19] = 19,
[20] = 20,
[21] = 21,
[22] = 22,
[23] = 23,
[24] = 24,
[25] = 25,
[26] = 26,
[27] = 27,
[28] = 28,
[29] = 29,
[30] = 18,
[31] = 19,
[32] = 20,
[33] = 21,
[34] = 34,
[35] = 35,
[36] = 36,
[37] = 37,
[38] = 38,
[39] = 39,
[40] = 40,
[41] = 41,
[42] = 11,
[43] = 12,
[44] = 13,
[45] = 14,
[46] = 15,
[47] = 24,
[48] = 25,
[49] = 17,
[50] = 16,
[51] = 51,
[52] = 52,
[53] = 53,
[54] = 54,
[55] = 34,
[56] = 56,
[57] = 57,
[58] = 58,
[59] = 59,
[60] = 60,
[61] = 61,
[62] = 58,
[63] = 59,
[64] = 58,
[65] = 59,
[66] = 66,
[67] = 67,
[68] = 68,
[69] = 69,
[70] = 67,
[71] = 68,
[72] = 66,
[73] = 67,
[74] = 68,
[75] = 75,
[76] = 76,
[77] = 77,
[78] = 78,
[79] = 79,
[80] = 80,
[81] = 81,
[82] = 82,
[83] = 83,
[84] = 84,
[85] = 85,
[86] = 86,
[87] = 66,
};
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(13);
ADVANCE_MAP(
'"', 29,
'#', 15,
'$', 9,
'\'', 30,
'(', 19,
')', 20,
',', 21,
'<', 22,
'>', 25,
'\\', 33,
'}', 49,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(11);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(27);
END_STATE();
case 1:
ADVANCE_MAP(
'\n', 14,
'"', 29,
'$', 9,
'\'', 30,
'(', 19,
',', 21,
'<', 22,
'>', 23,
'\\', 10,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(1);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(28);
if (lookahead != 0 &&
(lookahead < '"' || '$' < lookahead) &&
(lookahead < '\'' || ')' < lookahead)) ADVANCE(41);
END_STATE();
case 2:
ADVANCE_MAP(
'\n', 14,
'"', 29,
'$', 9,
'\'', 30,
',', 21,
'<', 22,
'>', 25,
'\\', 10,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(3);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(28);
if (lookahead != 0 &&
(lookahead < '"' || '$' < lookahead) &&
(lookahead < '\'' || ')' < lookahead)) ADVANCE(41);
END_STATE();
case 3:
ADVANCE_MAP(
'\n', 14,
'"', 29,
'$', 9,
'\'', 30,
',', 21,
'<', 22,
'>', 23,
'\\', 10,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(3);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(28);
if (lookahead != 0 &&
(lookahead < '"' || '$' < lookahead) &&
(lookahead < '\'' || ')' < lookahead)) ADVANCE(41);
END_STATE();
case 4:
if (lookahead == '\n') ADVANCE(14);
if (lookahead == '$') ADVANCE(9);
if (lookahead == '<') ADVANCE(22);
if (lookahead == '>') ADVANCE(23);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(4);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(27);
END_STATE();
case 5:
if (lookahead == '"') ADVANCE(29);
if (lookahead == '$') ADVANCE(9);
if (lookahead == '\\') ADVANCE(34);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(31);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 6:
if (lookahead == '$') ADVANCE(9);
if (lookahead == '\'') ADVANCE(30);
if (lookahead == '\\') ADVANCE(35);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(36);
if (lookahead != 0) ADVANCE(37);
END_STATE();
case 7:
if (lookahead == '$') ADVANCE(55);
if (lookahead == ')') ADVANCE(20);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(54);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 8:
if (lookahead == '$') ADVANCE(47);
if (lookahead == '}') ADVANCE(49);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(46);
if (lookahead != 0) ADVANCE(48);
END_STATE();
case 9:
if (lookahead == '(') ADVANCE(50);
if (lookahead == '{') ADVANCE(42);
END_STATE();
case 10:
if (lookahead == '"' ||
lookahead == '\'' ||
lookahead == '\\') ADVANCE(41);
END_STATE();
case 11:
if (eof) ADVANCE(13);
ADVANCE_MAP(
'"', 29,
'#', 15,
'$', 9,
'\'', 30,
'(', 19,
')', 20,
',', 21,
'<', 22,
'>', 23,
'}', 49,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(11);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(27);
END_STATE();
case 12:
if (eof) ADVANCE(13);
ADVANCE_MAP(
'"', 29,
'#', 15,
'$', 9,
'\'', 30,
')', 20,
',', 21,
'<', 22,
'\\', 10,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(12);
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(28);
if (lookahead != 0 &&
(lookahead < '\'' || ')' < lookahead) &&
lookahead != '>') ADVANCE(41);
END_STATE();
case 13:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 14:
ACCEPT_TOKEN(anon_sym_LF);
if (lookahead == '\n') ADVANCE(14);
END_STATE();
case 15:
ACCEPT_TOKEN(anon_sym_POUND);
END_STATE();
case 16:
ACCEPT_TOKEN(aux_sym_comment_token1);
if (lookahead == '$') ADVANCE(17);
if (lookahead == '\t' ||
(0x0b <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(16);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead)) ADVANCE(18);
END_STATE();
case 17:
ACCEPT_TOKEN(aux_sym_comment_token1);
if (lookahead == '(') ADVANCE(51);
if (lookahead == '{') ADVANCE(43);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(18);
END_STATE();
case 18:
ACCEPT_TOKEN(aux_sym_comment_token1);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(18);
END_STATE();
case 19:
ACCEPT_TOKEN(anon_sym_LPAREN);
END_STATE();
case 20:
ACCEPT_TOKEN(anon_sym_RPAREN);
END_STATE();
case 21:
ACCEPT_TOKEN(anon_sym_COMMA);
END_STATE();
case 22:
ACCEPT_TOKEN(anon_sym_LT);
END_STATE();
case 23:
ACCEPT_TOKEN(anon_sym_GT);
if (lookahead == '>') ADVANCE(24);
END_STATE();
case 24:
ACCEPT_TOKEN(anon_sym_GT_GT);
END_STATE();
case 25:
ACCEPT_TOKEN(anon_sym_GT2);
if (lookahead == '>') ADVANCE(26);
END_STATE();
case 26:
ACCEPT_TOKEN(anon_sym_GT_GT2);
END_STATE();
case 27:
ACCEPT_TOKEN(sym_file_descriptor);
END_STATE();
case 28:
ACCEPT_TOKEN(sym_file_descriptor);
if (lookahead == '\\') ADVANCE(10);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead) &&
lookahead != ' ' &&
(lookahead < '"' || '$' < lookahead) &&
(lookahead < '\'' || ')' < lookahead) &&
lookahead != ',' &&
lookahead != '<' &&
lookahead != '>') ADVANCE(41);
END_STATE();
case 29:
ACCEPT_TOKEN(anon_sym_DQUOTE);
END_STATE();
case 30:
ACCEPT_TOKEN(anon_sym_SQUOTE);
END_STATE();
case 31:
ACCEPT_TOKEN(aux_sym__quoted_string_text_fragment_token1);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(31);
if (lookahead != 0 &&
lookahead != '"' &&
lookahead != '$' &&
lookahead != '\\') ADVANCE(32);
END_STATE();
case 32:
ACCEPT_TOKEN(aux_sym__quoted_string_text_fragment_token1);
if (lookahead != 0 &&
lookahead != '"' &&
lookahead != '$' &&
lookahead != '\\') ADVANCE(32);
END_STATE();
case 33:
ACCEPT_TOKEN(anon_sym_BSLASH);
if (lookahead == '"') ADVANCE(38);
if (lookahead == '\'') ADVANCE(40);
if (lookahead == '\\') ADVANCE(39);
END_STATE();
case 34:
ACCEPT_TOKEN(anon_sym_BSLASH);
if (lookahead == '"') ADVANCE(38);
if (lookahead == '\\') ADVANCE(39);
END_STATE();
case 35:
ACCEPT_TOKEN(anon_sym_BSLASH);
if (lookahead == '\'') ADVANCE(40);
if (lookahead == '\\') ADVANCE(39);
END_STATE();
case 36:
ACCEPT_TOKEN(aux_sym__quoted_string_text_fragment2_token1);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(36);
if (lookahead != 0 &&
lookahead != '$' &&
lookahead != '\'' &&
lookahead != '\\') ADVANCE(37);
END_STATE();
case 37:
ACCEPT_TOKEN(aux_sym__quoted_string_text_fragment2_token1);
if (lookahead != 0 &&
lookahead != '$' &&
lookahead != '\'' &&
lookahead != '\\') ADVANCE(37);
END_STATE();
case 38:
ACCEPT_TOKEN(anon_sym_BSLASH_DQUOTE);
END_STATE();
case 39:
ACCEPT_TOKEN(anon_sym_BSLASH_BSLASH);
END_STATE();
case 40:
ACCEPT_TOKEN(anon_sym_BSLASH_SQUOTE);
END_STATE();
case 41:
ACCEPT_TOKEN(sym_word);
if (lookahead == '\\') ADVANCE(10);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead) &&
lookahead != ' ' &&
(lookahead < '"' || '$' < lookahead) &&
(lookahead < '\'' || ')' < lookahead) &&
lookahead != ',' &&
lookahead != '<' &&
lookahead != '>') ADVANCE(41);
END_STATE();
case 42:
ACCEPT_TOKEN(anon_sym_DOLLAR_LBRACE);
END_STATE();
case 43:
ACCEPT_TOKEN(anon_sym_DOLLAR_LBRACE);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(18);
END_STATE();
case 44:
ACCEPT_TOKEN(anon_sym_DOLLAR_LBRACE);
if (lookahead != 0 &&
lookahead != ')') ADVANCE(56);
END_STATE();
case 45:
ACCEPT_TOKEN(anon_sym_DOLLAR_LBRACE);
if (lookahead != 0 &&
lookahead != '}') ADVANCE(48);
END_STATE();
case 46:
ACCEPT_TOKEN(aux_sym_macro_expansion_token1);
if (lookahead == '$') ADVANCE(47);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(46);
if (lookahead != 0 &&
lookahead != '}') ADVANCE(48);
END_STATE();
case 47:
ACCEPT_TOKEN(aux_sym_macro_expansion_token1);
if (lookahead == '(') ADVANCE(53);
if (lookahead == '{') ADVANCE(45);
if (lookahead != 0 &&
lookahead != '}') ADVANCE(48);
END_STATE();
case 48:
ACCEPT_TOKEN(aux_sym_macro_expansion_token1);
if (lookahead != 0 &&
lookahead != '}') ADVANCE(48);
END_STATE();
case 49:
ACCEPT_TOKEN(anon_sym_RBRACE);
END_STATE();
case 50:
ACCEPT_TOKEN(anon_sym_DOLLAR_LPAREN);
END_STATE();
case 51:
ACCEPT_TOKEN(anon_sym_DOLLAR_LPAREN);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(18);
END_STATE();
case 52:
ACCEPT_TOKEN(anon_sym_DOLLAR_LPAREN);
if (lookahead != 0 &&
lookahead != ')') ADVANCE(56);
END_STATE();
case 53:
ACCEPT_TOKEN(anon_sym_DOLLAR_LPAREN);
if (lookahead != 0 &&
lookahead != '}') ADVANCE(48);
END_STATE();
case 54:
ACCEPT_TOKEN(aux_sym_macro_expansion_token2);
if (lookahead == '$') ADVANCE(55);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(54);
if (lookahead != 0 &&
lookahead != ')') ADVANCE(56);
END_STATE();
case 55:
ACCEPT_TOKEN(aux_sym_macro_expansion_token2);
if (lookahead == '(') ADVANCE(52);
if (lookahead == '{') ADVANCE(44);
if (lookahead != 0 &&
lookahead != '(' &&
lookahead != ')') ADVANCE(56);
END_STATE();
case 56:
ACCEPT_TOKEN(aux_sym_macro_expansion_token2);
if (lookahead != 0 &&
lookahead != ')') ADVANCE(56);
END_STATE();
default:
return false;
}
}
static const TSLexerMode ts_lex_modes[STATE_COUNT] = {
[0] = {.lex_state = 0},
[1] = {.lex_state = 12},
[2] = {.lex_state = 1},
[3] = {.lex_state = 12},
[4] = {.lex_state = 12},
[5] = {.lex_state = 1},
[6] = {.lex_state = 1},
[7] = {.lex_state = 12},
[8] = {.lex_state = 12},
[9] = {.lex_state = 12},
[10] = {.lex_state = 2},
[11] = {.lex_state = 1},
[12] = {.lex_state = 1},
[13] = {.lex_state = 1},
[14] = {.lex_state = 1},
[15] = {.lex_state = 1},
[16] = {.lex_state = 1},
[17] = {.lex_state = 1},
[18] = {.lex_state = 5},
[19] = {.lex_state = 6},
[20] = {.lex_state = 5},
[21] = {.lex_state = 6},
[22] = {.lex_state = 12},
[23] = {.lex_state = 12},
[24] = {.lex_state = 1},
[25] = {.lex_state = 1},
[26] = {.lex_state = 1},
[27] = {.lex_state = 5},
[28] = {.lex_state = 6},
[29] = {.lex_state = 12},
[30] = {.lex_state = 5},
[31] = {.lex_state = 6},
[32] = {.lex_state = 5},
[33] = {.lex_state = 6},
[34] = {.lex_state = 1},
[35] = {.lex_state = 12},
[36] = {.lex_state = 5},
[37] = {.lex_state = 4},
[38] = {.lex_state = 5},
[39] = {.lex_state = 6},
[40] = {.lex_state = 6},
[41] = {.lex_state = 4},
[42] = {.lex_state = 12},
[43] = {.lex_state = 12},
[44] = {.lex_state = 12},
[45] = {.lex_state = 12},
[46] = {.lex_state = 12},
[47] = {.lex_state = 12},
[48] = {.lex_state = 12},
[49] = {.lex_state = 12},
[50] = {.lex_state = 12},
[51] = {.lex_state = 6},
[52] = {.lex_state = 5},
[53] = {.lex_state = 6},
[54] = {.lex_state = 6},
[55] = {.lex_state = 12},
[56] = {.lex_state = 5},
[57] = {.lex_state = 5},
[58] = {.lex_state = 7},
[59] = {.lex_state = 8},
[60] = {.lex_state = 8},
[61] = {.lex_state = 7},
[62] = {.lex_state = 7},
[63] = {.lex_state = 8},
[64] = {.lex_state = 7},
[65] = {.lex_state = 8},
[66] = {.lex_state = 8},
[67] = {.lex_state = 8},
[68] = {.lex_state = 7},
[69] = {.lex_state = 0},
[70] = {.lex_state = 8},
[71] = {.lex_state = 7},
[72] = {.lex_state = 7},
[73] = {.lex_state = 8},
[74] = {.lex_state = 7},
[75] = {.lex_state = 1},
[76] = {.lex_state = 1},
[77] = {.lex_state = 1},
[78] = {.lex_state = 1},
[79] = {.lex_state = 1},
[80] = {.lex_state = 0},
[81] = {.lex_state = 1},
[82] = {.lex_state = 16},
[83] = {.lex_state = 1},
[84] = {.lex_state = 1},
[85] = {.lex_state = 1},
[86] = {.lex_state = 1},
[87] = {(TSStateId)(-1),},
};
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[STATE(0)] = {
[sym_macro_expansion] = STATE(0),
[ts_builtin_sym_end] = ACTIONS(1),
[anon_sym_POUND] = ACTIONS(1),
[anon_sym_LPAREN] = ACTIONS(1),
[anon_sym_RPAREN] = ACTIONS(1),
[anon_sym_COMMA] = ACTIONS(1),
[anon_sym_LT] = ACTIONS(1),
[anon_sym_GT] = ACTIONS(1),
[anon_sym_GT_GT] = ACTIONS(1),
[anon_sym_GT2] = ACTIONS(1),
[anon_sym_GT_GT2] = ACTIONS(1),
[sym_file_descriptor] = ACTIONS(1),
[anon_sym_DQUOTE] = ACTIONS(1),
[anon_sym_SQUOTE] = ACTIONS(1),
[anon_sym_BSLASH] = ACTIONS(1),
[anon_sym_BSLASH_DQUOTE] = ACTIONS(1),
[anon_sym_BSLASH_BSLASH] = ACTIONS(1),
[anon_sym_BSLASH_SQUOTE] = ACTIONS(1),
[anon_sym_DOLLAR_LBRACE] = ACTIONS(3),
[anon_sym_RBRACE] = ACTIONS(1),
[anon_sym_DOLLAR_LPAREN] = ACTIONS(5),
},
[STATE(1)] = {
[sym_source_file] = STATE(80),
[sym_comment] = STATE(79),
[sym_command] = STATE(79),
[sym_source] = STATE(79),
[sym_command_name] = STATE(2),
[sym_string] = STATE(12),
[sym__quoted_string] = STATE(13),
[sym__quoted_string2] = STATE(13),
[sym__argument] = STATE(26),
[sym_macro_expansion] = STATE(1),
[aux_sym_source_file_repeat1] = STATE(3),
[ts_builtin_sym_end] = ACTIONS(7),
[anon_sym_POUND] = ACTIONS(9),
[anon_sym_LT] = ACTIONS(11),
[sym_file_descriptor] = ACTIONS(13),
[anon_sym_DQUOTE] = ACTIONS(15),
[anon_sym_SQUOTE] = ACTIONS(17),
[sym_word] = ACTIONS(19),
[anon_sym_DOLLAR_LBRACE] = ACTIONS(3),
[anon_sym_DOLLAR_LPAREN] = ACTIONS(5),
},
};
static const uint16_t ts_small_parse_table[] = {
[0] = 16,
ACTIONS(19), 1,
sym_word,
ACTIONS(21), 1,
anon_sym_LF,
ACTIONS(23), 1,
anon_sym_LPAREN,
ACTIONS(27), 1,
sym_file_descriptor,
ACTIONS(29), 1,
anon_sym_DQUOTE,
ACTIONS(31), 1,
anon_sym_SQUOTE,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(2), 1,
sym_macro_expansion,
STATE(5), 1,
aux_sym__command_args,
STATE(12), 1,
sym_string,
STATE(24), 1,
sym_argument,
STATE(25), 1,
sym__argument,
STATE(78), 1,
sym_redirect,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
ACTIONS(25), 3,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
[52] = 16,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(9), 1,
anon_sym_POUND,
ACTIONS(11), 1,
anon_sym_LT,
ACTIONS(13), 1,
sym_file_descriptor,
ACTIONS(15), 1,
anon_sym_DQUOTE,
ACTIONS(17), 1,
anon_sym_SQUOTE,
ACTIONS(19), 1,
sym_word,
ACTIONS(37), 1,
ts_builtin_sym_end,
STATE(2), 1,
sym_command_name,
STATE(3), 1,
sym_macro_expansion,
STATE(4), 1,
aux_sym_source_file_repeat1,
STATE(12), 1,
sym_string,
STATE(26), 1,
sym__argument,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
STATE(79), 3,
sym_comment,
sym_command,
sym_source,
[104] = 15,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(39), 1,
ts_builtin_sym_end,
ACTIONS(41), 1,
anon_sym_POUND,
ACTIONS(44), 1,
anon_sym_LT,
ACTIONS(47), 1,
sym_file_descriptor,
ACTIONS(50), 1,
anon_sym_DQUOTE,
ACTIONS(53), 1,
anon_sym_SQUOTE,
ACTIONS(56), 1,
sym_word,
STATE(2), 1,
sym_command_name,
STATE(12), 1,
sym_string,
STATE(26), 1,
sym__argument,
STATE(4), 2,
sym_macro_expansion,
aux_sym_source_file_repeat1,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
STATE(79), 3,
sym_comment,
sym_command,
sym_source,
[154] = 15,
ACTIONS(19), 1,
sym_word,
ACTIONS(27), 1,
sym_file_descriptor,
ACTIONS(29), 1,
anon_sym_DQUOTE,
ACTIONS(31), 1,
anon_sym_SQUOTE,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(59), 1,
anon_sym_LF,
STATE(5), 1,
sym_macro_expansion,
STATE(6), 1,
aux_sym__command_args,
STATE(12), 1,
sym_string,
STATE(24), 1,
sym_argument,
STATE(25), 1,
sym__argument,
STATE(83), 1,
sym_redirect,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
ACTIONS(25), 3,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
[203] = 13,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(61), 1,
anon_sym_LF,
ACTIONS(65), 1,
sym_file_descriptor,
ACTIONS(68), 1,
anon_sym_DQUOTE,
ACTIONS(71), 1,
anon_sym_SQUOTE,
ACTIONS(74), 1,
sym_word,
STATE(12), 1,
sym_string,
STATE(24), 1,
sym_argument,
STATE(25), 1,
sym__argument,
STATE(6), 2,
aux_sym__command_args,
sym_macro_expansion,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
ACTIONS(63), 3,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
[247] = 13,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(77), 1,
anon_sym_RPAREN,
ACTIONS(79), 1,
sym_file_descriptor,
ACTIONS(81), 1,
anon_sym_DQUOTE,
ACTIONS(83), 1,
anon_sym_SQUOTE,
ACTIONS(85), 1,
sym_word,
STATE(7), 1,
sym_macro_expansion,
STATE(9), 1,
aux_sym__command_args,
STATE(43), 1,
sym_string,
STATE(47), 1,
sym_argument,
STATE(48), 1,
sym__argument,
STATE(44), 2,
sym__quoted_string,
sym__quoted_string2,
[288] = 12,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(61), 1,
anon_sym_RPAREN,
ACTIONS(87), 1,
sym_file_descriptor,
ACTIONS(90), 1,
anon_sym_DQUOTE,
ACTIONS(93), 1,
anon_sym_SQUOTE,
ACTIONS(96), 1,
sym_word,
STATE(43), 1,
sym_string,
STATE(47), 1,
sym_argument,
STATE(48), 1,
sym__argument,
STATE(8), 2,
aux_sym__command_args,
sym_macro_expansion,
STATE(44), 2,
sym__quoted_string,
sym__quoted_string2,
[327] = 13,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(79), 1,
sym_file_descriptor,
ACTIONS(81), 1,
anon_sym_DQUOTE,
ACTIONS(83), 1,
anon_sym_SQUOTE,
ACTIONS(85), 1,
sym_word,
ACTIONS(99), 1,
anon_sym_RPAREN,
STATE(8), 1,
aux_sym__command_args,
STATE(9), 1,
sym_macro_expansion,
STATE(43), 1,
sym_string,
STATE(47), 1,
sym_argument,
STATE(48), 1,
sym__argument,
STATE(44), 2,
sym__quoted_string,
sym__quoted_string2,
[368] = 7,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(101), 1,
anon_sym_LF,
ACTIONS(105), 1,
anon_sym_GT2,
ACTIONS(107), 1,
anon_sym_GT_GT2,
STATE(10), 1,
sym_macro_expansion,
ACTIONS(103), 8,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[397] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(101), 1,
anon_sym_LF,
STATE(11), 1,
sym_macro_expansion,
ACTIONS(103), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[421] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(109), 1,
anon_sym_LF,
STATE(12), 1,
sym_macro_expansion,
ACTIONS(111), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[445] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(113), 1,
anon_sym_LF,
STATE(13), 1,
sym_macro_expansion,
ACTIONS(115), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[469] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(117), 1,
anon_sym_LF,
STATE(14), 1,
sym_macro_expansion,
ACTIONS(119), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[493] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(121), 1,
anon_sym_LF,
STATE(15), 1,
sym_macro_expansion,
ACTIONS(123), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[517] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(125), 1,
anon_sym_LF,
STATE(16), 1,
sym_macro_expansion,
ACTIONS(127), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[541] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(129), 1,
anon_sym_LF,
STATE(17), 1,
sym_macro_expansion,
ACTIONS(131), 9,
anon_sym_LPAREN,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[565] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(133), 1,
anon_sym_DQUOTE,
ACTIONS(135), 1,
aux_sym__quoted_string_text_fragment_token1,
ACTIONS(137), 1,
anon_sym_BSLASH,
STATE(18), 1,
sym_macro_expansion,
STATE(20), 1,
aux_sym__quoted_string_repeat1,
STATE(36), 1,
aux_sym__quoted_string_text_fragment_repeat1,
ACTIONS(139), 2,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
STATE(56), 2,
sym__quoted_string_text_fragment,
sym_escape_sequence,
[598] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(141), 1,
anon_sym_SQUOTE,
ACTIONS(143), 1,
anon_sym_BSLASH,
ACTIONS(145), 1,
aux_sym__quoted_string_text_fragment2_token1,
STATE(19), 1,
sym_macro_expansion,
STATE(21), 1,
aux_sym__quoted_string2_repeat1,
STATE(39), 1,
aux_sym__quoted_string_text_fragment2_repeat1,
ACTIONS(147), 2,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
STATE(54), 2,
sym__quoted_string_text_fragment2,
sym_escape_sequence2,
[631] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(135), 1,
aux_sym__quoted_string_text_fragment_token1,
ACTIONS(137), 1,
anon_sym_BSLASH,
ACTIONS(149), 1,
anon_sym_DQUOTE,
STATE(20), 1,
sym_macro_expansion,
STATE(27), 1,
aux_sym__quoted_string_repeat1,
STATE(36), 1,
aux_sym__quoted_string_text_fragment_repeat1,
ACTIONS(139), 2,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
STATE(56), 2,
sym__quoted_string_text_fragment,
sym_escape_sequence,
[664] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(143), 1,
anon_sym_BSLASH,
ACTIONS(145), 1,
aux_sym__quoted_string_text_fragment2_token1,
ACTIONS(151), 1,
anon_sym_SQUOTE,
STATE(21), 1,
sym_macro_expansion,
STATE(28), 1,
aux_sym__quoted_string2_repeat1,
STATE(39), 1,
aux_sym__quoted_string_text_fragment2_repeat1,
ACTIONS(147), 2,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
STATE(54), 2,
sym__quoted_string_text_fragment2,
sym_escape_sequence2,
[697] = 11,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(13), 1,
sym_file_descriptor,
ACTIONS(15), 1,
anon_sym_DQUOTE,
ACTIONS(17), 1,
anon_sym_SQUOTE,
ACTIONS(19), 1,
sym_word,
STATE(12), 1,
sym_string,
STATE(22), 1,
sym_macro_expansion,
STATE(76), 1,
sym__argument,
STATE(81), 1,
sym_path,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
[732] = 11,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(13), 1,
sym_file_descriptor,
ACTIONS(15), 1,
anon_sym_DQUOTE,
ACTIONS(17), 1,
anon_sym_SQUOTE,
ACTIONS(19), 1,
sym_word,
STATE(12), 1,
sym_string,
STATE(23), 1,
sym_macro_expansion,
STATE(76), 1,
sym__argument,
STATE(85), 1,
sym_path,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
[767] = 6,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(153), 1,
anon_sym_LF,
ACTIONS(155), 1,
anon_sym_COMMA,
STATE(24), 1,
sym_macro_expansion,
ACTIONS(157), 7,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[792] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(159), 1,
anon_sym_LF,
STATE(25), 1,
sym_macro_expansion,
ACTIONS(161), 8,
anon_sym_COMMA,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[815] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(163), 1,
anon_sym_LF,
STATE(26), 1,
sym_macro_expansion,
ACTIONS(165), 8,
anon_sym_LPAREN,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[838] = 9,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(167), 1,
anon_sym_DQUOTE,
ACTIONS(169), 1,
aux_sym__quoted_string_text_fragment_token1,
ACTIONS(172), 1,
anon_sym_BSLASH,
STATE(36), 1,
aux_sym__quoted_string_text_fragment_repeat1,
ACTIONS(175), 2,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
STATE(27), 2,
sym_macro_expansion,
aux_sym__quoted_string_repeat1,
STATE(56), 2,
sym__quoted_string_text_fragment,
sym_escape_sequence,
[869] = 9,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(178), 1,
anon_sym_SQUOTE,
ACTIONS(180), 1,
anon_sym_BSLASH,
ACTIONS(183), 1,
aux_sym__quoted_string_text_fragment2_token1,
STATE(39), 1,
aux_sym__quoted_string_text_fragment2_repeat1,
ACTIONS(186), 2,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
STATE(28), 2,
sym_macro_expansion,
aux_sym__quoted_string2_repeat1,
STATE(54), 2,
sym__quoted_string_text_fragment2,
sym_escape_sequence2,
[900] = 11,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(13), 1,
sym_file_descriptor,
ACTIONS(15), 1,
anon_sym_DQUOTE,
ACTIONS(17), 1,
anon_sym_SQUOTE,
ACTIONS(19), 1,
sym_word,
STATE(12), 1,
sym_string,
STATE(29), 1,
sym_macro_expansion,
STATE(75), 1,
sym_path,
STATE(76), 1,
sym__argument,
STATE(13), 2,
sym__quoted_string,
sym__quoted_string2,
[935] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(135), 1,
aux_sym__quoted_string_text_fragment_token1,
ACTIONS(137), 1,
anon_sym_BSLASH,
ACTIONS(189), 1,
anon_sym_DQUOTE,
STATE(30), 1,
sym_macro_expansion,
STATE(32), 1,
aux_sym__quoted_string_repeat1,
STATE(36), 1,
aux_sym__quoted_string_text_fragment_repeat1,
ACTIONS(139), 2,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
STATE(56), 2,
sym__quoted_string_text_fragment,
sym_escape_sequence,
[968] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(143), 1,
anon_sym_BSLASH,
ACTIONS(145), 1,
aux_sym__quoted_string_text_fragment2_token1,
ACTIONS(191), 1,
anon_sym_SQUOTE,
STATE(31), 1,
sym_macro_expansion,
STATE(33), 1,
aux_sym__quoted_string2_repeat1,
STATE(39), 1,
aux_sym__quoted_string_text_fragment2_repeat1,
ACTIONS(147), 2,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
STATE(54), 2,
sym__quoted_string_text_fragment2,
sym_escape_sequence2,
[1001] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(135), 1,
aux_sym__quoted_string_text_fragment_token1,
ACTIONS(137), 1,
anon_sym_BSLASH,
ACTIONS(193), 1,
anon_sym_DQUOTE,
STATE(27), 1,
aux_sym__quoted_string_repeat1,
STATE(32), 1,
sym_macro_expansion,
STATE(36), 1,
aux_sym__quoted_string_text_fragment_repeat1,
ACTIONS(139), 2,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
STATE(56), 2,
sym__quoted_string_text_fragment,
sym_escape_sequence,
[1034] = 10,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(143), 1,
anon_sym_BSLASH,
ACTIONS(145), 1,
aux_sym__quoted_string_text_fragment2_token1,
ACTIONS(195), 1,
anon_sym_SQUOTE,
STATE(28), 1,
aux_sym__quoted_string2_repeat1,
STATE(33), 1,
sym_macro_expansion,
STATE(39), 1,
aux_sym__quoted_string_text_fragment2_repeat1,
ACTIONS(147), 2,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
STATE(54), 2,
sym__quoted_string_text_fragment2,
sym_escape_sequence2,
[1067] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(61), 1,
anon_sym_LF,
STATE(34), 1,
sym_macro_expansion,
ACTIONS(63), 7,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
sym_file_descriptor,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
sym_word,
[1089] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(35), 1,
sym_macro_expansion,
ACTIONS(197), 2,
sym_file_descriptor,
sym_word,
ACTIONS(39), 5,
ts_builtin_sym_end,
anon_sym_POUND,
anon_sym_LT,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1110] = 6,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(36), 1,
sym_macro_expansion,
STATE(38), 1,
aux_sym__quoted_string_text_fragment_repeat1,
ACTIONS(199), 2,
anon_sym_DQUOTE,
anon_sym_BSLASH,
ACTIONS(201), 3,
aux_sym__quoted_string_text_fragment_token1,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
[1132] = 7,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(203), 1,
anon_sym_LF,
ACTIONS(205), 1,
sym_file_descriptor,
STATE(37), 1,
sym_macro_expansion,
STATE(84), 1,
sym_redirect,
ACTIONS(25), 3,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
[1156] = 7,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(207), 1,
anon_sym_DQUOTE,
ACTIONS(209), 1,
aux_sym__quoted_string_text_fragment_token1,
ACTIONS(212), 1,
anon_sym_BSLASH,
ACTIONS(215), 2,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
STATE(38), 2,
sym_macro_expansion,
aux_sym__quoted_string_text_fragment_repeat1,
[1180] = 6,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(39), 1,
sym_macro_expansion,
STATE(40), 1,
aux_sym__quoted_string_text_fragment2_repeat1,
ACTIONS(217), 2,
anon_sym_SQUOTE,
anon_sym_BSLASH,
ACTIONS(219), 3,
aux_sym__quoted_string_text_fragment2_token1,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
[1202] = 7,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(221), 1,
anon_sym_SQUOTE,
ACTIONS(223), 1,
anon_sym_BSLASH,
ACTIONS(226), 1,
aux_sym__quoted_string_text_fragment2_token1,
ACTIONS(229), 2,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
STATE(40), 2,
sym_macro_expansion,
aux_sym__quoted_string_text_fragment2_repeat1,
[1226] = 7,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(205), 1,
sym_file_descriptor,
ACTIONS(231), 1,
anon_sym_LF,
STATE(41), 1,
sym_macro_expansion,
STATE(77), 1,
sym_redirect,
ACTIONS(25), 3,
anon_sym_LT,
anon_sym_GT,
anon_sym_GT_GT,
[1250] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(42), 1,
sym_macro_expansion,
ACTIONS(103), 2,
sym_file_descriptor,
sym_word,
ACTIONS(101), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1270] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(43), 1,
sym_macro_expansion,
ACTIONS(111), 2,
sym_file_descriptor,
sym_word,
ACTIONS(109), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1290] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(44), 1,
sym_macro_expansion,
ACTIONS(115), 2,
sym_file_descriptor,
sym_word,
ACTIONS(113), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1310] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(45), 1,
sym_macro_expansion,
ACTIONS(119), 2,
sym_file_descriptor,
sym_word,
ACTIONS(117), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1330] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(46), 1,
sym_macro_expansion,
ACTIONS(123), 2,
sym_file_descriptor,
sym_word,
ACTIONS(121), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1350] = 6,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(233), 1,
anon_sym_COMMA,
STATE(47), 1,
sym_macro_expansion,
ACTIONS(157), 2,
sym_file_descriptor,
sym_word,
ACTIONS(153), 3,
anon_sym_RPAREN,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1372] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(48), 1,
sym_macro_expansion,
ACTIONS(161), 2,
sym_file_descriptor,
sym_word,
ACTIONS(159), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1392] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(49), 1,
sym_macro_expansion,
ACTIONS(131), 2,
sym_file_descriptor,
sym_word,
ACTIONS(129), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1412] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(50), 1,
sym_macro_expansion,
ACTIONS(127), 2,
sym_file_descriptor,
sym_word,
ACTIONS(125), 4,
anon_sym_RPAREN,
anon_sym_COMMA,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1432] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(51), 1,
sym_macro_expansion,
ACTIONS(235), 2,
anon_sym_SQUOTE,
anon_sym_BSLASH,
ACTIONS(237), 3,
aux_sym__quoted_string_text_fragment2_token1,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
[1451] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(52), 1,
sym_macro_expansion,
ACTIONS(239), 2,
anon_sym_DQUOTE,
anon_sym_BSLASH,
ACTIONS(241), 3,
aux_sym__quoted_string_text_fragment_token1,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
[1470] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(53), 1,
sym_macro_expansion,
ACTIONS(243), 2,
anon_sym_SQUOTE,
anon_sym_BSLASH,
ACTIONS(245), 3,
aux_sym__quoted_string_text_fragment2_token1,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
[1489] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(54), 1,
sym_macro_expansion,
ACTIONS(247), 2,
anon_sym_SQUOTE,
anon_sym_BSLASH,
ACTIONS(249), 3,
aux_sym__quoted_string_text_fragment2_token1,
anon_sym_BSLASH_BSLASH,
anon_sym_BSLASH_SQUOTE,
[1508] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
STATE(55), 1,
sym_macro_expansion,
ACTIONS(63), 2,
sym_file_descriptor,
sym_word,
ACTIONS(61), 3,
anon_sym_RPAREN,
anon_sym_DQUOTE,
anon_sym_SQUOTE,
[1527] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(56), 1,
sym_macro_expansion,
ACTIONS(251), 2,
anon_sym_DQUOTE,
anon_sym_BSLASH,
ACTIONS(253), 3,
aux_sym__quoted_string_text_fragment_token1,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
[1546] = 5,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
STATE(57), 1,
sym_macro_expansion,
ACTIONS(255), 2,
anon_sym_DQUOTE,
anon_sym_BSLASH,
ACTIONS(257), 3,
aux_sym__quoted_string_text_fragment_token1,
anon_sym_BSLASH_DQUOTE,
anon_sym_BSLASH_BSLASH,
[1565] = 6,
ACTIONS(259), 1,
anon_sym_RPAREN,
ACTIONS(261), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(263), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(265), 1,
aux_sym_macro_expansion_token2,
STATE(58), 1,
sym_macro_expansion,
STATE(61), 1,
aux_sym_macro_expansion_repeat2,
[1584] = 6,
ACTIONS(267), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(269), 1,
aux_sym_macro_expansion_token1,
ACTIONS(271), 1,
anon_sym_RBRACE,
ACTIONS(273), 1,
anon_sym_DOLLAR_LPAREN,
STATE(59), 1,
sym_macro_expansion,
STATE(60), 1,
aux_sym_macro_expansion_repeat1,
[1603] = 5,
ACTIONS(275), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(278), 1,
aux_sym_macro_expansion_token1,
ACTIONS(281), 1,
anon_sym_RBRACE,
ACTIONS(283), 1,
anon_sym_DOLLAR_LPAREN,
STATE(60), 2,
sym_macro_expansion,
aux_sym_macro_expansion_repeat1,
[1620] = 5,
ACTIONS(286), 1,
anon_sym_RPAREN,
ACTIONS(288), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(291), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(294), 1,
aux_sym_macro_expansion_token2,
STATE(61), 2,
sym_macro_expansion,
aux_sym_macro_expansion_repeat2,
[1637] = 6,
ACTIONS(261), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(263), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(265), 1,
aux_sym_macro_expansion_token2,
ACTIONS(271), 1,
anon_sym_RPAREN,
STATE(61), 1,
aux_sym_macro_expansion_repeat2,
STATE(62), 1,
sym_macro_expansion,
[1656] = 6,
ACTIONS(267), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(269), 1,
aux_sym_macro_expansion_token1,
ACTIONS(273), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(297), 1,
anon_sym_RBRACE,
STATE(60), 1,
aux_sym_macro_expansion_repeat1,
STATE(63), 1,
sym_macro_expansion,
[1675] = 6,
ACTIONS(261), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(263), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(265), 1,
aux_sym_macro_expansion_token2,
ACTIONS(297), 1,
anon_sym_RPAREN,
STATE(61), 1,
aux_sym_macro_expansion_repeat2,
STATE(64), 1,
sym_macro_expansion,
[1694] = 6,
ACTIONS(259), 1,
anon_sym_RBRACE,
ACTIONS(267), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(269), 1,
aux_sym_macro_expansion_token1,
ACTIONS(273), 1,
anon_sym_DOLLAR_LPAREN,
STATE(60), 1,
aux_sym_macro_expansion_repeat1,
STATE(65), 1,
sym_macro_expansion,
[1713] = 2,
STATE(66), 1,
sym_macro_expansion,
ACTIONS(299), 4,
anon_sym_DOLLAR_LBRACE,
aux_sym_macro_expansion_token1,
anon_sym_RBRACE,
anon_sym_DOLLAR_LPAREN,
[1723] = 5,
ACTIONS(267), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(273), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(301), 1,
aux_sym_macro_expansion_token1,
STATE(59), 1,
aux_sym_macro_expansion_repeat1,
STATE(67), 1,
sym_macro_expansion,
[1739] = 5,
ACTIONS(261), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(263), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(303), 1,
aux_sym_macro_expansion_token2,
STATE(62), 1,
aux_sym_macro_expansion_repeat2,
STATE(68), 1,
sym_macro_expansion,
[1755] = 5,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(105), 1,
anon_sym_GT2,
ACTIONS(107), 1,
anon_sym_GT_GT2,
STATE(69), 1,
sym_macro_expansion,
[1771] = 5,
ACTIONS(267), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(273), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(305), 1,
aux_sym_macro_expansion_token1,
STATE(65), 1,
aux_sym_macro_expansion_repeat1,
STATE(70), 1,
sym_macro_expansion,
[1787] = 5,
ACTIONS(261), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(263), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(307), 1,
aux_sym_macro_expansion_token2,
STATE(58), 1,
aux_sym_macro_expansion_repeat2,
STATE(71), 1,
sym_macro_expansion,
[1803] = 2,
STATE(72), 1,
sym_macro_expansion,
ACTIONS(299), 4,
anon_sym_RPAREN,
anon_sym_DOLLAR_LBRACE,
anon_sym_DOLLAR_LPAREN,
aux_sym_macro_expansion_token2,
[1813] = 5,
ACTIONS(267), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(273), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(309), 1,
aux_sym_macro_expansion_token1,
STATE(63), 1,
aux_sym_macro_expansion_repeat1,
STATE(73), 1,
sym_macro_expansion,
[1829] = 5,
ACTIONS(261), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(263), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(311), 1,
aux_sym_macro_expansion_token2,
STATE(64), 1,
aux_sym_macro_expansion_repeat2,
STATE(74), 1,
sym_macro_expansion,
[1845] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(313), 1,
anon_sym_LF,
STATE(75), 1,
sym_macro_expansion,
[1858] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(315), 1,
anon_sym_LF,
STATE(76), 1,
sym_macro_expansion,
[1871] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(317), 1,
anon_sym_LF,
STATE(77), 1,
sym_macro_expansion,
[1884] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(59), 1,
anon_sym_LF,
STATE(78), 1,
sym_macro_expansion,
[1897] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(319), 1,
anon_sym_LF,
STATE(79), 1,
sym_macro_expansion,
[1910] = 4,
ACTIONS(3), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(5), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(321), 1,
ts_builtin_sym_end,
STATE(80), 1,
sym_macro_expansion,
[1923] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(323), 1,
anon_sym_LF,
STATE(81), 1,
sym_macro_expansion,
[1936] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(325), 1,
aux_sym_comment_token1,
STATE(82), 1,
sym_macro_expansion,
[1949] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(203), 1,
anon_sym_LF,
STATE(83), 1,
sym_macro_expansion,
[1962] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(231), 1,
anon_sym_LF,
STATE(84), 1,
sym_macro_expansion,
[1975] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(327), 1,
anon_sym_LF,
STATE(85), 1,
sym_macro_expansion,
[1988] = 4,
ACTIONS(33), 1,
anon_sym_DOLLAR_LBRACE,
ACTIONS(35), 1,
anon_sym_DOLLAR_LPAREN,
ACTIONS(329), 1,
anon_sym_LF,
STATE(86), 1,
sym_macro_expansion,
[2001] = 1,
ACTIONS(331), 1,
ts_builtin_sym_end,
};
static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(2)] = 0,
[SMALL_STATE(3)] = 52,
[SMALL_STATE(4)] = 104,
[SMALL_STATE(5)] = 154,
[SMALL_STATE(6)] = 203,
[SMALL_STATE(7)] = 247,
[SMALL_STATE(8)] = 288,
[SMALL_STATE(9)] = 327,
[SMALL_STATE(10)] = 368,
[SMALL_STATE(11)] = 397,
[SMALL_STATE(12)] = 421,
[SMALL_STATE(13)] = 445,
[SMALL_STATE(14)] = 469,
[SMALL_STATE(15)] = 493,
[SMALL_STATE(16)] = 517,
[SMALL_STATE(17)] = 541,
[SMALL_STATE(18)] = 565,
[SMALL_STATE(19)] = 598,
[SMALL_STATE(20)] = 631,
[SMALL_STATE(21)] = 664,
[SMALL_STATE(22)] = 697,
[SMALL_STATE(23)] = 732,
[SMALL_STATE(24)] = 767,
[SMALL_STATE(25)] = 792,
[SMALL_STATE(26)] = 815,
[SMALL_STATE(27)] = 838,
[SMALL_STATE(28)] = 869,
[SMALL_STATE(29)] = 900,
[SMALL_STATE(30)] = 935,
[SMALL_STATE(31)] = 968,
[SMALL_STATE(32)] = 1001,
[SMALL_STATE(33)] = 1034,
[SMALL_STATE(34)] = 1067,
[SMALL_STATE(35)] = 1089,
[SMALL_STATE(36)] = 1110,
[SMALL_STATE(37)] = 1132,
[SMALL_STATE(38)] = 1156,
[SMALL_STATE(39)] = 1180,
[SMALL_STATE(40)] = 1202,
[SMALL_STATE(41)] = 1226,
[SMALL_STATE(42)] = 1250,
[SMALL_STATE(43)] = 1270,
[SMALL_STATE(44)] = 1290,
[SMALL_STATE(45)] = 1310,
[SMALL_STATE(46)] = 1330,
[SMALL_STATE(47)] = 1350,
[SMALL_STATE(48)] = 1372,
[SMALL_STATE(49)] = 1392,
[SMALL_STATE(50)] = 1412,
[SMALL_STATE(51)] = 1432,
[SMALL_STATE(52)] = 1451,
[SMALL_STATE(53)] = 1470,
[SMALL_STATE(54)] = 1489,
[SMALL_STATE(55)] = 1508,
[SMALL_STATE(56)] = 1527,
[SMALL_STATE(57)] = 1546,
[SMALL_STATE(58)] = 1565,
[SMALL_STATE(59)] = 1584,
[SMALL_STATE(60)] = 1603,
[SMALL_STATE(61)] = 1620,
[SMALL_STATE(62)] = 1637,
[SMALL_STATE(63)] = 1656,
[SMALL_STATE(64)] = 1675,
[SMALL_STATE(65)] = 1694,
[SMALL_STATE(66)] = 1713,
[SMALL_STATE(67)] = 1723,
[SMALL_STATE(68)] = 1739,
[SMALL_STATE(69)] = 1755,
[SMALL_STATE(70)] = 1771,
[SMALL_STATE(71)] = 1787,
[SMALL_STATE(72)] = 1803,
[SMALL_STATE(73)] = 1813,
[SMALL_STATE(74)] = 1829,
[SMALL_STATE(75)] = 1845,
[SMALL_STATE(76)] = 1858,
[SMALL_STATE(77)] = 1871,
[SMALL_STATE(78)] = 1884,
[SMALL_STATE(79)] = 1897,
[SMALL_STATE(80)] = 1910,
[SMALL_STATE(81)] = 1923,
[SMALL_STATE(82)] = 1936,
[SMALL_STATE(83)] = 1949,
[SMALL_STATE(84)] = 1962,
[SMALL_STATE(85)] = 1975,
[SMALL_STATE(86)] = 1988,
[SMALL_STATE(87)] = 2001,
};
static const TSParseActionEntry ts_parse_actions[] = {
[0] = {.entry = {.count = 0, .reusable = false}},
[1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
[3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
[5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
[7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
[9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
[11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
[13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
[15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
[17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
[19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
[21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 1, 0, 2),
[23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7),
[25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
[27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
[29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
[31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
[33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
[35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
[37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
[39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
[41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(82),
[44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(23),
[47] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(11),
[50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(18),
[53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(19),
[56] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(12),
[59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 2, 0, 2),
[61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__command_args, 2, 0, 0),
[63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0),
[65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(11),
[68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(18),
[71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(19),
[74] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(12),
[77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
[79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
[81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
[83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
[85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43),
[87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(42),
[90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(30),
[93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(31),
[96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__command_args, 2, 0, 0), SHIFT_REPEAT(43),
[99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
[101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__argument, 1, 0, 1),
[103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__argument, 1, 0, 1),
[105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
[107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
[109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__argument, 1, 0, 0),
[111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__argument, 1, 0, 0),
[113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0),
[115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0),
[117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quoted_string, 2, 0, 0),
[119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quoted_string, 2, 0, 0),
[121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quoted_string2, 2, 0, 0),
[123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quoted_string2, 2, 0, 0),
[125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quoted_string2, 3, 0, 0),
[127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quoted_string2, 3, 0, 0),
[129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quoted_string, 3, 0, 0),
[131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quoted_string, 3, 0, 0),
[133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
[135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
[137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57),
[139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
[141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
[143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
[145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
[147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
[149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
[151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
[153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__command_args, 1, 0, 0),
[155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34),
[157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__command_args, 1, 0, 0),
[159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 1, 0, 0),
[161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument, 1, 0, 0),
[163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_name, 1, 0, 0),
[165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_name, 1, 0, 0),
[167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string_repeat1, 2, 0, 0),
[169] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(57),
[172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(57),
[175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(52),
[178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string2_repeat1, 2, 0, 0),
[180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__quoted_string2_repeat1, 2, 0, 0), SHIFT_REPEAT(53),
[183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__quoted_string2_repeat1, 2, 0, 0), SHIFT_REPEAT(53),
[186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__quoted_string2_repeat1, 2, 0, 0), SHIFT_REPEAT(51),
[189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
[191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
[193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
[195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50),
[197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
[199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quoted_string_text_fragment, 1, 0, 0),
[201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quoted_string_text_fragment, 1, 0, 0),
[203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 3, 0, 2),
[205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69),
[207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string_text_fragment_repeat1, 2, 0, 0),
[209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__quoted_string_text_fragment_repeat1, 2, 0, 0), SHIFT_REPEAT(57),
[212] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__quoted_string_text_fragment_repeat1, 2, 0, 0), SHIFT_REPEAT(57),
[215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__quoted_string_text_fragment_repeat1, 2, 0, 0),
[217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quoted_string_text_fragment2, 1, 0, 0),
[219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quoted_string_text_fragment2, 1, 0, 0),
[221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string_text_fragment2_repeat1, 2, 0, 0),
[223] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__quoted_string_text_fragment2_repeat1, 2, 0, 0), SHIFT_REPEAT(53),
[226] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__quoted_string_text_fragment2_repeat1, 2, 0, 0), SHIFT_REPEAT(53),
[229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__quoted_string_text_fragment2_repeat1, 2, 0, 0),
[231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 4, 0, 2),
[233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
[235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_escape_sequence2, 1, 0, 0),
[237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_escape_sequence2, 1, 0, 0),
[239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_escape_sequence, 1, 0, 0),
[241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_escape_sequence, 1, 0, 0),
[243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string_text_fragment2_repeat1, 1, 0, 0),
[245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__quoted_string_text_fragment2_repeat1, 1, 0, 0),
[247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string2_repeat1, 1, 0, 0),
[249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__quoted_string2_repeat1, 1, 0, 0),
[251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string_repeat1, 1, 0, 0),
[253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__quoted_string_repeat1, 1, 0, 0),
[255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__quoted_string_text_fragment_repeat1, 1, 0, 0),
[257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__quoted_string_text_fragment_repeat1, 1, 0, 0),
[259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66),
[261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
[263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
[265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
[267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
[269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
[271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
[273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
[275] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(70),
[278] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(60),
[281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat1, 2, 0, 0),
[283] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat1, 2, 0, 0), SHIFT_REPEAT(71),
[286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat2, 2, 0, 0),
[288] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat2, 2, 0, 0), SHIFT_REPEAT(73),
[291] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat2, 2, 0, 0), SHIFT_REPEAT(74),
[294] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_expansion_repeat2, 2, 0, 0), SHIFT_REPEAT(61),
[297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
[299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_expansion, 3, 0, 0),
[301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59),
[303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
[305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65),
[307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58),
[309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
[311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64),
[313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_redirect, 3, 0, 0),
[315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 1, 0, 0),
[317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 5, 0, 2),
[319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
[321] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
[323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_redirect, 2, 0, 0),
[325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86),
[327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 2, 0, 0),
[329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 0),
[331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_expansion, 3, 0, 0),
};
#ifdef __cplusplus
extern "C" {
#endif
#ifdef TREE_SITTER_HIDE_SYMBOLS
#define TS_PUBLIC
#elif defined(_WIN32)
#define TS_PUBLIC __declspec(dllexport)
#else
#define TS_PUBLIC __attribute__((visibility("default")))
#endif
TS_PUBLIC const TSLanguage *tree_sitter_epics_cmd(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,
.supertype_count = SUPERTYPE_COUNT,
.field_count = FIELD_COUNT,
.max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
.parse_table = &ts_parse_table[0][0],
.small_parse_table = ts_small_parse_table,
.small_parse_table_map = ts_small_parse_table_map,
.parse_actions = ts_parse_actions,
.symbol_names = ts_symbol_names,
.field_names = ts_field_names,
.field_map_slices = ts_field_map_slices,
.field_map_entries = ts_field_map_entries,
.symbol_metadata = ts_symbol_metadata,
.public_symbol_map = ts_symbol_map,
.alias_map = ts_non_terminal_alias_map,
.alias_sequences = &ts_alias_sequences[0][0],
.lex_modes = (const void*)ts_lex_modes,
.lex_fn = ts_lex,
.primary_state_ids = ts_primary_state_ids,
.name = "epics_cmd",
.max_reserved_word_set_size = 0,
.metadata = {
.major_version = 0,
.minor_version = 1,
.patch_version = 4,
},
};
return &language;
}
#ifdef __cplusplus
}
#endif