summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/grammar.json13
-rw-r--r--src/node-types.json4
-rw-r--r--src/parser.c32382
3 files changed, 16314 insertions, 16085 deletions
diff --git a/src/grammar.json b/src/grammar.json
index 8da6fc69b..261d75e2d 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -433,8 +433,17 @@
"type": "SEQ",
"members": [
{
- "type": "STRING",
- "value": "while"
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "while"
+ },
+ {
+ "type": "STRING",
+ "value": "until"
+ }
+ ]
},
{
"type": "FIELD",
diff --git a/src/node-types.json b/src/node-types.json
index 1a967a561..308a626a9 100644
--- a/src/node-types.json
+++ b/src/node-types.json
@@ -1640,6 +1640,10 @@
"named": false
},
{
+ "type": "until",
+ "named": false
+ },
+ {
"type": "variable_name",
"named": true
},
diff --git a/src/parser.c b/src/parser.c
index 2c3db3ef7..cbc5dba7b 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -16,9 +16,9 @@
#define LANGUAGE_VERSION 13
#define STATE_COUNT 3481
#define LARGE_STATE_COUNT 158
-#define SYMBOL_COUNT 163
+#define SYMBOL_COUNT 164
#define ALIAS_COUNT 0
-#define TOKEN_COUNT 102
+#define TOKEN_COUNT 103
#define EXTERNAL_TOKEN_COUNT 15
#define FIELD_COUNT 19
#define MAX_ALIAS_SEQUENCE_LENGTH 10
@@ -34,159 +34,160 @@ enum {
anon_sym_RPAREN_RPAREN = 7,
anon_sym_SEMI = 8,
anon_sym_while = 9,
- anon_sym_do = 10,
- anon_sym_done = 11,
- anon_sym_if = 12,
- anon_sym_then = 13,
- anon_sym_fi = 14,
- anon_sym_elif = 15,
- anon_sym_else = 16,
- anon_sym_case = 17,
- anon_sym_esac = 18,
- anon_sym_PIPE = 19,
- anon_sym_RPAREN = 20,
- anon_sym_SEMI_SEMI = 21,
- anon_sym_SEMI_AMP = 22,
- anon_sym_SEMI_SEMI_AMP = 23,
- anon_sym_function = 24,
- anon_sym_LPAREN = 25,
- anon_sym_LBRACE = 26,
- anon_sym_RBRACE = 27,
- anon_sym_PIPE_AMP = 28,
- anon_sym_AMP_AMP = 29,
- anon_sym_PIPE_PIPE = 30,
- anon_sym_BANG = 31,
- anon_sym_LBRACK = 32,
- anon_sym_RBRACK = 33,
- anon_sym_LBRACK_LBRACK = 34,
- anon_sym_RBRACK_RBRACK = 35,
- anon_sym_declare = 36,
- anon_sym_typeset = 37,
- anon_sym_export = 38,
- anon_sym_readonly = 39,
- anon_sym_local = 40,
- anon_sym_unset = 41,
- anon_sym_unsetenv = 42,
- anon_sym_EQ_TILDE = 43,
- anon_sym_EQ_EQ = 44,
- anon_sym_EQ = 45,
- anon_sym_PLUS_EQ = 46,
- anon_sym_LT = 47,
- anon_sym_GT = 48,
- anon_sym_GT_GT = 49,
- anon_sym_AMP_GT = 50,
- anon_sym_AMP_GT_GT = 51,
- anon_sym_LT_AMP = 52,
- anon_sym_GT_AMP = 53,
- anon_sym_GT_PIPE = 54,
- anon_sym_LT_LT = 55,
- anon_sym_LT_LT_DASH = 56,
- anon_sym_LT_LT_LT = 57,
- anon_sym_BANG_EQ = 58,
- anon_sym_PLUS = 59,
- anon_sym_DASH = 60,
- anon_sym_DASH_EQ = 61,
- anon_sym_LT_EQ = 62,
- anon_sym_GT_EQ = 63,
- anon_sym_QMARK = 64,
- anon_sym_COLON = 65,
- anon_sym_PLUS_PLUS = 66,
- anon_sym_DASH_DASH = 67,
- anon_sym_DOLLAR = 68,
- sym__special_character = 69,
- anon_sym_DQUOTE = 70,
- sym__string_content = 71,
- sym_raw_string = 72,
- sym_ansii_c_string = 73,
- anon_sym_POUND = 74,
- anon_sym_DOLLAR_LBRACE = 75,
- anon_sym_SLASH = 76,
- anon_sym_COLON_QMARK = 77,
- anon_sym_COLON_DASH = 78,
- anon_sym_PERCENT = 79,
- anon_sym_DOLLAR_LPAREN = 80,
- anon_sym_BQUOTE = 81,
- anon_sym_LT_LPAREN = 82,
- anon_sym_GT_LPAREN = 83,
- sym_comment = 84,
- aux_sym__simple_variable_name_token1 = 85,
- anon_sym_STAR = 86,
- anon_sym_AT = 87,
- anon_sym_0 = 88,
- anon_sym__ = 89,
- sym_test_operator = 90,
- anon_sym_AMP = 91,
- sym_heredoc_start = 92,
- sym__simple_heredoc_body = 93,
- sym__heredoc_body_beginning = 94,
- sym__heredoc_body_middle = 95,
- sym__heredoc_body_end = 96,
- sym_file_descriptor = 97,
- sym__empty_value = 98,
- sym__concat = 99,
- sym_variable_name = 100,
- sym_regex = 101,
- sym_program = 102,
- sym__statements = 103,
- aux_sym__statements2 = 104,
- sym__terminated_statement = 105,
- sym_redirected_statement = 106,
- sym_for_statement = 107,
- sym_c_style_for_statement = 108,
- sym_while_statement = 109,
- sym_do_group = 110,
- sym_if_statement = 111,
- sym_elif_clause = 112,
- sym_else_clause = 113,
- sym_case_statement = 114,
- sym_case_item = 115,
- sym_last_case_item = 116,
- sym_function_definition = 117,
- sym_compound_statement = 118,
- sym_subshell = 119,
- sym_pipeline = 120,
- sym_list = 121,
- sym_negated_command = 122,
- sym_test_command = 123,
- sym_declaration_command = 124,
- sym_unset_command = 125,
- sym_command = 126,
- sym_command_name = 127,
- sym_variable_assignment = 128,
- sym_subscript = 129,
- sym_file_redirect = 130,
- sym_heredoc_redirect = 131,
- sym_heredoc_body = 132,
- sym_herestring_redirect = 133,
- sym__expression = 134,
- sym_binary_expression = 135,
- sym_ternary_expression = 136,
- sym_unary_expression = 137,
- sym_postfix_expression = 138,
- sym_parenthesized_expression = 139,
- sym_concatenation = 140,
- sym_string = 141,
- sym_array = 142,
- sym_simple_expansion = 143,
- sym_string_expansion = 144,
- sym_expansion = 145,
- sym_command_substitution = 146,
- sym_process_substitution = 147,
- aux_sym__statements_repeat1 = 148,
- aux_sym_redirected_statement_repeat1 = 149,
- aux_sym_for_statement_repeat1 = 150,
- aux_sym_if_statement_repeat1 = 151,
- aux_sym_case_statement_repeat1 = 152,
- aux_sym_case_item_repeat1 = 153,
- aux_sym_declaration_command_repeat1 = 154,
- aux_sym_unset_command_repeat1 = 155,
- aux_sym_command_repeat1 = 156,
- aux_sym_command_repeat2 = 157,
- aux_sym_heredoc_body_repeat1 = 158,
- aux_sym__literal_repeat1 = 159,
- aux_sym_concatenation_repeat1 = 160,
- aux_sym_string_repeat1 = 161,
- aux_sym_expansion_repeat1 = 162,
+ anon_sym_until = 10,
+ anon_sym_do = 11,
+ anon_sym_done = 12,
+ anon_sym_if = 13,
+ anon_sym_then = 14,
+ anon_sym_fi = 15,
+ anon_sym_elif = 16,
+ anon_sym_else = 17,
+ anon_sym_case = 18,
+ anon_sym_esac = 19,
+ anon_sym_PIPE = 20,
+ anon_sym_RPAREN = 21,
+ anon_sym_SEMI_SEMI = 22,
+ anon_sym_SEMI_AMP = 23,
+ anon_sym_SEMI_SEMI_AMP = 24,
+ anon_sym_function = 25,
+ anon_sym_LPAREN = 26,
+ anon_sym_LBRACE = 27,
+ anon_sym_RBRACE = 28,
+ anon_sym_PIPE_AMP = 29,
+ anon_sym_AMP_AMP = 30,
+ anon_sym_PIPE_PIPE = 31,
+ anon_sym_BANG = 32,
+ anon_sym_LBRACK = 33,
+ anon_sym_RBRACK = 34,
+ anon_sym_LBRACK_LBRACK = 35,
+ anon_sym_RBRACK_RBRACK = 36,
+ anon_sym_declare = 37,
+ anon_sym_typeset = 38,
+ anon_sym_export = 39,
+ anon_sym_readonly = 40,
+ anon_sym_local = 41,
+ anon_sym_unset = 42,
+ anon_sym_unsetenv = 43,
+ anon_sym_EQ_TILDE = 44,
+ anon_sym_EQ_EQ = 45,
+ anon_sym_EQ = 46,
+ anon_sym_PLUS_EQ = 47,
+ anon_sym_LT = 48,
+ anon_sym_GT = 49,
+ anon_sym_GT_GT = 50,
+ anon_sym_AMP_GT = 51,
+ anon_sym_AMP_GT_GT = 52,
+ anon_sym_LT_AMP = 53,
+ anon_sym_GT_AMP = 54,
+ anon_sym_GT_PIPE = 55,
+ anon_sym_LT_LT = 56,
+ anon_sym_LT_LT_DASH = 57,
+ anon_sym_LT_LT_LT = 58,
+ anon_sym_BANG_EQ = 59,
+ anon_sym_PLUS = 60,
+ anon_sym_DASH = 61,
+ anon_sym_DASH_EQ = 62,
+ anon_sym_LT_EQ = 63,
+ anon_sym_GT_EQ = 64,
+ anon_sym_QMARK = 65,
+ anon_sym_COLON = 66,
+ anon_sym_PLUS_PLUS = 67,
+ anon_sym_DASH_DASH = 68,
+ anon_sym_DOLLAR = 69,
+ sym__special_character = 70,
+ anon_sym_DQUOTE = 71,
+ sym__string_content = 72,
+ sym_raw_string = 73,
+ sym_ansii_c_string = 74,
+ anon_sym_POUND = 75,
+ anon_sym_DOLLAR_LBRACE = 76,
+ anon_sym_SLASH = 77,
+ anon_sym_COLON_QMARK = 78,
+ anon_sym_COLON_DASH = 79,
+ anon_sym_PERCENT = 80,
+ anon_sym_DOLLAR_LPAREN = 81,
+ anon_sym_BQUOTE = 82,
+ anon_sym_LT_LPAREN = 83,
+ anon_sym_GT_LPAREN = 84,
+ sym_comment = 85,
+ aux_sym__simple_variable_name_token1 = 86,
+ anon_sym_STAR = 87,
+ anon_sym_AT = 88,
+ anon_sym_0 = 89,
+ anon_sym__ = 90,
+ sym_test_operator = 91,
+ anon_sym_AMP = 92,
+ sym_heredoc_start = 93,
+ sym__simple_heredoc_body = 94,
+ sym__heredoc_body_beginning = 95,
+ sym__heredoc_body_middle = 96,
+ sym__heredoc_body_end = 97,
+ sym_file_descriptor = 98,
+ sym__empty_value = 99,
+ sym__concat = 100,
+ sym_variable_name = 101,
+ sym_regex = 102,
+ sym_program = 103,
+ sym__statements = 104,
+ aux_sym__statements2 = 105,
+ sym__terminated_statement = 106,
+ sym_redirected_statement = 107,
+ sym_for_statement = 108,
+ sym_c_style_for_statement = 109,
+ sym_while_statement = 110,
+ sym_do_group = 111,
+ sym_if_statement = 112,
+ sym_elif_clause = 113,
+ sym_else_clause = 114,
+ sym_case_statement = 115,
+ sym_case_item = 116,
+ sym_last_case_item = 117,
+ sym_function_definition = 118,
+ sym_compound_statement = 119,
+ sym_subshell = 120,
+ sym_pipeline = 121,
+ sym_list = 122,
+ sym_negated_command = 123,
+ sym_test_command = 124,
+ sym_declaration_command = 125,
+ sym_unset_command = 126,
+ sym_command = 127,
+ sym_command_name = 128,
+ sym_variable_assignment = 129,
+ sym_subscript = 130,
+ sym_file_redirect = 131,
+ sym_heredoc_redirect = 132,
+ sym_heredoc_body = 133,
+ sym_herestring_redirect = 134,
+ sym__expression = 135,
+ sym_binary_expression = 136,
+ sym_ternary_expression = 137,
+ sym_unary_expression = 138,
+ sym_postfix_expression = 139,
+ sym_parenthesized_expression = 140,
+ sym_concatenation = 141,
+ sym_string = 142,
+ sym_array = 143,
+ sym_simple_expansion = 144,
+ sym_string_expansion = 145,
+ sym_expansion = 146,
+ sym_command_substitution = 147,
+ sym_process_substitution = 148,
+ aux_sym__statements_repeat1 = 149,
+ aux_sym_redirected_statement_repeat1 = 150,
+ aux_sym_for_statement_repeat1 = 151,
+ aux_sym_if_statement_repeat1 = 152,
+ aux_sym_case_statement_repeat1 = 153,
+ aux_sym_case_item_repeat1 = 154,
+ aux_sym_declaration_command_repeat1 = 155,
+ aux_sym_unset_command_repeat1 = 156,
+ aux_sym_command_repeat1 = 157,
+ aux_sym_command_repeat2 = 158,
+ aux_sym_heredoc_body_repeat1 = 159,
+ aux_sym__literal_repeat1 = 160,
+ aux_sym_concatenation_repeat1 = 161,
+ aux_sym_string_repeat1 = 162,
+ aux_sym_expansion_repeat1 = 163,
};
static const char * const ts_symbol_names[] = {
@@ -200,6 +201,7 @@ static const char * const ts_symbol_names[] = {
[anon_sym_RPAREN_RPAREN] = "))",
[anon_sym_SEMI] = ";",
[anon_sym_while] = "while",
+ [anon_sym_until] = "until",
[anon_sym_do] = "do",
[anon_sym_done] = "done",
[anon_sym_if] = "if",
@@ -366,6 +368,7 @@ static const TSSymbol ts_symbol_map[] = {
[anon_sym_RPAREN_RPAREN] = anon_sym_RPAREN_RPAREN,
[anon_sym_SEMI] = anon_sym_SEMI,
[anon_sym_while] = anon_sym_while,
+ [anon_sym_until] = anon_sym_until,
[anon_sym_do] = anon_sym_do,
[anon_sym_done] = anon_sym_done,
[anon_sym_if] = anon_sym_if,
@@ -562,6 +565,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
.visible = true,
.named = false,
},
+ [anon_sym_until] = {
+ .visible = true,
+ .named = false,
+ },
[anon_sym_do] = {
.visible = true,
.named = false,
@@ -2314,11 +2321,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead == '$') ADVANCE(321);
if (lookahead == '&') ADVANCE(423);
if (lookahead == '\'') ADVANCE(106);
+ if (lookahead == ')') ADVANCE(250);
if (lookahead == '*') ADVANCE(360);
if (lookahead == '-') ADVANCE(307);
if (lookahead == '0') ADVANCE(363);
- if (lookahead == ';') ADVANCE(231);
+ if (lookahead == ';') ADVANCE(232);
if (lookahead == '<') ADVANCE(283);
+ if (lookahead == '=') ADVANCE(398);
if (lookahead == '>') ADVANCE(288);
if (lookahead == '?') ADVANCE(313);
if (lookahead == '@') ADVANCE(362);
@@ -2337,8 +2346,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
('A' <= lookahead && lookahead <= 'Z') ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(353);
if (lookahead != 0 &&
- lookahead != '(' &&
- lookahead != ')') ADVANCE(414);
+ lookahead != '(') ADVANCE(414);
END_STATE();
case 68:
if (lookahead == '\n') ADVANCE(217);
@@ -2348,13 +2356,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead == '$') ADVANCE(321);
if (lookahead == '&') ADVANCE(423);
if (lookahead == '\'') ADVANCE(106);
- if (lookahead == ')') ADVANCE(250);
if (lookahead == '*') ADVANCE(360);
if (lookahead == '-') ADVANCE(307);
if (lookahead == '0') ADVANCE(363);
- if (lookahead == ';') ADVANCE(232);
+ if (lookahead == ';') ADVANCE(231);
if (lookahead == '<') ADVANCE(283);
- if (lookahead == '=') ADVANCE(398);
if (lookahead == '>') ADVANCE(288);
if (lookahead == '?') ADVANCE(313);
if (lookahead == '@') ADVANCE(362);
@@ -2373,7 +2379,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
('A' <= lookahead && lookahead <= 'Z') ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(353);
if (lookahead != 0 &&
- lookahead != '(') ADVANCE(414);
+ lookahead != '(' &&
+ lookahead != ')') ADVANCE(414);
END_STATE();
case 69:
if (lookahead == '\n') ADVANCE(218);
@@ -3880,7 +3887,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
END_STATE();
case 194:
if (eof) ADVANCE(204);
- if (lookahead == '\n') ADVANCE(217);
+ if (lookahead == '\n') ADVANCE(216);
if (lookahead == '!') ADVANCE(265);
if (lookahead == '"') ADVANCE(325);
if (lookahead == '#') ADVANCE(338);
@@ -3901,7 +3908,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
lookahead == ']' ||
lookahead == '{' ||
lookahead == '}') ADVANCE(323);
- if (lookahead == '\\') ADVANCE(146);
+ if (lookahead == '\\') ADVANCE(145);
if (lookahead == '_') ADVANCE(366);
if (lookahead == '`') ADVANCE(345);
if (lookahead == '|') ADVANCE(248);
@@ -5052,6 +5059,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead == '*') ADVANCE(360);
if (lookahead == '-') ADVANCE(307);
if (lookahead == '0') ADVANCE(363);
+ if (lookahead == '=') ADVANCE(398);
if (lookahead == '?') ADVANCE(313);
if (lookahead == '@') ADVANCE(362);
if (lookahead == '\\') ADVANCE(145);
@@ -5064,9 +5072,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
lookahead != '\r' &&
(lookahead < ' ' || '$' < lookahead) &&
(lookahead < '&' || ')' < lookahead) &&
- lookahead != ';' &&
- lookahead != '<' &&
- (lookahead < '>' || ']' < lookahead) &&
+ (lookahead < ';' || ']' < lookahead) &&
(lookahead < '`' || '}' < lookahead)) ADVANCE(414);
END_STATE();
case 379:
@@ -5076,7 +5082,6 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead == '*') ADVANCE(360);
if (lookahead == '-') ADVANCE(307);
if (lookahead == '0') ADVANCE(363);
- if (lookahead == '=') ADVANCE(398);
if (lookahead == '?') ADVANCE(313);
if (lookahead == '@') ADVANCE(362);
if (lookahead == '\\') ADVANCE(146);
@@ -5089,7 +5094,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
lookahead != '\r' &&
(lookahead < ' ' || '$' < lookahead) &&
(lookahead < '&' || ')' < lookahead) &&
- (lookahead < ';' || ']' < lookahead) &&
+ lookahead != ';' &&
+ lookahead != '<' &&
+ (lookahead < '>' || ']' < lookahead) &&
(lookahead < '`' || '}' < lookahead)) ADVANCE(414);
END_STATE();
case 380:
@@ -5563,150 +5570,160 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
END_STATE();
case 25:
if (lookahead == 's') ADVANCE(37);
+ if (lookahead == 't') ADVANCE(38);
END_STATE();
case 26:
- if (lookahead == 'i') ADVANCE(38);
+ if (lookahead == 'i') ADVANCE(39);
END_STATE();
case 27:
- if (lookahead == 'e') ADVANCE(39);
+ if (lookahead == 'e') ADVANCE(40);
END_STATE();
case 28:
- if (lookahead == 'l') ADVANCE(40);
+ if (lookahead == 'l') ADVANCE(41);
END_STATE();
case 29:
- if (lookahead == 'e') ADVANCE(41);
+ if (lookahead == 'e') ADVANCE(42);
END_STATE();
case 30:
- if (lookahead == 'o') ADVANCE(42);
+ if (lookahead == 'o') ADVANCE(43);
END_STATE();
case 31:
ACCEPT_TOKEN(anon_sym_for);
END_STATE();
case 32:
- if (lookahead == 'c') ADVANCE(43);
+ if (lookahead == 'c') ADVANCE(44);
END_STATE();
case 33:
- if (lookahead == 'a') ADVANCE(44);
+ if (lookahead == 'a') ADVANCE(45);
END_STATE();
case 34:
- if (lookahead == 'd') ADVANCE(45);
+ if (lookahead == 'd') ADVANCE(46);
END_STATE();
case 35:
- if (lookahead == 'e') ADVANCE(46);
+ if (lookahead == 'e') ADVANCE(47);
END_STATE();
case 36:
- if (lookahead == 'e') ADVANCE(47);
+ if (lookahead == 'e') ADVANCE(48);
END_STATE();
case 37:
- if (lookahead == 'e') ADVANCE(48);
+ if (lookahead == 'e') ADVANCE(49);
END_STATE();
case 38:
- if (lookahead == 'l') ADVANCE(49);
+ if (lookahead == 'i') ADVANCE(50);
END_STATE();
case 39:
- ACCEPT_TOKEN(anon_sym_case);
+ if (lookahead == 'l') ADVANCE(51);
END_STATE();
case 40:
- if (lookahead == 'a') ADVANCE(50);
+ ACCEPT_TOKEN(anon_sym_case);
END_STATE();
case 41:
- ACCEPT_TOKEN(anon_sym_done);
+ if (lookahead == 'a') ADVANCE(52);
END_STATE();
case 42:
- if (lookahead == 'r') ADVANCE(51);
+ ACCEPT_TOKEN(anon_sym_done);
END_STATE();
case 43:
- if (lookahead == 't') ADVANCE(52);
+ if (lookahead == 'r') ADVANCE(53);
END_STATE();
case 44:
- if (lookahead == 'l') ADVANCE(53);
+ if (lookahead == 't') ADVANCE(54);
END_STATE();
case 45:
- if (lookahead == 'o') ADVANCE(54);
+ if (lookahead == 'l') ADVANCE(55);
END_STATE();
case 46:
- if (lookahead == 'c') ADVANCE(55);
+ if (lookahead == 'o') ADVANCE(56);
END_STATE();
case 47:
- if (lookahead == 's') ADVANCE(56);
+ if (lookahead == 'c') ADVANCE(57);
END_STATE();
case 48:
- if (lookahead == 't') ADVANCE(57);
+ if (lookahead == 's') ADVANCE(58);
END_STATE();
case 49:
- if (lookahead == 'e') ADVANCE(58);
+ if (lookahead == 't') ADVANCE(59);
END_STATE();
case 50:
- if (lookahead == 'r') ADVANCE(59);
+ if (lookahead == 'l') ADVANCE(60);
END_STATE();
case 51:
- if (lookahead == 't') ADVANCE(60);
+ if (lookahead == 'e') ADVANCE(61);
END_STATE();
case 52:
- if (lookahead == 'i') ADVANCE(61);
+ if (lookahead == 'r') ADVANCE(62);
END_STATE();
case 53:
- ACCEPT_TOKEN(anon_sym_local);
+ if (lookahead == 't') ADVANCE(63);
END_STATE();
case 54:
- if (lookahead == 'n') ADVANCE(62);
+ if (lookahead == 'i') ADVANCE(64);
END_STATE();
case 55:
- if (lookahead == 't') ADVANCE(63);
+ ACCEPT_TOKEN(anon_sym_local);
END_STATE();
case 56:
- if (lookahead == 'e') ADVANCE(64);
+ if (lookahead == 'n') ADVANCE(65);
END_STATE();
case 57:
- ACCEPT_TOKEN(anon_sym_unset);
- if (lookahead == 'e') ADVANCE(65);
+ if (lookahead == 't') ADVANCE(66);
END_STATE();
case 58:
- ACCEPT_TOKEN(anon_sym_while);
+ if (lookahead == 'e') ADVANCE(67);
END_STATE();
case 59:
- if (lookahead == 'e') ADVANCE(66);
+ ACCEPT_TOKEN(anon_sym_unset);
+ if (lookahead == 'e') ADVANCE(68);
END_STATE();
case 60:
- ACCEPT_TOKEN(anon_sym_export);
+ ACCEPT_TOKEN(anon_sym_until);
END_STATE();
case 61:
- if (lookahead == 'o') ADVANCE(67);
+ ACCEPT_TOKEN(anon_sym_while);
END_STATE();
case 62:
- if (lookahead == 'l') ADVANCE(68);
+ if (lookahead == 'e') ADVANCE(69);
END_STATE();
case 63:
- ACCEPT_TOKEN(anon_sym_select);
+ ACCEPT_TOKEN(anon_sym_export);
END_STATE();
case 64:
- if (lookahead == 't') ADVANCE(69);
+ if (lookahead == 'o') ADVANCE(70);
END_STATE();
case 65:
- if (lookahead == 'n') ADVANCE(70);
+ if (lookahead == 'l') ADVANCE(71);
END_STATE();
case 66:
- ACCEPT_TOKEN(anon_sym_declare);
+ ACCEPT_TOKEN(anon_sym_select);
END_STATE();
case 67:
- if (lookahead == 'n') ADVANCE(71);
+ if (lookahead == 't') ADVANCE(72);
END_STATE();
case 68:
- if (lookahead == 'y') ADVANCE(72);
+ if (lookahead == 'n') ADVANCE(73);
END_STATE();
case 69:
- ACCEPT_TOKEN(anon_sym_typeset);
+ ACCEPT_TOKEN(anon_sym_declare);
END_STATE();
case 70:
- if (lookahead == 'v') ADVANCE(73);
+ if (lookahead == 'n') ADVANCE(74);
END_STATE();
case 71:
- ACCEPT_TOKEN(anon_sym_function);
+ if (lookahead == 'y') ADVANCE(75);
END_STATE();
case 72:
- ACCEPT_TOKEN(anon_sym_readonly);
+ ACCEPT_TOKEN(anon_sym_typeset);
END_STATE();
case 73:
+ if (lookahead == 'v') ADVANCE(76);
+ END_STATE();
+ case 74:
+ ACCEPT_TOKEN(anon_sym_function);
+ END_STATE();
+ case 75:
+ ACCEPT_TOKEN(anon_sym_readonly);
+ END_STATE();
+ case 76:
ACCEPT_TOKEN(anon_sym_unsetenv);
END_STATE();
default:
@@ -5746,11 +5763,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[28] = {.lex_state = 198, .external_lex_state = 2},
[29] = {.lex_state = 198, .external_lex_state = 2},
[30] = {.lex_state = 198, .external_lex_state = 2},
- [31] = {.lex_state = 82, .external_lex_state = 2},
- [32] = {.lex_state = 198, .external_lex_state = 2},
- [33] = {.lex_state = 198, .external_lex_state = 2},
+ [31] = {.lex_state = 198, .external_lex_state = 2},
+ [32] = {.lex_state = 82, .external_lex_state = 2},
+ [33] = {.lex_state = 82, .external_lex_state = 2},
[34] = {.lex_state = 198, .external_lex_state = 2},
- [35] = {.lex_state = 82, .external_lex_state = 2},
+ [35] = {.lex_state = 198, .external_lex_state = 2},
[36] = {.lex_state = 198, .external_lex_state = 2},
[37] = {.lex_state = 198, .external_lex_state = 2},
[38] = {.lex_state = 198, .external_lex_state = 2},
@@ -5793,7 +5810,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[75] = {.lex_state = 198, .external_lex_state = 2},
[76] = {.lex_state = 198, .external_lex_state = 2},
[77] = {.lex_state = 198, .external_lex_state = 2},
- [78] = {.lex_state = 83, .external_lex_state = 3},
+ [78] = {.lex_state = 198, .external_lex_state = 2},
[79] = {.lex_state = 198, .external_lex_state = 2},
[80] = {.lex_state = 198, .external_lex_state = 2},
[81] = {.lex_state = 198, .external_lex_state = 2},
@@ -5811,19 +5828,19 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[93] = {.lex_state = 198, .external_lex_state = 2},
[94] = {.lex_state = 83, .external_lex_state = 3},
[95] = {.lex_state = 198, .external_lex_state = 2},
- [96] = {.lex_state = 83, .external_lex_state = 3},
+ [96] = {.lex_state = 198, .external_lex_state = 2},
[97] = {.lex_state = 198, .external_lex_state = 2},
- [98] = {.lex_state = 198, .external_lex_state = 2},
+ [98] = {.lex_state = 82, .external_lex_state = 2},
[99] = {.lex_state = 198, .external_lex_state = 2},
[100] = {.lex_state = 198, .external_lex_state = 2},
- [101] = {.lex_state = 198, .external_lex_state = 2},
+ [101] = {.lex_state = 83, .external_lex_state = 3},
[102] = {.lex_state = 198, .external_lex_state = 2},
- [103] = {.lex_state = 198, .external_lex_state = 2},
+ [103] = {.lex_state = 83, .external_lex_state = 3},
[104] = {.lex_state = 198, .external_lex_state = 2},
[105] = {.lex_state = 198, .external_lex_state = 2},
- [106] = {.lex_state = 83, .external_lex_state = 3},
+ [106] = {.lex_state = 198, .external_lex_state = 2},
[107] = {.lex_state = 198, .external_lex_state = 2},
- [108] = {.lex_state = 83, .external_lex_state = 3},
+ [108] = {.lex_state = 198, .external_lex_state = 2},
[109] = {.lex_state = 198, .external_lex_state = 2},
[110] = {.lex_state = 198, .external_lex_state = 2},
[111] = {.lex_state = 198, .external_lex_state = 2},
@@ -5837,14 +5854,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[119] = {.lex_state = 198, .external_lex_state = 2},
[120] = {.lex_state = 198, .external_lex_state = 2},
[121] = {.lex_state = 198, .external_lex_state = 2},
- [122] = {.lex_state = 198, .external_lex_state = 2},
+ [122] = {.lex_state = 83, .external_lex_state = 3},
[123] = {.lex_state = 198, .external_lex_state = 2},
[124] = {.lex_state = 198, .external_lex_state = 2},
[125] = {.lex_state = 198, .external_lex_state = 2},
[126] = {.lex_state = 198, .external_lex_state = 2},
- [127] = {.lex_state = 83, .external_lex_state = 3},
- [128] = {.lex_state = 82, .external_lex_state = 2},
- [129] = {.lex_state = 198, .external_lex_state = 2},
+ [127] = {.lex_state = 198, .external_lex_state = 2},
+ [128] = {.lex_state = 83, .external_lex_state = 3},
+ [129] = {.lex_state = 83, .external_lex_state = 3},
[130] = {.lex_state = 198, .external_lex_state = 2},
[131] = {.lex_state = 198, .external_lex_state = 2},
[132] = {.lex_state = 198, .external_lex_state = 2},
@@ -5873,147 +5890,147 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[155] = {.lex_state = 198, .external_lex_state = 2},
[156] = {.lex_state = 198, .external_lex_state = 2},
[157] = {.lex_state = 198, .external_lex_state = 2},
- [158] = {.lex_state = 8, .external_lex_state = 4},
- [159] = {.lex_state = 8, .external_lex_state = 4},
- [160] = {.lex_state = 8, .external_lex_state = 4},
- [161] = {.lex_state = 80, .external_lex_state = 5},
- [162] = {.lex_state = 80, .external_lex_state = 5},
- [163] = {.lex_state = 60, .external_lex_state = 4},
- [164] = {.lex_state = 60, .external_lex_state = 4},
- [165] = {.lex_state = 81, .external_lex_state = 5},
- [166] = {.lex_state = 61, .external_lex_state = 6},
- [167] = {.lex_state = 198, .external_lex_state = 5},
- [168] = {.lex_state = 60, .external_lex_state = 4},
- [169] = {.lex_state = 198, .external_lex_state = 5},
- [170] = {.lex_state = 193, .external_lex_state = 4},
- [171] = {.lex_state = 63, .external_lex_state = 6},
- [172] = {.lex_state = 193, .external_lex_state = 4},
- [173] = {.lex_state = 63, .external_lex_state = 6},
+ [158] = {.lex_state = 80, .external_lex_state = 4},
+ [159] = {.lex_state = 80, .external_lex_state = 4},
+ [160] = {.lex_state = 198, .external_lex_state = 4},
+ [161] = {.lex_state = 8, .external_lex_state = 5},
+ [162] = {.lex_state = 198, .external_lex_state = 4},
+ [163] = {.lex_state = 8, .external_lex_state = 5},
+ [164] = {.lex_state = 81, .external_lex_state = 4},
+ [165] = {.lex_state = 8, .external_lex_state = 5},
+ [166] = {.lex_state = 60, .external_lex_state = 5},
+ [167] = {.lex_state = 61, .external_lex_state = 6},
+ [168] = {.lex_state = 60, .external_lex_state = 5},
+ [169] = {.lex_state = 60, .external_lex_state = 5},
+ [170] = {.lex_state = 193, .external_lex_state = 5},
+ [171] = {.lex_state = 80, .external_lex_state = 2},
+ [172] = {.lex_state = 198, .external_lex_state = 2},
+ [173] = {.lex_state = 80, .external_lex_state = 2},
[174] = {.lex_state = 63, .external_lex_state = 6},
- [175] = {.lex_state = 63, .external_lex_state = 6},
- [176] = {.lex_state = 193, .external_lex_state = 4},
- [177] = {.lex_state = 64, .external_lex_state = 4},
- [178] = {.lex_state = 63, .external_lex_state = 6},
- [179] = {.lex_state = 64, .external_lex_state = 4},
- [180] = {.lex_state = 65, .external_lex_state = 6},
- [181] = {.lex_state = 193, .external_lex_state = 4},
- [182] = {.lex_state = 193, .external_lex_state = 4},
- [183] = {.lex_state = 193, .external_lex_state = 4},
- [184] = {.lex_state = 66, .external_lex_state = 6},
- [185] = {.lex_state = 67, .external_lex_state = 4},
- [186] = {.lex_state = 66, .external_lex_state = 6},
- [187] = {.lex_state = 82, .external_lex_state = 5},
- [188] = {.lex_state = 80, .external_lex_state = 2},
- [189] = {.lex_state = 64, .external_lex_state = 6},
- [190] = {.lex_state = 193, .external_lex_state = 4},
- [191] = {.lex_state = 8, .external_lex_state = 6},
- [192] = {.lex_state = 66, .external_lex_state = 6},
- [193] = {.lex_state = 66, .external_lex_state = 6},
- [194] = {.lex_state = 198, .external_lex_state = 5},
+ [175] = {.lex_state = 80, .external_lex_state = 2},
+ [176] = {.lex_state = 198, .external_lex_state = 4},
+ [177] = {.lex_state = 82, .external_lex_state = 4},
+ [178] = {.lex_state = 193, .external_lex_state = 5},
+ [179] = {.lex_state = 63, .external_lex_state = 6},
+ [180] = {.lex_state = 63, .external_lex_state = 6},
+ [181] = {.lex_state = 63, .external_lex_state = 6},
+ [182] = {.lex_state = 198, .external_lex_state = 4},
+ [183] = {.lex_state = 198, .external_lex_state = 4},
+ [184] = {.lex_state = 193, .external_lex_state = 5},
+ [185] = {.lex_state = 193, .external_lex_state = 5},
+ [186] = {.lex_state = 63, .external_lex_state = 6},
+ [187] = {.lex_state = 198, .external_lex_state = 2},
+ [188] = {.lex_state = 193, .external_lex_state = 5},
+ [189] = {.lex_state = 80, .external_lex_state = 2},
+ [190] = {.lex_state = 198, .external_lex_state = 4},
+ [191] = {.lex_state = 193, .external_lex_state = 5},
+ [192] = {.lex_state = 64, .external_lex_state = 5},
+ [193] = {.lex_state = 83, .external_lex_state = 7},
+ [194] = {.lex_state = 198, .external_lex_state = 2},
[195] = {.lex_state = 198, .external_lex_state = 2},
- [196] = {.lex_state = 198, .external_lex_state = 5},
- [197] = {.lex_state = 198, .external_lex_state = 5},
- [198] = {.lex_state = 80, .external_lex_state = 2},
- [199] = {.lex_state = 80, .external_lex_state = 2},
- [200] = {.lex_state = 8, .external_lex_state = 6},
- [201] = {.lex_state = 194, .external_lex_state = 6},
- [202] = {.lex_state = 80, .external_lex_state = 2},
- [203] = {.lex_state = 193, .external_lex_state = 4},
- [204] = {.lex_state = 198, .external_lex_state = 2},
- [205] = {.lex_state = 66, .external_lex_state = 6},
- [206] = {.lex_state = 198, .external_lex_state = 2},
- [207] = {.lex_state = 8, .external_lex_state = 6},
- [208] = {.lex_state = 198, .external_lex_state = 2},
- [209] = {.lex_state = 198, .external_lex_state = 5},
- [210] = {.lex_state = 198, .external_lex_state = 5},
- [211] = {.lex_state = 67, .external_lex_state = 4},
- [212] = {.lex_state = 194, .external_lex_state = 6},
- [213] = {.lex_state = 83, .external_lex_state = 7},
- [214] = {.lex_state = 195, .external_lex_state = 6},
- [215] = {.lex_state = 198, .external_lex_state = 5},
- [216] = {.lex_state = 195, .external_lex_state = 6},
- [217] = {.lex_state = 196, .external_lex_state = 4},
- [218] = {.lex_state = 198, .external_lex_state = 5},
+ [196] = {.lex_state = 198, .external_lex_state = 4},
+ [197] = {.lex_state = 64, .external_lex_state = 5},
+ [198] = {.lex_state = 65, .external_lex_state = 6},
+ [199] = {.lex_state = 66, .external_lex_state = 6},
+ [200] = {.lex_state = 66, .external_lex_state = 6},
+ [201] = {.lex_state = 8, .external_lex_state = 6},
+ [202] = {.lex_state = 193, .external_lex_state = 5},
+ [203] = {.lex_state = 81, .external_lex_state = 2},
+ [204] = {.lex_state = 64, .external_lex_state = 6},
+ [205] = {.lex_state = 8, .external_lex_state = 6},
+ [206] = {.lex_state = 194, .external_lex_state = 6},
+ [207] = {.lex_state = 68, .external_lex_state = 5},
+ [208] = {.lex_state = 198, .external_lex_state = 4},
+ [209] = {.lex_state = 193, .external_lex_state = 5},
+ [210] = {.lex_state = 66, .external_lex_state = 6},
+ [211] = {.lex_state = 194, .external_lex_state = 6},
+ [212] = {.lex_state = 198, .external_lex_state = 4},
+ [213] = {.lex_state = 8, .external_lex_state = 6},
+ [214] = {.lex_state = 198, .external_lex_state = 4},
+ [215] = {.lex_state = 66, .external_lex_state = 6},
+ [216] = {.lex_state = 66, .external_lex_state = 6},
+ [217] = {.lex_state = 68, .external_lex_state = 5},
+ [218] = {.lex_state = 81, .external_lex_state = 2},
[219] = {.lex_state = 195, .external_lex_state = 6},
[220] = {.lex_state = 60, .external_lex_state = 6},
- [221] = {.lex_state = 198, .external_lex_state = 5},
- [222] = {.lex_state = 196, .external_lex_state = 4},
- [223] = {.lex_state = 67, .external_lex_state = 6},
+ [221] = {.lex_state = 60, .external_lex_state = 6},
+ [222] = {.lex_state = 60, .external_lex_state = 6},
+ [223] = {.lex_state = 195, .external_lex_state = 6},
[224] = {.lex_state = 195, .external_lex_state = 6},
- [225] = {.lex_state = 81, .external_lex_state = 2},
+ [225] = {.lex_state = 68, .external_lex_state = 6},
[226] = {.lex_state = 195, .external_lex_state = 6},
[227] = {.lex_state = 195, .external_lex_state = 6},
- [228] = {.lex_state = 60, .external_lex_state = 6},
- [229] = {.lex_state = 195, .external_lex_state = 6},
- [230] = {.lex_state = 60, .external_lex_state = 6},
- [231] = {.lex_state = 195, .external_lex_state = 6},
- [232] = {.lex_state = 195, .external_lex_state = 6},
+ [228] = {.lex_state = 195, .external_lex_state = 6},
+ [229] = {.lex_state = 196, .external_lex_state = 5},
+ [230] = {.lex_state = 196, .external_lex_state = 5},
+ [231] = {.lex_state = 196, .external_lex_state = 5},
+ [232] = {.lex_state = 196, .external_lex_state = 5},
[233] = {.lex_state = 195, .external_lex_state = 6},
- [234] = {.lex_state = 196, .external_lex_state = 4},
- [235] = {.lex_state = 81, .external_lex_state = 2},
- [236] = {.lex_state = 196, .external_lex_state = 4},
- [237] = {.lex_state = 196, .external_lex_state = 6},
+ [234] = {.lex_state = 195, .external_lex_state = 6},
+ [235] = {.lex_state = 195, .external_lex_state = 6},
+ [236] = {.lex_state = 195, .external_lex_state = 6},
+ [237] = {.lex_state = 193, .external_lex_state = 6},
[238] = {.lex_state = 193, .external_lex_state = 6},
- [239] = {.lex_state = 195, .external_lex_state = 6},
- [240] = {.lex_state = 193, .external_lex_state = 6},
+ [239] = {.lex_state = 198, .external_lex_state = 2},
+ [240] = {.lex_state = 83, .external_lex_state = 3},
[241] = {.lex_state = 193, .external_lex_state = 6},
- [242] = {.lex_state = 193, .external_lex_state = 6},
- [243] = {.lex_state = 195, .external_lex_state = 6},
- [244] = {.lex_state = 193, .external_lex_state = 6},
- [245] = {.lex_state = 193, .external_lex_state = 6},
- [246] = {.lex_state = 195, .external_lex_state = 6},
- [247] = {.lex_state = 195, .external_lex_state = 6},
- [248] = {.lex_state = 196, .external_lex_state = 6},
- [249] = {.lex_state = 198, .external_lex_state = 2},
- [250] = {.lex_state = 193, .external_lex_state = 6},
+ [242] = {.lex_state = 195, .external_lex_state = 6},
+ [243] = {.lex_state = 196, .external_lex_state = 6},
+ [244] = {.lex_state = 196, .external_lex_state = 6},
+ [245] = {.lex_state = 198, .external_lex_state = 2},
+ [246] = {.lex_state = 198, .external_lex_state = 2},
+ [247] = {.lex_state = 193, .external_lex_state = 6},
+ [248] = {.lex_state = 83, .external_lex_state = 3},
+ [249] = {.lex_state = 195, .external_lex_state = 6},
+ [250] = {.lex_state = 195, .external_lex_state = 6},