Repository: tree-sitter-grammars/tree-sitter-lua (language: python)

Issue:
Highlighting lua5.4 <const> and <close> does not work and buga the rest highlighted
Without '\<const\>'
![image](https://user-images.githubusercontent.com/66432268/198904851-aabdddbe-4cfd-4c97-a703-9b6d8de40d06.png)
With '\<const\>'
![image](https://user-images.githubusercontent.com/66432268/198904867-aed68f5a-a907-43c8-8609-db3f13a6499b.png)
What do you have to do to fix this? because I use lua5.4 and I end up using these features
https://lwn.net/Articles/826134/


Discussion / hints:

Fix patch:
diff --git a/grammar.js b/grammar.js
index 9f22c97..ce6388f 100644
--- a/grammar.js
+++ b/grammar.js
@@ -249,19 +249,31 @@ module.exports = grammar({
       seq(
         'local',
         choice(
-          alias($._name_list, $.variable_list),
+          alias($._att_name_list, $.variable_list),
           alias($._local_variable_assignment, $.assignment_statement)
         )
       ),
     _local_variable_assignment: ($) =>
       seq(
-        alias($._name_list, $.variable_list),
+        alias($._att_name_list, $.variable_list),
         '=',
         alias($._variable_assignment_explist, $.expression_list)
       ),
     // namelist ::= Name {',' Name}
     _name_list: ($) => name_list($),
 
+    // attnamelist ::=  Name attrib {‘,’ Name attrib}
+    _att_name_list: ($) =>
+      list_seq(
+        seq(
+          field('name', $.identifier),
+          optional(field('attribute', alias($._attrib, $.attribute)))
+        ),
+        ','
+      ),
+    // attrib ::= [‘<’ Name ‘>’]
+    _attrib: ($) => seq('<', $.identifier, '>'),
+
     // explist ::= exp {',' exp}
     _expression_list: ($) => list_seq($.expression, ','),
 
diff --git a/src/grammar.json b/src/grammar.json
index 7bb7c9f..18009ef 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -896,7 +896,7 @@
               "type": "ALIAS",
               "content": {
                 "type": "SYMBOL",
-                "name": "_name_list"
+                "name": "_att_name_list"
               },
               "named": true,
               "value": "variable_list"
@@ -921,7 +921,7 @@
           "type": "ALIAS",
           "content": {
             "type": "SYMBOL",
-            "name": "_name_list"
+            "name": "_att_name_list"
           },
           "named": true,
           "value": "variable_list"
@@ -974,6 +974,108 @@
         }
       ]
     },
+    "_att_name_list": {
+      "type": "SEQ",
+      "members": [
+        {
+          "type": "SEQ",
+          "members": [
+            {
+              "type": "FIELD",
+              "name": "name",
+              "content": {
+                "type": "SYMBOL",
+                "name": "identifier"
+              }
+            },
+            {
+              "type": "CHOICE",
+              "members": [
+                {
+                  "type": "FIELD",
+                  "name": "attribute",
+                  "content": {
+                    "type": "ALIAS",
+                    "content": {
+                      "type": "SYMBOL",
+                      "name": "_attrib"
+                    },
+                    "named": true,
+                    "value": "attribute"
+                  }
+                },
+                {
+                  "type": "BLANK"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "type": "REPEAT",
+          "content": {
+            "type": "SEQ",
+            "members": [
+              {
+                "type": "STRING",
+                "value": ","
+              },
+              {
+                "type": "SEQ",
+                "members": [
+                  {
+                    "type": "FIELD",
+                    "name": "name",
+                    "content": {
+                      "type": "SYMBOL",
+                      "name": "identifier"
+                    }
+                  },
+                  {
+                    "type": "CHOICE",
+                    "members": [
+                      {
+                        "type": "FIELD",
+                        "name": "attribute",
+                        "content": {
+                          "type": "ALIAS",
+                          "content": {
+                            "type": "SYMBOL",
+                            "name": "_attrib"
+                          },
+                          "named": true,
+                          "value": "attribute"
+                        }
+                      },
+                      {
+                        "type": "BLANK"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        }
+      ]
+    },
+    "_attrib": {
+      "type": "SEQ",
+      "members": [
+        {
+          "type": "STRING",
+          "value": "<"
+        },
+        {
+          "type": "SYMBOL",
+          "name": "identifier"
+        },
+        {
+          "type": "STRING",
+          "value": ">"
+        }
+      ]
+    },
     "_expression_list": {
       "type": "SEQ",
       "members": [
diff --git a/src/node-types.json b/src/node-types.json
index 4289f71..4aeba16 100644
--- a/src/node-types.json
+++ b/src/node-types.json
@@ -177,6 +177,21 @@
       ]
     }
   },
+  {
+    "type": "attribute",
+    "named": true,
+    "fields": {},
+    "children": {
+      "multiple": false,
+      "required": true,
+      "types": [
+        {
+          "type": "identifier",
+          "named": true
+        }
+      ]
+    }
+  },
   {
     "type": "binary_expression",
     "named": true,
@@ -947,6 +962,16 @@
     "type": "variable_list",
     "named": true,
     "fields": {
+      "attribute": {
+        "multiple": true,
+        "required": false,
+        "types": [
+          {
+            "type": "attribute",
+            "named": true
+          }
+        ]
+      },
       "name": {
         "multiple": true,
         "required": true,
diff --git a/src/parser.c b/src/parser.c
index 2b09297..c6711f5 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -6,15 +6,15 @@
 #endif
 
 #define LANGUAGE_VERSION 13
-#define STATE_COUNT 235
+#define STATE_COUNT 245
 #define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 125
+#define SYMBOL_COUNT 128
 #define ALIAS_COUNT 0
 #define TOKEN_COUNT 67
 #define EXTERNAL_TOKEN_COUNT 6
-#define FIELD_COUNT 20
+#define FIELD_COUNT 21
 #define MAX_ALIAS_SEQUENCE_LENGTH 7
-#define PRODUCTION_ID_COUNT 50
+#define PRODUCTION_ID_COUNT 57
 
 enum {
   sym_identifier = 1,
@@ -41,25 +41,25 @@ enum {
   anon_sym_local = 22,
   anon_sym_DOT = 23,
   anon_sym_COLON = 24,
-  sym_nil = 25,
-  sym_false = 26,
-  sym_true = 27,
-  sym_number = 28,
-  sym_vararg_expression = 29,
-  anon_sym_LPAREN = 30,
-  anon_sym_RPAREN = 31,
-  anon_sym_LBRACK = 32,
-  anon_sym_RBRACK = 33,
-  anon_sym_LBRACE = 34,
-  anon_sym_RBRACE = 35,
-  anon_sym_or = 36,
-  anon_sym_and = 37,
-  anon_sym_LT = 38,
-  anon_sym_LT_EQ = 39,
-  anon_sym_EQ_EQ = 40,
-  anon_sym_TILDE_EQ = 41,
-  anon_sym_GT_EQ = 42,
-  anon_sym_GT = 43,
+  anon_sym_LT = 25,
+  anon_sym_GT = 26,
+  sym_nil = 27,
+  sym_false = 28,
+  sym_true = 29,
+  sym_number = 30,
+  sym_vararg_expression = 31,
+  anon_sym_LPAREN = 32,
+  anon_sym_RPAREN = 33,
+  anon_sym_LBRACK = 34,
+  anon_sym_RBRACK = 35,
+  anon_sym_LBRACE = 36,
+  anon_sym_RBRACE = 37,
+  anon_sym_or = 38,
+  anon_sym_and = 39,
+  anon_sym_LT_EQ = 40,
+  anon_sym_EQ_EQ = 41,
+  anon_sym_TILDE_EQ = 42,
+  anon_sym_GT_EQ = 43,
   anon_sym_PIPE = 44,
   anon_sym_TILDE = 45,
   anon_sym_AMP = 46,
@@ -112,35 +112,38 @@ enum {
   sym_variable_declaration = 93,
   sym__local_variable_assignment = 94,
   sym__name_list = 95,
-  sym__expression_list = 96,
-  sym_expression = 97,
-  sym_string = 98,
-  sym_function_definition = 99,
-  sym__function_body = 100,
-  sym_parameters = 101,
-  sym__parameter_list = 102,
-  sym__prefix_expression = 103,
-  sym_variable = 104,
-  sym_bracket_index_expression = 105,
-  sym_dot_index_expression = 106,
-  sym_function_call = 107,
-  sym_method_index_expression = 108,
-  sym_arguments = 109,
-  sym_parenthesized_expression = 110,
-  sym_table_constructor = 111,
-  sym__field_list = 112,
-  sym__field_sep = 113,
-  sym_field = 114,
-  sym_binary_expression = 115,
-  sym_unary_expression = 116,
-  sym_comment = 117,
-  aux_sym_chunk_repeat1 = 118,
-  aux_sym__variable_assignment_varlist_repeat1 = 119,
-  aux_sym__variable_assignment_explist_repeat1 = 120,
-  aux_sym_if_statement_repeat1 = 121,
-  aux_sym__name_list_repeat1 = 122,
-  aux_sym__expression_list_repeat1 = 123,
-  aux_sym__field_list_repeat1 = 124,
+  sym__att_name_list = 96,
+  sym__attrib = 97,
+  sym__expression_list = 98,
+  sym_expression = 99,
+  sym_string = 100,
+  sym_function_definition = 101,
+  sym__function_body = 102,
+  sym_parameters = 103,
+  sym__parameter_list = 104,
+  sym__prefix_expression = 105,
+  sym_variable = 106,
+  sym_bracket_index_expression = 107,
+  sym_dot_index_expression = 108,
+  sym_function_call = 109,
+  sym_method_index_expression = 110,
+  sym_arguments = 111,
+  sym_parenthesized_expression = 112,
+  sym_table_constructor = 113,
+  sym__field_list = 114,
+  sym__field_sep = 115,
+  sym_field = 116,
+  sym_binary_expression = 117,
+  sym_unary_expression = 118,
+  sym_comment = 119,
+  aux_sym_chunk_repeat1 = 120,
+  aux_sym__variable_assignment_varlist_repeat1 = 121,
+  aux_sym__variable_assignment_explist_repeat1 = 122,
+  aux_sym_if_statement_repeat1 = 123,
+  aux_sym__name_list_repeat1 = 124,
+  aux_sym__att_name_list_repeat1 = 125,
+  aux_sym__expression_list_repeat1 = 126,
+  aux_sym__field_list_repeat1 = 127,
 };
 
 static const char * const ts_symbol_names[] = {
@@ -169,6 +172,8 @@ static const char * const ts_symbol_names[] = {
   [anon_sym_local] = "local",
   [anon_sym_DOT] = ".",
   [anon_sym_COLON] = ":",
+  [anon_sym_LT] = "<",
+  [anon_sym_GT] = ">",
   [sym_nil] = "nil",
   [sym_false] = "false",
   [sym_true] = "true",
@@ -182,12 +187,10 @@ static const char * const ts_symbol_names[] = {
   [anon_sym_RBRACE] = "}",
   [anon_sym_or] = "or",
   [anon_sym_and] = "and",
-  [anon_sym_LT] = "<",
   [anon_sym_LT_EQ] = "<=",
   [anon_sym_EQ_EQ] = "==",
   [anon_sym_TILDE_EQ] = "~=",
   [anon_sym_GT_EQ] = ">=",
-  [anon_sym_GT] = ">",
   [anon_sym_PIPE] = "|",
   [anon_sym_TILDE] = "~",
   [anon_sym_AMP] = "&",
@@ -240,6 +243,8 @@ static const char * const ts_symbol_names[] = {
   [sym_variable_declaration] = "variable_declaration",
   [sym__local_variable_assignment] = "assignment_statement",
   [sym__name_list] = "variable_list",
+  [sym__att_name_list] = "variable_list",
+  [sym__attrib] = "attribute",
   [sym__expression_list] = "expression_list",
   [sym_expression] = "expression",
   [sym_string] = "string",
@@ -267,6 +272,7 @@ static const char * const ts_symbol_names[] = {
   [aux_sym__variable_assignment_explist_repeat1] = "_variable_assignment_explist_repeat1",
   [aux_sym_if_statement_repeat1] = "if_statement_repeat1",
   [aux_sym__name_list_repeat1] = "_name_list_repeat1",
+  [aux_sym__att_name_list_repeat1] = "_att_name_list_repeat1",
   [aux_sym__expression_list_repeat1] = "_expression_list_repeat1",
   [aux_sym__field_list_repeat1] = "_field_list_repeat1",
 };
@@ -297,6 +303,8 @@ static const TSSymbol ts_symbol_map[] = {
   [anon_sym_local] = anon_sym_local,
   [anon_sym_DOT] = anon_sym_DOT,
   [anon_sym_COLON] = anon_sym_COLON,
+  [anon_sym_LT] = anon_sym_LT,
+  [anon_sym_GT] = anon_sym_GT,
   [sym_nil] = sym_nil,
   [sym_false] = sym_false,
   [sym_true] = sym_true,
@@ -310,12 +318,10 @@ static const TSSymbol ts_symbol_map[] = {
   [anon_sym_RBRACE] = anon_sym_RBRACE,
   [anon_sym_or] = anon_sym_or,
   [anon_sym_and] = anon_sym_and,
-  [anon_sym_LT] = anon_sym_LT,
   [anon_sym_LT_EQ] = anon_sym_LT_EQ,
   [anon_sym_EQ_EQ] = anon_sym_EQ_EQ,
   [anon_sym_TILDE_EQ] = anon_sym_TILDE_EQ,
   [anon_sym_GT_EQ] = anon_sym_GT_EQ,
-  [anon_sym_GT] = anon_sym_GT,
   [anon_sym_PIPE] = anon_sym_PIPE,
   [anon_sym_TILDE] = anon_sym_TILDE,
   [anon_sym_AMP] = anon_sym_AMP,
@@ -368,6 +374,8 @@ static const TSSymbol ts_symbol_map[] = {
   [sym_variable_declaration] = sym_variable_declaration,
   [sym__local_variable_assignment] = sym_assignment_statement,
   [sym__name_list] = sym__variable_assignment_varlist,
+  [sym__att_name_list] = sym__variable_assignment_varlist,
+  [sym__attrib] = sym__attrib,
   [sym__expression_list] = sym__variable_assignment_explist,
   [sym_expression] = sym_expression,
   [sym_string] = sym_string,
@@ -395,6 +403,7 @@ static const TSSymbol ts_symbol_map[] = {
   [aux_sym__variable_assignment_explist_repeat1] = aux_sym__variable_assignment_explist_repeat1,
   [aux_sym_if_statement_repeat1] = aux_sym_if_statement_repeat1,
   [aux_sym__name_list_repeat1] = aux_sym__name_list_repeat1,
+  [aux_sym__att_name_list_repeat1] = aux_sym__att_name_list_repeat1,
   [aux_sym__expression_list_repeat1] = aux_sym__expression_list_repeat1,
   [aux_sym__field_list_repeat1] = aux_sym__field_list_repeat1,
 };
@@ -500,6 +509,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = false,
   },
+  [anon_sym_LT] = {
+    .visible = true,
+    .named = false,
+  },
+  [anon_sym_GT] = {
+    .visible = true,
+    .named = false,
+  },
   [sym_nil] = {
     .visible = true,
     .named = true,
@@ -552,10 +569,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = false,
   },
-  [anon_sym_LT] = {
-    .visible = true,
-    .named = false,
-  },
   [anon_sym_LT_EQ] = {
     .visible = true,
     .named = false,
@@ -572,10 +585,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = false,
   },
-  [anon_sym_GT] = {
-    .visible = true,
-    .named = false,
-  },
   [anon_sym_PIPE] = {
     .visible = true,
     .named = false,
@@ -786,6 +795,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = true,
   },
+  [sym__att_name_list] = {
+    .visible = true,
+    .named = true,
+  },
+  [sym__attrib] = {
+    .visible = true,
+    .named = true,
+  },
   [sym__expression_list] = {
     .visible = true,
     .named = true,
@@ -896,6 +913,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = false,
     .named = false,
   },
+  [aux_sym__att_name_list_repeat1] = {
+    .visible = false,
+    .named = false,
+  },
   [aux_sym__expression_list_repeat1] = {
     .visible = false,
     .named = false,
@@ -909,30 +930,32 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
 enum {
   field_alternative = 1,
   field_arguments = 2,
-  field_body = 3,
-  field_clause = 4,
-  field_condition = 5,
-  field_consequence = 6,
-  field_content = 7,
-  field_end = 8,
-  field_field = 9,
-  field_left = 10,
-  field_local_declaration = 11,
-  field_method = 12,
-  field_name = 13,
-  field_operand = 14,
-  field_parameters = 15,
-  field_right = 16,
-  field_start = 17,
-  field_step = 18,
-  field_table = 19,
-  field_value = 20,
+  field_attribute = 3,
+  field_body = 4,
+  field_clause = 5,
+  field_condition = 6,
+  field_consequence = 7,
+  field_content = 8,
+  field_end = 9,
+  field_field = 10,
+  field_left = 11,
+  field_local_declaration = 12,
+  field_method = 13,
+  field_name = 14,
+  field_operand = 15,
+  field_parameters = 16,
+  field_right = 17,
+  field_start = 18,
+  field_step = 19,
+  field_table = 20,
+  field_value = 21,
 };
 
 static const char * const ts_field_names[] = {
   [0] = NULL,
   [field_alternative] = "alternative",
   [field_arguments] = "arguments",
+  [field_attribute] = "attribute",
   [field_body] = "body",
   [field_clause] = "clause",
   [field_condition] = "condition",
@@ -962,47 +985,54 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
   [6] = {.index = 9, .length = 2},
   [7] = {.index = 11, .length = 2},
   [8] = {.index = 13, .length = 2},
-  [9] = {.index = 15, .length = 1},
-  [10] = {.index = 16, .length = 2},
-  [11] = {.index = 18, .length = 2},
-  [12] = {.index = 20, .length = 3},
-  [13] = {.index = 23, .length = 2},
-  [14] = {.index = 25, .length = 1},
-  [15] = {.index = 26, .length = 1},
-  [16] = {.index = 27, .length = 1},
-  [17] = {.index = 28, .length = 1},
-  [18] = {.index = 29, .length = 3},
-  [19] = {.index = 32, .length = 2},
-  [20] = {.index = 34, .length = 2},
-  [21] = {.index = 36, .length = 2},
-  [22] = {.index = 38, .length = 1},
-  [23] = {.index = 39, .length = 2},
-  [24] = {.index = 41, .length = 1},
-  [25] = {.index = 42, .length = 2},
-  [26] = {.index = 44, .length = 1},
-  [27] = {.index = 45, .length = 2},
-  [28] = {.index = 47, .length = 1},
-  [29] = {.index = 48, .length = 1},
-  [30] = {.index = 49, .length = 1},
-  [31] = {.index = 50, .length = 3},
-  [32] = {.index = 53, .length = 2},
-  [33] = {.index = 55, .length = 2},
-  [34] = {.index = 57, .length = 2},
-  [35] = {.index = 59, .length = 2},
-  [36] = {.index = 61, .length = 2},
-  [37] = {.index = 63, .length = 2},
-  [38] = {.index = 65, .length = 2},
-  [39] = {.index = 67, .length = 2},
-  [40] = {.index = 69, .length = 2},
-  [41] = {.index = 71, .length = 1},
-  [42] = {.index = 72, .length = 2},
-  [43] = {.index = 74, .length = 3},
-  [44] = {.index = 77, .length = 3},
-  [45] = {.index = 80, .length = 3},
-  [46] = {.index = 83, .length = 3},
-  [47] = {.index = 86, .length = 2},
-  [48] = {.index = 88, .length = 4},
-  [49] = {.index = 92, .length = 4},
+  [9] = {.index = 15, .length = 2},
+  [10] = {.index = 17, .length = 2},
+  [11] = {.index = 19, .length = 2},
+  [12] = {.index = 21, .length = 3},
+  [13] = {.index = 24, .length = 2},
+  [14] = {.index = 26, .length = 1},
+  [15] = {.index = 27, .length = 1},
+  [16] = {.index = 28, .length = 1},
+  [17] = {.index = 29, .length = 1},
+  [18] = {.index = 30, .length = 3},
+  [19] = {.index = 33, .length = 2},
+  [20] = {.index = 35, .length = 3},
+  [21] = {.index = 38, .length = 2},
+  [22] = {.index = 40, .length = 2},
+  [23] = {.index = 42, .length = 2},
+  [24] = {.index = 44, .length = 1},
+  [25] = {.index = 45, .length = 2},
+  [26] = {.index = 47, .length = 1},
+  [27] = {.index = 48, .length = 2},
+  [28] = {.index = 50, .length = 1},
+  [29] = {.index = 51, .length = 2},
+  [30] = {.index = 53, .length = 1},
+  [31] = {.index = 54, .length = 1},
+  [32] = {.index = 55, .length = 1},
+  [33] = {.index = 56, .length = 3},
+  [34] = {.index = 59, .length = 4},
+  [35] = {.index = 63, .length = 4},
+  [36] = {.index = 67, .length = 3},
+  [37] = {.index = 70, .length = 2},
+  [38] = {.index = 72, .length = 1},
+  [39] = {.index = 73, .length = 2},
+  [40] = {.index = 75, .length = 2},
+  [41] = {.index = 77, .length = 2},
+  [42] = {.index = 79, .length = 2},
+  [43] = {.index = 81, .length = 2},
+  [44] = {.index = 83, .length = 2},
+  [45] = {.index = 85, .length = 2},
+  [46] = {.index = 87, .length = 2},
+  [47] = {.index = 89, .length = 2},
+  [48] = {.index = 91, .length = 1},
+  [49] = {.index = 92, .length = 2},
+  [50] = {.index = 94, .length = 3},
+  [51] = {.index = 97, .length = 3},
+  [52] = {.index = 100, .length = 3},
+  [53] = {.index = 103, .length = 3},
+  [54] = {.index = 106, .length = 2},
+  [55] = {.index = 108, .length = 4},
+  [56] = {.index = 112, .length = 4},
 };
 
 static const TSFieldMapEntry ts_field_map_entries[] = {
@@ -1030,123 +1060,150 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
     {field_method, 0, .inherited = true},
     {field_table, 0, .inherited = true},
   [15] =
+    {field_attribute, 1, .inherited = true},
     {field_name, 1, .inherited = true},
-  [16] =
+  [17] =
     {field_arguments, 1},
     {field_name, 0},
-  [18] =
+  [19] =
     {field_name, 0},
     {field_name, 1, .inherited = true},
-  [20] =
+  [21] =
     {field_content, 1},
     {field_end, 2},
     {field_start, 0},
-  [23] =
+  [24] =
     {field_body, 1, .inherited = true},
     {field_parameters, 1, .inherited = true},
-  [25] =
-    {field_value, 0},
   [26] =
-    {field_operand, 1},
+    {field_value, 0},
   [27] =
-    {field_body, 1},
+    {field_operand, 1},
   [28] =
-    {field_condition, 2},
+    {field_body, 1},
   [29] =
+    {field_condition, 2},
+  [30] =
     {field_body, 2, .inherited = true},
     {field_name, 1},
     {field_parameters, 2, .inherited = true},
-  [32] =
+  [33] =
+    {field_attribute, 1},
+    {field_name, 0},
+  [35] =
+    {field_attribute, 1, .inherited = true},
+    {field_name, 0},
+    {field_name, 1, .inherited = true},
+  [38] =
     {field_name, 0, .inherited = true},
     {field_value, 2, .inherited = true},
-  [34] =
+  [40] =
     {field_field, 2},
     {field_table, 0},
-  [36] =
+  [42] =
     {field_method, 2},
     {field_table, 0},
-  [38] =
+  [44] =
     {field_name, 1},
-  [39] =
+  [45] =
     {field_name, 0, .inherited = true},
     {field_name, 1, .inherited = true},
-  [41] =
+  [47] =
     {field_parameters, 0},
-  [42] =
+  [48] =
     {field_left, 0},
     {field_right, 2},
-  [44] =
+  [50] =
     {field_condition, 1},
-  [45] =
+  [51] =
     {field_body, 1},
     {field_condition, 3},
-  [47] =
+  [53] =
     {field_alternative, 0},
-  [48] =
+  [54] =
     {field_clause, 1},
-  [49] =
+  [55] =
     {field_name, 0, .inherited = true},
-  [50] =
+  [56] =
     {field_body, 3, .inherited = true},
     {field_name, 2},
     {field_parameters, 3, .inherited = true},
-  [53] =
+  [59] =
+    {field_attribute, 1},
+    {field_attribute, 2, .inherited = true},
+    {field_name, 0},
+    {field_name, 2, .inherited = true},
+  [63] =
+    {field_attribute, 0, .inherited = true},
+    {field_attribute, 1, .inherited = true},
+    {field_name, 0, .inherited = true},
+    {field_name, 1, .inherited = true},
+  [67] =
+    {field_attribute, 0, .inherited = true},
+    {field_name, 0, .inherited = true},
+    {field_value, 2, .inherited = true},
+  [70] =
     {field_value, 0},
     {field_value, 1, .inherited = true},
-  [55] =
+  [72] =
+    {field_name, 1, .inherited = true},
+  [73] =
     {field_body, 1},
     {field_parameters, 0},
-  [57] =
+  [75] =
     {field_name, 0},
     {field_value, 2},
-  [59] =
+  [77] =
     {field_body, 3},
     {field_condition, 1},
-  [61] =
+  [79] =
     {field_condition, 1},
     {field_consequence, 3},
-  [63] =
+  [81] =
     {field_alternative, 3},
     {field_condition, 1},
-  [65] =
+  [83] =
     {field_alternative, 3, .inherited = true},
     {field_condition, 1},
-  [67] =
+  [85] =
     {field_alternative, 0, .inherited = true},
     {field_alternative, 1, .inherited = true},
-  [69] =
+  [87] =
     {field_body, 3},
     {field_clause, 1},
-  [71] =
+  [89] =
+    {field_attribute, 2},
+    {field_name, 1},
+  [91] =
     {field_value, 1},
-  [72] =
+  [92] =
     {field_value, 0, .inherited = true},
     {field_value, 1, .inherited = true},
-  [74] =
+  [94] =
     {field_alternative, 4},
     {field_condition, 1},
     {field_consequence, 3},
-  [77] =
+  [97] =
     {field_alternative, 4, .inherited = true},
     {field_condition, 1},
     {field_consequence, 3},
-  [80] =
+  [100] =
     {field_alternative, 3, .inherited = true},
     {field_alternative, 4},
     {field_condition, 1},
-  [83] =
+  [103] =
     {field_end, 4},
     {field_name, 0},
     {field_start, 2},
-  [86] =
+  [106] =
     {field_name, 1},
     {field_value, 4},
-  [88] =
+  [108] =
     {field_alternative, 4, .inherited = true},
     {field_alternative, 5},
     {field_condition, 1},
     {field_consequence, 3},
-  [92] =
+  [112] =
     {field_end, 4},
     {field_name, 0},
     {field_start, 2},
@@ -1161,126 +1218,375 @@ static const uint16_t ts_non_terminal_alias_map[] = {
   0,
 };
 
+static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
+  [0] = 0,
+  [1] = 1,
+  [2] = 2,
+  [3] = 3,
+  [4] = 4,
+  [5] = 5,
+  [6] = 6,
+  [7] = 7,
+  [8] = 8,
+  [9] = 9,
+  [10] = 10,
+  [11] = 11,
+  [12] = 12,
+  [13] = 13,
+  [14] = 14,
+  [15] = 15,
+  [16] = 16,
+  [17] = 17,
+  [18] = 18,
+  [19] = 19,
+  [20] = 20,
+  [21] = 21,
+  [22] = 22,
+  [23] = 23,
+  [24] = 24,
+  [25] = 25,
+  [26] = 26,
+  [27] = 27,
+  [28] = 28,
+  [29] = 29,
+  [30] = 30,
+  [31] = 6,
+  [32] = 32,
+  [33] = 15,
+  [34] = 9,
+  [35] = 10,
+  [36] = 36,
+  [37] = 37,
+  [38] = 38,
+  [39] = 39,
+  [40] = 40,
+  [41] = 41,
+  [42] = 42,
+  [43] = 43,
+  [44] = 44,
+  [45] = 45,
+  [46] = 46,
+  [47] = 47,
+  [48] = 48,
+  [49] = 49,
+  [50] = 50,
+  [51] = 51,
+  [52] = 52,
+  [53] = 53,
+  [54] = 54,
+  [55] = 54,
+  [56] = 56,
+  [57] = 57,
+  [58] = 58,
+  [59] = 59,
+  [60] = 53,
+  [61] = 61,
+  [62] = 62,
+  [63] = 63,
+  [64] = 64,
+  [65] = 65,
+  [66] = 66,
+  [67] = 67,
+  [68] = 68,
+  [69] = 69,
+  [70] = 70,
+  [71] = 71,
+  [72] = 72,
+  [73] = 73,
+  [74] = 74,
+  [75] = 75,
+  [76] = 76,
+  [77] = 77,
+  [78] = 78,
+  [79] = 79,
+  [80] = 80,
+  [81] = 81,
+  [82] = 82,
+  [83] = 83,
+  [84] = 84,
+  [85] = 85,
+  [86] = 86,
+  [87] = 87,
+  [88] = 88,
+  [89] = 89,
+  [90] = 90,
+  [91] = 91,
+  [92] = 92,
+  [93] = 93,
+  [94] = 94,
+  [95] = 95,
+  [96] = 96,
+  [97] = 97,
+  [98] = 98,
+  [99] = 99,
+  [100] = 100,
+  [101] = 101,
+  [102] = 102,
+  [103] = 103,
+  [104] = 104,
+  [105] = 105,
+  [106] = 106,
+  [107] = 107,
+  [108] = 108,
+  [109] = 109,
+  [110] = 110,
+  [111] = 111,
+  [112] = 112,
+  [113] = 113,
+  [114] = 114,
+  [115] = 115,
+  [116] = 116,
+  [117] = 117,
+  [118] = 118,
+  [119] = 119,
+  [120] = 120,
+  [121] = 121,
+  [122] = 122,
+  [123] = 123,
+  [124] = 124,
+  [125] = 125,
+  [126] = 126,
+  [127] = 127,
+  [128] = 128,
+  [129] = 129,
+  [130] = 130,
+  [131] = 131,
+  [132] = 132,
+  [133] = 133,
+  [134] = 134,
+  [135] = 135,
+  [136] = 136,
+  [137] = 137,
+  [138] = 138,
+  [139] = 139,
+  [140] = 140,
+  [141] = 141,
+  [142] = 142,
+  [143] = 143,
+  [144] = 144,
+  [145] = 145,
+  [146] = 146,
+  [147] = 147,
+  [148] = 148,
+  [149] = 149,
+  [150] = 150,
+  [151] = 151,
+  [152] = 152,
+  [153] = 153,
+  [154] = 154,
+  [155] = 155,
+  [156] = 156,
+  [157] = 157,
+  [158] = 158,
+  [159] = 159,
+  [160] = 160,
+  [161] = 161,
+  [162] = 162,
+  [163] = 163,
+  [164] = 164,
+  [165] = 165,
+  [166] = 166,
+  [167] = 167,
+  [168] = 168,
+  [169] = 169,
+  [170] = 170,
+  [171] = 171,
+  [172] = 172,
+  [173] = 173,
+  [174] = 174,
+  [175] = 175,
+  [176] = 176,
+  [177] = 177,
+  [178] = 178,
+  [179] = 179,
+  [180] = 180,
+  [181] = 181,
+  [182] = 182,
+  [183] = 183,
+  [184] = 184,
+  [185] = 185,
+  [186] = 186,
+  [187] = 187,
+  [188] = 188,
+  [189] = 189,
+  [190] = 190,
+  [191] = 191,
+  [192] = 192,
+  [193] = 193,
+  [194] = 194,
+  [195] = 195,
+  [196] = 194,
+  [197] = 197,
+  [198] = 198,
+  [199] = 199,
+  [200] = 200,
+  [201] = 201,
+  [202] = 202,
+  [203] = 203,
+  [204] = 204,
+  [205] = 205,
+  [206] = 206,
+  [207] = 207,
+  [208] = 208,
+  [209] = 209,
+  [210] = 206,
+  [211] = 211,
+  [212] = 212,
+  [213] = 213,
+  [214] = 214,
+  [215] = 215,
+  [216] = 216,
+  [217] = 217,
+  [218] = 218,
+  [219] = 219,
+  [220] = 220,
+  [221] = 208,
+  [222] = 222,
+  [223] = 223,
+  [224] = 224,
+  [225] = 225,
+  [226] = 226,
+  [227] = 227,
+  [228] = 228,
+  [229] = 229,
+  [230] = 230,
+  [231] = 231,
+  [232] = 232,
+  [233] = 233,
+  [234] = 234,
+  [235] = 235,
+  [236] = 236,
+  [237] = 237,
+  [238] = 238,
+  [239] = 239,
+  [240] = 240,
+  [241] = 241,
+  [242] = 242,
+  [243] = 243,
+  [244] = 244,
+};
+
 static bool ts_lex(TSLexer *lexer, TSStateId state) {
   START_LEXER();
   eof = lexer->eof(lexer);
   switch (state) {
     case 0:
       if (eof) ADVANCE(10);
-      if (lookahead == '#') ADVANCE(52);
-      if (lookahead == '%') ADVANCE(49);
-      if (lookahead == '&') ADVANCE(41);
-      if (lookahead == '(') ADVANCE(26);
-      if (lookahead == ')') ADVANCE(27);
-      if (lookahead == '*') ADVANCE(46);
-      if (lookahead == '+') ADVANCE(44);
+      if (lookahead == '#') ADVANCE(53);
+      if (lookahead == '%') ADVANCE(50);
+      if (lookahead == '&') ADVANCE(42);
+      if (lookahead == '(') ADVANCE(29);
+      if (lookahead == ')') ADVANCE(30);
+      if (lookahead == '*') ADVANCE(47);
+      if (lookahead == '+') ADVANCE(45);
       if (lookahead == ',') ADVANCE(14);
-      if (lookahead == '-') ADVANCE(45);
+      if (lookahead == '-') ADVANCE(46);
       if (lookahead == '.') ADVANCE(17);
-      if (lookahead == '/') ADVANCE(47);
-      if (lookahead == '0') ADVANCE(19);
+      if (lookahead == '/') ADVANCE(48);
+      if (lookahead == '0') ADVANCE(22);
       if (lookahead == ':') ADVANCE(18);
       if (lookahead == ';') ADVANCE(12);
-      if (lookahead == '<') ADVANCE(32);
+      if (lookahead == '<') ADVANCE(19);
       if (lookahead == '=') ADVANCE(13);
-      if (lookahead == '>') ADVANCE(37);
-      if (lookahead == '[') ADVANCE(28);
-      if (lookahead == ']') ADVANCE(29);
-      if (lookahead == '^') ADVANCE(51);
-      if (lookahead == '{') ADVANCE(30);
-      if (lookahead == '|') ADVANCE(38);
-      if (lookahead == '}') ADVANCE(31);
-      if (lookahead == '~') ADVANCE(40);
+      if (lookahead == '>') ADVANCE(21);
+      if (lookahead == '[') ADVANCE(31);
+      if (lookahead == ']') ADVANCE(32);
+      if (lookahead == '^') ADVANCE(52);
+      if (lookahead == '{') ADVANCE(33);
+      if (lookahead == '|') ADVANCE(39);
+      if (lookahead == '}') ADVANCE(34);
+      if (lookahead == '~') ADVANCE(41);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(0)
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(20);
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(23);
       if (lookahead != 0 &&
           lookahead > 31 &&
           lookahead != '"' &&
           lookahead != '\'' &&
           lookahead != '\\' &&
-          (lookahead < 127 || 159 < lookahead)) ADVANCE(53);
+          (lookahead < 127 || 159 < lookahead)) ADVANCE(54);
       END_STATE();
     case 1:
       if (lookahead == '!') ADVANCE(11);
       END_STATE();
     case 2:
       if (lookahead == '.') ADVANCE(3);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(22);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25);
       END_STATE();
     case 3:
-      if (lookahead == '.') ADVANCE(25);
+      if (lookahead == '.') ADVANCE(28);
       END_STATE();
     case 4:
       if (lookahead == '+' ||
           lookahead == '-') ADVANCE(5);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27);
       END_STATE();
     case 5:
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27);
       END_STATE();
     case 6:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(21);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(24);
       END_STATE();
     case 7:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(23);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(26);
       END_STATE();
     case 8:
       if (eof) ADVANCE(10);
-      if (lookahead == '#') ADVANCE(52);
-      if (lookahead == '(') ADVANCE(26);
-      if (lookahead == ')') ADVANCE(27);
-      if (lookahead == '-') ADVANCE(45);
+      if (lookahead == '#') ADVANCE(53);
+      if (lookahead == '(') ADVANCE(29);
+      if (lookahead == ')') ADVANCE(30);
+      if (lookahead == '-') ADVANCE(46);
       if (lookahead == '.') ADVANCE(2);
-      if (lookahead == '0') ADVANCE(19);
+      if (lookahead == '0') ADVANCE(22);
       if (lookahead == ';') ADVANCE(12);
-      if (lookahead == '[') ADVANCE(28);
-      if (lookahead == '{') ADVANCE(30);
-      if (lookahead == '}') ADVANCE(31);
-      if (lookahead == '~') ADVANCE(39);
+      if (lookahead == '>') ADVANCE(20);
+      if (lookahead == '[') ADVANCE(31);
+      if (lookahead == '{') ADVANCE(33);
+      if (lookahead == '}') ADVANCE(34);
+      if (lookahead == '~') ADVANCE(40);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(8)
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(20);
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(23);
       if (lookahead != 0 &&
           lookahead > 31 &&
           lookahead != '"' &&
-          (lookahead < '%' || '>' < lookahead) &&
+          (lookahead < '%' || '=' < lookahead) &&
           (lookahead < '\\' || '^' < lookahead) &&
-          (lookahead < '|' || 159 < lookahead)) ADVANCE(53);
+          (lookahead < '|' || 159 < lookahead)) ADVANCE(54);
       END_STATE();
     case 9:
       if (eof) ADVANCE(10);
       if (lookahead == '#') ADVANCE(1);
-      if (lookahead == '%') ADVANCE(49);
-      if (lookahead == '&') ADVANCE(41);
-      if (lookahead == '(') ADVANCE(26);
-      if (lookahead == ')') ADVANCE(27);
-      if (lookahead == '*') ADVANCE(46);
-      if (lookahead == '+') ADVANCE(44);
+      if (lookahead == '%') ADVANCE(50);
+      if (lookahead == '&') ADVANCE(42);
+      if (lookahead == '(') ADVANCE(29);
+      if (lookahead == ')') ADVANCE(30);
+      if (lookahead == '*') ADVANCE(47);
+      if (lookahead == '+') ADVANCE(45);
       if (lookahead == ',') ADVANCE(14);
-      if (lookahead == '-') ADVANCE(45);
+      if (lookahead == '-') ADVANCE(46);
       if (lookahead == '.') ADVANCE(16);
-      if (lookahead == '/') ADVANCE(47);
+      if (lookahead == '/') ADVANCE(48);
       if (lookahead == ':') ADVANCE(18);
       if (lookahead == ';') ADVANCE(12);
-      if (lookahead == '<') ADVANCE(32);
+      if (lookahead == '<') ADVANCE(19);
       if (lookahead == '=') ADVANCE(13);
-      if (lookahead == '>') ADVANCE(37);
-      if (lookahead == '[') ADVANCE(28);
-      if (lookahead == ']') ADVANCE(29);
-      if (lookahead == '^') ADVANCE(51);
-      if (lookahead == '{') ADVANCE(30);
-      if (lookahead == '|') ADVANCE(38);
-      if (lookahead == '}') ADVANCE(31);
-      if (lookahead == '~') ADVANCE(40);
+      if (lookahead == '>') ADVANCE(21);
+      if (lookahead == '[') ADVANCE(31);
+      if (lookahead == ']') ADVANCE(32);
+      if (lookahead == '^') ADVANCE(52);
+      if (lookahead == '{') ADVANCE(33);
+      if (lookahead == '|') ADVANCE(39);
+      if (lookahead == '}') ADVANCE(34);
+      if (lookahead == '~') ADVANCE(41);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
@@ -1290,7 +1596,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead != '"' &&
           (lookahead < '\'' || '9' < lookahead) &&
           lookahead != '\\' &&
-          (lookahead < 127 || 159 < lookahead)) ADVANCE(53);
+          (lookahead < 127 || 159 < lookahead)) ADVANCE(54);
       END_STATE();
     case 10:
       ACCEPT_TOKEN(ts_builtin_sym_end);
@@ -1305,7 +1611,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 13:
       ACCEPT_TOKEN(anon_sym_EQ);
-      if (lookahead == '=') ADVANCE(34);
+      if (lookahead == '=') ADVANCE(36);
       END_STATE();
     case 14:
       ACCEPT_TOKEN(anon_sym_COMMA);
@@ -1315,152 +1621,155 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 16:
       ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(50);
+      if (lookahead == '.') ADVANCE(51);
       END_STATE();
     case 17:
       ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(50);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(22);
+      if (lookahead == '.') ADVANCE(51);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25);
       END_STATE();
     case 18:
       ACCEPT_TOKEN(anon_sym_COLON);
       if (lookahead == ':') ADVANCE(15);
       END_STATE();
     case 19:
+      ACCEPT_TOKEN(anon_sym_LT);
+      if (lookahead == '<') ADVANCE(43);
+      if (lookahead == '=') ADVANCE(35);
+      END_STATE();
+    case 20:
+      ACCEPT_TOKEN(anon_sym_GT);
+      END_STATE();
+    case 21:
+      ACCEPT_TOKEN(anon_sym_GT);
+      if (lookahead == '=') ADVANCE(38);
+      if (lookahead == '>') ADVANCE(44);
+      END_STATE();
+    case 22:
       ACCEPT_TOKEN(sym_number);
-      if (lookahead == '.') ADVANCE(22);
+      if (lookahead == '.') ADVANCE(25);
       if (lookahead == 'E' ||
           lookahead == 'e') ADVANCE(4);
       if (lookahead == 'X' ||
           lookahead == 'x') ADVANCE(6);
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(20);
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(23);
       END_STATE();
-    case 20:
+    case 23:
       ACCEPT_TOKEN(sym_number);
-      if (lookahead == '.') ADVANCE(22);
+      if (lookahead == '.') ADVANCE(25);
       if (lookahead == 'E' ||
           lookahead == 'e') ADVANCE(4);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(20);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(23);
       END_STATE();
-    case 21:
+    case 24:
       ACCEPT_TOKEN(sym_number);
       if (lookahead == '.') ADVANCE(7);
       if (lookahead == 'P' ||
           lookahead == 'p') ADVANCE(4);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(21);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(24);
       END_STATE();
-    case 22:
+    case 25:
       ACCEPT_TOKEN(sym_number);
       if (lookahead == 'E' ||
           lookahead == 'e') ADVANCE(4);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(22);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25);
       END_STATE();
-    case 23:
+    case 26:
       ACCEPT_TOKEN(sym_number);
       if (lookahead == 'P' ||
           lookahead == 'p') ADVANCE(4);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(23);
-      END_STATE();
-    case 24:
-      ACCEPT_TOKEN(sym_number);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24);
-      END_STATE();
-    case 25:
-      ACCEPT_TOKEN(sym_vararg_expression);
-      END_STATE();
-    case 26:
-      ACCEPT_TOKEN(anon_sym_LPAREN);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(26);
       END_STATE();
     case 27:
-      ACCEPT_TOKEN(anon_sym_RPAREN);
+      ACCEPT_TOKEN(sym_number);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27);
       END_STATE();
     case 28:
-      ACCEPT_TOKEN(anon_sym_LBRACK);
+      ACCEPT_TOKEN(sym_vararg_expression);
       END_STATE();
     case 29:
-      ACCEPT_TOKEN(anon_sym_RBRACK);
+      ACCEPT_TOKEN(anon_sym_LPAREN);
       END_STATE();
     case 30:
-      ACCEPT_TOKEN(anon_sym_LBRACE);
+      ACCEPT_TOKEN(anon_sym_RPAREN);
       END_STATE();
     case 31:
-      ACCEPT_TOKEN(anon_sym_RBRACE);
+      ACCEPT_TOKEN(anon_sym_LBRACK);
       END_STATE();
     case 32:
-      ACCEPT_TOKEN(anon_sym_LT);
-      if (lookahead == '<') ADVANCE(42);
-      if (lookahead == '=') ADVANCE(33);
+      ACCEPT_TOKEN(anon_sym_RBRACK);
       END_STATE();
     case 33:
-      ACCEPT_TOKEN(anon_sym_LT_EQ);
+      ACCEPT_TOKEN(anon_sym_LBRACE);
       END_STATE();
     case 34:
-      ACCEPT_TOKEN(anon_sym_EQ_EQ);
+      ACCEPT_TOKEN(anon_sym_RBRACE);
       END_STATE();
     case 35:
-      ACCEPT_TOKEN(anon_sym_TILDE_EQ);
+      ACCEPT_TOKEN(anon_sym_LT_EQ);
       END_STATE();
     case 36:
-      ACCEPT_TOKEN(anon_sym_GT_EQ);
+      ACCEPT_TOKEN(anon_sym_EQ_EQ);
       END_STATE();
     case 37:
-      ACCEPT_TOKEN(anon_sym_GT);
-      if (lookahead == '=') ADVANCE(36);
-      if (lookahead == '>') ADVANCE(43);
+      ACCEPT_TOKEN(anon_sym_TILDE_EQ);
       END_STATE();
     case 38:
-      ACCEPT_TOKEN(anon_sym_PIPE);
+      ACCEPT_TOKEN(anon_sym_GT_EQ);
       END_STATE();
     case 39:
-      ACCEPT_TOKEN(anon_sym_TILDE);
+      ACCEPT_TOKEN(anon_sym_PIPE);
       END_STATE();
     case 40:
       ACCEPT_TOKEN(anon_sym_TILDE);
-      if (lookahead == '=') ADVANCE(35);
       END_STATE();
     case 41:
-      ACCEPT_TOKEN(anon_sym_AMP);
+      ACCEPT_TOKEN(anon_sym_TILDE);
+      if (lookahead == '=') ADVANCE(37);
       END_STATE();
     case 42:
-      ACCEPT_TOKEN(anon_sym_LT_LT);
+      ACCEPT_TOKEN(anon_sym_AMP);
       END_STATE();
     case 43:
-      ACCEPT_TOKEN(anon_sym_GT_GT);
+      ACCEPT_TOKEN(anon_sym_LT_LT);
       END_STATE();
     case 44:
-      ACCEPT_TOKEN(anon_sym_PLUS);
+      ACCEPT_TOKEN(anon_sym_GT_GT);
       END_STATE();
     case 45:
-      ACCEPT_TOKEN(anon_sym_DASH);
-      if (lookahead == '-') ADVANCE(54);
+      ACCEPT_TOKEN(anon_sym_PLUS);
       END_STATE();
     case 46:
-      ACCEPT_TOKEN(anon_sym_STAR);
+      ACCEPT_TOKEN(anon_sym_DASH);
+      if (lookahead == '-') ADVANCE(55);
       END_STATE();
     case 47:
-      ACCEPT_TOKEN(anon_sym_SLASH);
-      if (lookahead == '/') ADVANCE(48);
+      ACCEPT_TOKEN(anon_sym_STAR);
       END_STATE();
     case 48:
-      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
+      ACCEPT_TOKEN(anon_sym_SLASH);
+      if (lookahead == '/') ADVANCE(49);
       END_STATE();
     case 49:
-      ACCEPT_TOKEN(anon_sym_PERCENT);
+      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
       END_STATE();
     case 50:
-      ACCEPT_TOKEN(anon_sym_DOT_DOT);
+      ACCEPT_TOKEN(anon_sym_PERCENT);
       END_STATE();
     case 51:
-      ACCEPT_TOKEN(anon_sym_CARET);
+      ACCEPT_TOKEN(anon_sym_DOT_DOT);
       END_STATE();
     case 52:
-      ACCEPT_TOKEN(anon_sym_POUND);
+      ACCEPT_TOKEN(anon_sym_CARET);
       END_STATE();
     case 53:
+      ACCEPT_TOKEN(anon_sym_POUND);
+      END_STATE();
+    case 54:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead != 0 &&
           lookahead > ' ' &&
@@ -1469,38 +1778,38 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           (lookahead < '%' || '/' < lookahead) &&
           (lookahead < ':' || '>' < lookahead) &&
           (lookahead < '[' || '^' < lookahead) &&
-          (lookahead < '{' || 159 < lookahead)) ADVANCE(53);
+          (lookahead < '{' || 159 < lookahead)) ADVANCE(54);
       END_STATE();
-    case 54:
+    case 55:
       ACCEPT_TOKEN(anon_sym_DASH_DASH);
       END_STATE();
-    case 55:
+    case 56:
       ACCEPT_TOKEN(anon_sym_DASH_DASH);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(59);
       END_STATE();
-    case 56:
+    case 57:
       ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '-') ADVANCE(57);
+      if (lookahead == '-') ADVANCE(58);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(56);
+          lookahead == ' ') ADVANCE(57);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(59);
       END_STATE();
-    case 57:
+    case 58:
       ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '-') ADVANCE(55);
+      if (lookahead == '-') ADVANCE(56);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(59);
       END_STATE();
-    case 58:
+    case 59:
       ACCEPT_TOKEN(aux_sym_comment_token1);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(59);
       END_STATE();
     default:
       return false;
@@ -1837,8 +2146,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [55] = {.lex_state = 8, .external_lex_state = 3},
   [56] = {.lex_state = 9, .external_lex_state = 3},
   [57] = {.lex_state = 0, .external_lex_state = 2},
-  [58] = {.lex_state = 8, .external_lex_state = 3},
-  [59] = {.lex_state = 0, .external_lex_state = 2},
+  [58] = {.lex_state = 0, .external_lex_state = 2},
+  [59] = {.lex_state = 8, .external_lex_state = 3},
   [60] = {.lex_state = 8, .external_lex_state = 3},
   [61] = {.lex_state = 8, .external_lex_state = 3},
   [62] = {.lex_state = 8, .external_lex_state = 3},
@@ -1874,11 +2183,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [92] = {.lex_state = 8, .external_lex_state = 3},
   [93] = {.lex_state = 8, .external_lex_state = 3},
   [94] = {.lex_state = 0, .external_lex_state = 2},
-  [95] = {.lex_state = 9, .external_lex_state = 3},
+  [95] = {.lex_state = 0, .external_lex_state = 2},
   [96] = {.lex_state = 0, .external_lex_state = 2},
   [97] = {.lex_state = 0, .external_lex_state = 2},
   [98] = {.lex_state = 0, .external_lex_state = 2},
-  [99] = {.lex_state = 0, .external_lex_state = 2},
+  [99] = {.lex_state = 9, .external_lex_state = 3},
   [100] = {.lex_state = 0, .external_lex_state = 2},
   [101] = {.lex_state = 0, .external_lex_state = 2},
   [102] = {.lex_state = 0, .external_lex_state = 2},
@@ -1922,23 +2231,23 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [140] = {.lex_state = 0, .external_lex_state = 2},
   [141] = {.lex_state = 0, .external_lex_state = 2},
   [142] = {.lex_state = 0, .external_lex_state = 2},
-  [143] = {.lex_state = 8, .external_lex_state = 3},
+  [143] = {.lex_state = 0, .external_lex_state = 2},
   [144] = {.lex_state = 0, .external_lex_state = 2},
   [145] = {.lex_state = 0, .external_lex_state = 2},
   [146] = {.lex_state = 0, .external_lex_state = 2},
-  [147] = {.lex_state = 0, .external_lex_state = 2},
-  [148] = {.lex_state = 9, .external_lex_state = 3},
+  [147] = {.lex_state = 8, .external_lex_state = 3},
+  [148] = {.lex_state = 0, .external_lex_state = 2},
   [149] = {.lex_state = 0, .external_lex_state = 2},
-  [150] = {.lex_state = 9, .external_lex_state = 3},
-  [151] = {.lex_state = 9, .external_lex_state = 3},
-  [152] = {.lex_state = 0, .external_lex_state = 3},
-  [153] = {.lex_state = 0, .external_lex_state = 2},
+  [150] = {.lex_state = 0, .external_lex_state = 2},
+  [151] = {.lex_state = 0, .external_lex_state = 2},
+  [152] = {.lex_state = 9, .external_lex_state = 3},
+  [153] = {.lex_state = 9, .external_lex_state = 3},
   [154] = {.lex_state = 0, .external_lex_state = 2},
   [155] = {.lex_state = 9, .external_lex_state = 3},
-  [156] = {.lex_state = 0, .external_lex_state = 2},
+  [156] = {.lex_state = 9, .external_lex_state = 3},
   [157] = {.lex_state = 0, .external_lex_state = 2},
   [158] = {.lex_state = 0, .external_lex_state = 2},
-  [159] = {.lex_state = 0, .external_lex_state = 2},
+  [159] = {.lex_state = 0, .external_lex_state = 3},
   [160] = {.lex_state = 0, .external_lex_state = 2},
   [161] = {.lex_state = 0, .external_lex_state = 2},
   [162] = {.lex_state = 0, .external_lex_state = 2},
@@ -1947,37 +2256,37 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [165] = {.lex_state = 0, .external_lex_state = 2},
   [166] = {.lex_state = 0, .external_lex_state = 2},
   [167] = {.lex_state = 0, .external_lex_state = 2},
-  [168] = {.lex_state = 8, .external_lex_state = 2},
+  [168] = {.lex_state = 0, .external_lex_state = 2},
   [169] = {.lex_state = 0, .external_lex_state = 2},
   [170] = {.lex_state = 0, .external_lex_state = 2},
   [171] = {.lex_state = 0, .external_lex_state = 2},
-  [172] = {.lex_state = 0, .external_lex_state = 2},
+  [172] = {.lex_state = 8, .external_lex_state = 2},
   [173] = {.lex_state = 0, .external_lex_state = 2},
-  [174] = {.lex_state = 0, .external_lex_state = 3},
-  [175] = {.lex_state = 9, .external_lex_state = 2},
+  [174] = {.lex_state = 0, .external_lex_state = 2},
+  [175] = {.lex_state = 0, .external_lex_state = 2},
   [176] = {.lex_state = 0, .external_lex_state = 2},
   [177] = {.lex_state = 0, .external_lex_state = 2},
   [178] = {.lex_state = 0, .external_lex_state = 2},
   [179] = {.lex_state = 0, .external_lex_state = 2},
-  [180] = {.lex_state = 0, .external_lex_state = 2},
-  [181] = {.lex_state = 0, .external_lex_state = 2},
-  [182] = {.lex_state = 0, .external_lex_state = 2},
+  [180] = {.lex_state = 9, .external_lex_state = 2},
+  [181] = {.lex_state = 9, .external_lex_state = 2},
+  [182] = {.lex_state = 9, .external_lex_state = 2},
   [183] = {.lex_state = 9, .external_lex_state = 2},
   [184] = {.lex_state = 0, .external_lex_state = 2},
-  [185] = {.lex_state = 9, .external_lex_state = 2},
-  [186] = {.lex_state = 9, .external_lex_state = 2},
-  [187] = {.lex_state = 0, .external_lex_state = 4},
-  [188] = {.lex_state = 0, .external_lex_state = 5},
-  [189] = {.lex_state = 0, .external_lex_state = 4},
-  [190] = {.lex_state = 8, .external_lex_state = 2},
-  [191] = {.lex_state = 8, .external_lex_state = 2},
+  [185] = {.lex_state = 0, .external_lex_state = 2},
+  [186] = {.lex_state = 0, .external_lex_state = 2},
+  [187] = {.lex_state = 0, .external_lex_state = 2},
+  [188] = {.lex_state = 0, .external_lex_state = 2},
+  [189] = {.lex_state = 0, .external_lex_state = 3},
+  [190] = {.lex_state = 0, .external_lex_state = 2},
+  [191] = {.lex_state = 0, .external_lex_state = 2},
   [192] = {.lex_state = 0, .external_lex_state = 2},
   [193] = {.lex_state = 0, .external_lex_state = 2},
-  [194] = {.lex_state = 0, .external_lex_state = 6},
-  [195] = {.lex_state = 0, .external_lex_state = 2},
-  [196] = {.lex_state = 0, .external_lex_state = 2},
-  [197] = {.lex_state = 0, .external_lex_state = 2},
-  [198] = {.lex_state = 0, .external_lex_state = 2},
+  [194] = {.lex_state = 0, .external_lex_state = 4},
+  [195] = {.lex_state = 8, .external_lex_state = 2},
+  [196] = {.lex_state = 0, .external_lex_state = 4},
+  [197] = {.lex_state = 8, .external_lex_state = 2},
+  [198] = {.lex_state = 0, .external_lex_state = 5},
   [199] = {.lex_state = 0, .external_lex_state = 2},
   [200] = {.lex_state = 0, .external_lex_state = 2},
   [201] = {.lex_state = 0, .external_lex_state = 2},
@@ -1987,22 +2296,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [205] = {.lex_state = 0, .external_lex_state = 2},
   [206] = {.lex_state = 0, .external_lex_state = 2},
   [207] = {.lex_state = 0, .external_lex_state = 2},
-  [208] = {.lex_state = 0, .external_lex_state = 2},
+  [208] = {.lex_state = 0, .external_lex_state = 6},
   [209] = {.lex_state = 0, .external_lex_state = 2},
   [210] = {.lex_state = 0, .external_lex_state = 2},
-  [211] = {.lex_state = 0, .external_lex_state = 7},
+  [211] = {.lex_state = 0, .external_lex_state = 2},
   [212] = {.lex_state = 0, .external_lex_state = 2},
   [213] = {.lex_state = 0, .external_lex_state = 2},
   [214] = {.lex_state = 0, .external_lex_state = 2},
-  [215] = {.lex_state = 56, .external_lex_state = 2},
+  [215] = {.lex_state = 0, .external_lex_state = 2},
   [216] = {.lex_state = 0, .external_lex_state = 2},
   [217] = {.lex_state = 0, .external_lex_state = 2},
   [218] = {.lex_state = 0, .external_lex_state = 2},
-  [219] = {.lex_state = 0, .external_lex_state = 2},
+  [219] = {.lex_state = 8, .external_lex_state = 2},
   [220] = {.lex_state = 0, .external_lex_state = 2},
-  [221] = {.lex_state = 0, .external_lex_state = 2},
+  [221] = {.lex_state = 0, .external_lex_state = 6},
   [222] = {.lex_state = 0, .external_lex_state = 2},
-  [223] = {.lex_state = 0, .external_lex_state = 7},
+  [223] = {.lex_state = 0, .external_lex_state = 2},
   [224] = {.lex_state = 0, .external_lex_state = 2},
   [225] = {.lex_state = 0, .external_lex_state = 2},
   [226] = {.lex_state = 0, .external_lex_state = 2},
@@ -2011,9 +2320,19 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [229] = {.lex_state = 0, .external_lex_state = 2},
   [230] = {.lex_state = 0, .external_lex_state = 2},
   [231] = {.lex_state = 0, .external_lex_state = 2},
-  [232] = {(TSStateId)(-1)},
-  [233] = {(TSStateId)(-1)},
-  [234] = {(TSStateId)(-1)},
+  [232] = {.lex_state = 0, .external_lex_state = 2},
+  [233] = {.lex_state = 57, .external_lex_state = 2},
+  [234] = {.lex_state = 0, .external_lex_state = 2},
+  [235] = {.lex_state = 0, .external_lex_state = 7},
+  [236] = {.lex_state = 0, .external_lex_state = 2},
+  [237] = {.lex_state = 0, .external_lex_state = 2},
+  [238] = {.lex_state = 0, .external_lex_state = 2},
+  [239] = {.lex_state = 0, .external_lex_state = 2},
+  [240] = {.lex_state = 0, .external_lex_state = 2},
+  [241] = {.lex_state = 0, .external_lex_state = 2},
+  [242] = {(TSStateId)(-1)},
+  [243] = {(TSStateId)(-1)},
+  [244] = {(TSStateId)(-1)},
 };
 
 enum {
@@ -2062,11 +2381,11 @@ static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = {
   },
   [6] = {
     [ts_external_token__block_comment_start] = true,
-    [ts_external_token__block_comment_end] = true,
+    [ts_external_token__string_end] = true,
   },
   [7] = {
     [ts_external_token__block_comment_start] = true,
-    [ts_external_token__string_end] = true,
+    [ts_external_token__block_comment_end] = true,
   },
 };
 
@@ -2097,6 +2416,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [anon_sym_local] = ACTIONS(1),
     [anon_sym_DOT] = ACTIONS(1),
     [anon_sym_COLON] = ACTIONS(1),
+    [anon_sym_LT] = ACTIONS(1),
+    [anon_sym_GT] = ACTIONS(1),
     [sym_nil] = ACTIONS(1),
     [sym_false] = ACTIONS(1),
     [sym_true] = ACTIONS(1),
@@ -2109,12 +2430,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [anon_sym_RBRACE] = ACTIONS(1),
     [anon_sym_or] = ACTIONS(1),
     [anon_sym_and] = ACTIONS(1),
-    [anon_sym_LT] = ACTIONS(1),
     [anon_sym_LT_EQ] = ACTIONS(1),
     [anon_sym_EQ_EQ] = ACTIONS(1),
     [anon_sym_TILDE_EQ] = ACTIONS(1),
     [anon_sym_GT_EQ] = ACTIONS(1),
-    [anon_sym_GT] = ACTIONS(1),
     [anon_sym_PIPE] = ACTIONS(1),
     [anon_sym_TILDE] = ACTIONS(1),
     [anon_sym_AMP] = ACTIONS(1),
@@ -2139,12 +2458,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [sym__string_end] = ACTIONS(1),
   },
   [1] = {
-    [sym_chunk] = STATE(221),
-    [sym_statement] = STATE(132),
-    [sym_return_statement] = STATE(214),
+    [sym_chunk] = STATE(238),
+    [sym_statement] = STATE(125),
+    [sym_return_statement] = STATE(237),
     [sym_empty_statement] = STATE(121),
     [sym_assignment_statement] = STATE(121),
-    [sym__variable_assignment_varlist] = STATE(193),
+    [sym__variable_assignment_varlist] = STATE(236),
     [sym_label_statement] = STATE(121),
     [sym_goto_statement] = STATE(121),
     [sym_do_statement] = STATE(121),
@@ -2152,17 +2471,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [sym_repeat_statement] = STATE(121),
     [sym_if_statement] = STATE(121),
     [sym_for_statement] = STATE(121),
-    [sym_declaration] = STATE(138),
+    [sym_declaration] = STATE(135),
     [sym_function_declaration] = STATE(139),
-    [sym__local_function_declaration] = STATE(140),
-    [sym_variable_declaration] = STATE(141),
-    [sym__prefix_expression] = STATE(148),
-    [sym_variable] = STATE(150),
-    [sym_bracket_index_expression] = STATE(3),
-    [sym_dot_index_expression] = STATE(3),
-    [sym_function_call] = STATE(95),
-    [sym_method_index_expression] = STATE(152),
-    [sym_parenthesized_expression] = STATE(155),
+    [sym__local_function_declaration] = STATE(145),
+    [sym_variable_declaration] = STATE(146),
+    [sym__prefix_expression] = STATE(152),
+    [sym_variable] = STATE(153),
+    [sym_bracket_index_expression] = STATE(2),
+    [sym_dot_index_expression] = STATE(2),
+    [sym_function_call] = STATE(99),
+    [sym_method_index_expression] = STATE(159),
+    [sym_parenthesized_expression] = STATE(156),
     [sym_comment] = STATE(1),
     [aux_sym_chunk_repeat1] = STATE(51),
     [ts_builtin_sym_end] = ACTIONS(7),
@@ -2239,10 +2558,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -2299,10 +2618,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -2359,36 +2678,32 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [195] = 7,
+  [195] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(5), 1,
       sym_comment,
-    ACTIONS(55), 2,
-      anon_sym_DOT,
-      anon_sym_COLON,
-    ACTIONS(57), 4,
+    ACTIONS(51), 25,
       sym__string_start,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-    ACTIONS(51), 21,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
       anon_sym_RPAREN,
+      anon_sym_LBRACK,
       anon_sym_RBRACK,
+      anon_sym_LBRACE,
       anon_sym_RBRACE,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
@@ -2404,7 +2719,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(53), 23,
+    ACTIONS(53), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2420,22 +2735,24 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
+      anon_sym_DOT,
+      anon_sym_COLON,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [263] = 5,
+  [259] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(6), 1,
       sym_comment,
-    ACTIONS(59), 25,
+    ACTIONS(55), 25,
       sym__string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
@@ -2461,7 +2778,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(61), 25,
+    ACTIONS(57), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2479,22 +2796,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [327] = 5,
+  [323] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(7), 1,
       sym_comment,
-    ACTIONS(63), 25,
+    ACTIONS(59), 25,
       sym__string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
@@ -2520,7 +2837,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(65), 25,
+    ACTIONS(61), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2538,22 +2855,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [391] = 5,
+  [387] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(8), 1,
       sym_comment,
-    ACTIONS(67), 25,
+    ACTIONS(63), 25,
       sym__string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
@@ -2579,7 +2896,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(69), 25,
+    ACTIONS(65), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2597,22 +2914,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [455] = 5,
+  [451] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(9), 1,
       sym_comment,
-    ACTIONS(71), 25,
+    ACTIONS(67), 25,
       sym__string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
@@ -2638,7 +2955,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(73), 25,
+    ACTIONS(69), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2656,22 +2973,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [519] = 5,
+  [515] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(10), 1,
       sym_comment,
-    ACTIONS(75), 25,
+    ACTIONS(71), 25,
       sym__string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
@@ -2697,7 +3014,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(77), 25,
+    ACTIONS(73), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2715,32 +3032,36 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [583] = 5,
+  [579] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(11), 1,
       sym_comment,
-    ACTIONS(79), 25,
+    ACTIONS(79), 2,
+      anon_sym_DOT,
+      anon_sym_COLON,
+    ACTIONS(81), 4,
       sym__string_start,
+      anon_sym_LPAREN,
+      anon_sym_LBRACK,
+      anon_sym_LBRACE,
+    ACTIONS(75), 21,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
-      anon_sym_LPAREN,
       anon_sym_RPAREN,
-      anon_sym_LBRACK,
       anon_sym_RBRACK,
-      anon_sym_LBRACE,
       anon_sym_RBRACE,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
@@ -2756,7 +3077,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(81), 25,
+    ACTIONS(77), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2772,12 +3093,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_DOT,
-      anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -2833,10 +3152,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -2892,10 +3211,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -2951,10 +3270,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -3010,10 +3329,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_DOT,
       anon_sym_COLON,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -3025,7 +3344,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym__block_comment_start,
     STATE(16), 1,
       sym_comment,
-    ACTIONS(79), 22,
+    ACTIONS(99), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3048,7 +3367,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(81), 23,
+    ACTIONS(101), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3064,10 +3383,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
@@ -3079,7 +3398,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym__block_comment_start,
     STATE(17), 1,
       sym_comment,
-    ACTIONS(63), 22,
+    ACTIONS(103), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3102,7 +3421,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(65), 23,
+    ACTIONS(105), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3118,55 +3437,36 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [1021] = 18,
+  [1021] = 11,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(103), 1,
-      anon_sym_and,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
     STATE(18), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(99), 8,
+    ACTIONS(107), 16,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3175,7 +3475,15 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RPAREN,
       anon_sym_RBRACK,
       anon_sym_RBRACE,
-    ACTIONS(101), 17,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+      anon_sym_PIPE,
+      anon_sym_AMP,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(109), 21,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3191,106 +3499,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
+      anon_sym_LT,
+      anon_sym_GT,
       anon_sym_or,
+      anon_sym_and,
+      anon_sym_TILDE,
       sym_identifier,
-  [1106] = 39,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(9), 1,
-      sym_identifier,
-    ACTIONS(15), 1,
-      anon_sym_SEMI,
-    ACTIONS(17), 1,
-      anon_sym_COLON_COLON,
-    ACTIONS(19), 1,
-      sym_break_statement,
-    ACTIONS(21), 1,
-      anon_sym_goto,
-    ACTIONS(23), 1,
-      anon_sym_do,
-    ACTIONS(25), 1,
-      anon_sym_while,
-    ACTIONS(27), 1,
-      anon_sym_repeat,
-    ACTIONS(29), 1,
-      anon_sym_if,
-    ACTIONS(31), 1,
-      anon_sym_for,
-    ACTIONS(33), 1,
-      anon_sym_function,
-    ACTIONS(35), 1,
-      anon_sym_local,
-    ACTIONS(37), 1,
-      anon_sym_LPAREN,
-    ACTIONS(129), 1,
-      anon_sym_return,
-    ACTIONS(131), 1,
-      anon_sym_end,
-    ACTIONS(133), 1,
-      anon_sym_elseif,
-    ACTIONS(135), 1,
-      anon_sym_else,
-    STATE(19), 1,
-      sym_comment,
-    STATE(37), 1,
-      aux_sym_chunk_repeat1,
-    STATE(95), 1,
-      sym_function_call,
-    STATE(132), 1,
-      sym_statement,
-    STATE(138), 1,
-      sym_declaration,
-    STATE(139), 1,
-      sym_function_declaration,
-    STATE(140), 1,
-      sym__local_function_declaration,
-    STATE(141), 1,
-      sym_variable_declaration,
-    STATE(148), 1,
-      sym__prefix_expression,
-    STATE(150), 1,
-      sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
-      sym_parenthesized_expression,
-    STATE(156), 1,
-      sym__block,
-    STATE(157), 1,
-      aux_sym_if_statement_repeat1,
-    STATE(166), 1,
-      sym_return_statement,
-    STATE(178), 1,
-      sym_elseif_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(222), 1,
-      sym_else_statement,
-    STATE(3), 2,
-      sym_bracket_index_expression,
-      sym_dot_index_expression,
-    STATE(121), 9,
-      sym_empty_statement,
-      sym_assignment_statement,
-      sym_label_statement,
-      sym_goto_statement,
-      sym_do_statement,
-      sym_while_statement,
-      sym_repeat_statement,
-      sym_if_statement,
-      sym_for_statement,
-  [1233] = 6,
+  [1092] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(20), 1,
+    STATE(19), 1,
       sym_comment,
-    ACTIONS(99), 21,
+    ACTIONS(107), 21,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3312,7 +3536,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
-    ACTIONS(101), 23,
+    ACTIONS(109), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3328,53 +3552,30 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [1294] = 17,
+  [1153] = 8,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
-    ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
     ACTIONS(117), 1,
-      anon_sym_PLUS,
-    ACTIONS(119), 1,
-      anon_sym_DASH,
-    ACTIONS(123), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
-      anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(21), 1,
+    STATE(20), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(99), 8,
+    ACTIONS(107), 18,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3383,7 +3584,17 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RPAREN,
       anon_sym_RBRACK,
       anon_sym_RBRACE,
-    ACTIONS(101), 18,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+      anon_sym_PIPE,
+      anon_sym_AMP,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+      anon_sym_PLUS,
+      anon_sym_DOT_DOT,
+    ACTIONS(109), 22,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3399,40 +3610,23 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
+      anon_sym_LT,
+      anon_sym_GT,
       anon_sym_or,
       anon_sym_and,
+      anon_sym_TILDE,
+      anon_sym_DASH,
       sym_identifier,
-  [1377] = 15,
+  [1218] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
-    ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
-      anon_sym_PLUS,
-    ACTIONS(119), 1,
-      anon_sym_DASH,
-    ACTIONS(123), 1,
-      anon_sym_SLASH,
-    ACTIONS(125), 1,
-      anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(22), 1,
+    STATE(21), 1,
       sym_comment,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(99), 12,
+    ACTIONS(123), 21,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3445,7 +3639,16 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-    ACTIONS(101), 20,
+      anon_sym_PIPE,
+      anon_sym_AMP,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+      anon_sym_PLUS,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+      anon_sym_DOT_DOT,
+    ACTIONS(125), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3461,38 +3664,36 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
+      anon_sym_TILDE,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       sym_identifier,
-  [1456] = 13,
+  [1279] = 11,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
+    ACTIONS(111), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(23), 1,
+    STATE(22), 1,
       sym_comment,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(99), 13,
+    ACTIONS(107), 16,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3506,7 +3707,10 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
       anon_sym_PIPE,
-    ACTIONS(101), 21,
+      anon_sym_AMP,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(109), 21,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3522,25 +3726,40 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       sym_identifier,
-  [1531] = 6,
+  [1350] = 12,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(127), 1,
-      anon_sym_CARET,
-    STATE(24), 1,
-      sym_comment,
-    ACTIONS(137), 21,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
+    ACTIONS(111), 1,
+      anon_sym_PLUS,
+    ACTIONS(113), 1,
+      anon_sym_DASH,
+    ACTIONS(117), 1,
+      anon_sym_SLASH,
+    ACTIONS(119), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(121), 1,
+      anon_sym_CARET,
+    STATE(23), 1,
+      sym_comment,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(115), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(107), 14,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
@@ -3552,14 +3771,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_GT_EQ,
       anon_sym_PIPE,
       anon_sym_AMP,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-      anon_sym_PLUS,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-    ACTIONS(139), 23,
+    ACTIONS(109), 21,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3575,39 +3787,39 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
-      anon_sym_DASH,
-      anon_sym_SLASH,
       sym_identifier,
-  [1592] = 12,
+  [1423] = 13,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(117), 1,
+    ACTIONS(111), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(25), 1,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    STATE(24), 1,
       sym_comment,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(99), 14,
+    ACTIONS(107), 13,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3621,8 +3833,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
       anon_sym_PIPE,
-      anon_sym_AMP,
-    ACTIONS(101), 21,
+    ACTIONS(109), 21,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3638,34 +3849,41 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       sym_identifier,
-  [1665] = 11,
+  [1498] = 14,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(117), 1,
+    ACTIONS(111), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(26), 1,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    STATE(25), 1,
       sym_comment,
-    ACTIONS(121), 3,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(99), 16,
+    ACTIONS(107), 13,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3679,10 +3897,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
       anon_sym_PIPE,
-      anon_sym_AMP,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(101), 21,
+    ACTIONS(109), 20,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3698,34 +3913,50 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
-      anon_sym_TILDE,
+      anon_sym_or,
+      anon_sym_and,
       sym_identifier,
-  [1736] = 11,
+  [1575] = 17,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(117), 1,
+    ACTIONS(111), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    STATE(27), 1,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    STATE(26), 1,
       sym_comment,
-    ACTIONS(121), 3,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(99), 16,
+    ACTIONS(135), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(107), 8,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3734,15 +3965,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RPAREN,
       anon_sym_RBRACK,
       anon_sym_RBRACE,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-      anon_sym_PIPE,
-      anon_sym_AMP,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(101), 21,
+    ACTIONS(109), 18,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3760,18 +3983,48 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_or,
       anon_sym_and,
-      anon_sym_LT,
-      anon_sym_GT,
-      anon_sym_TILDE,
       sym_identifier,
-  [1807] = 5,
+  [1658] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(28), 1,
+    ACTIONS(111), 1,
+      anon_sym_PLUS,
+    ACTIONS(113), 1,
+      anon_sym_DASH,
+    ACTIONS(117), 1,
+      anon_sym_SLASH,
+    ACTIONS(119), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(121), 1,
+      anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(139), 1,
+      anon_sym_and,
+    STATE(27), 1,
       sym_comment,
-    ACTIONS(75), 22,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(135), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(107), 8,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3780,21 +4033,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RPAREN,
       anon_sym_RBRACK,
       anon_sym_RBRACE,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-      anon_sym_PIPE,
-      anon_sym_AMP,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-      anon_sym_PLUS,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-      anon_sym_CARET,
-    ACTIONS(77), 23,
+    ACTIONS(109), 17,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3811,21 +4050,38 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       anon_sym_or,
-      anon_sym_and,
-      anon_sym_LT,
-      anon_sym_GT,
-      anon_sym_TILDE,
-      anon_sym_DASH,
-      anon_sym_SLASH,
       sym_identifier,
-  [1866] = 5,
+  [1743] = 15,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(29), 1,
+    ACTIONS(111), 1,
+      anon_sym_PLUS,
+    ACTIONS(113), 1,
+      anon_sym_DASH,
+    ACTIONS(117), 1,
+      anon_sym_SLASH,
+    ACTIONS(119), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(121), 1,
+      anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    STATE(28), 1,
       sym_comment,
-    ACTIONS(51), 22,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(115), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(107), 12,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3838,17 +4094,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-      anon_sym_PIPE,
-      anon_sym_AMP,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-      anon_sym_PLUS,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-      anon_sym_CARET,
-    ACTIONS(53), 23,
+    ACTIONS(109), 20,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3864,88 +4110,118 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
-      anon_sym_TILDE,
-      anon_sym_DASH,
-      anon_sym_SLASH,
+      anon_sym_or,
+      anon_sym_and,
       sym_identifier,
-  [1925] = 6,
+  [1822] = 39,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(127), 1,
-      anon_sym_CARET,
-    STATE(30), 1,
-      sym_comment,
-    ACTIONS(99), 21,
-      ts_builtin_sym_end,
+    ACTIONS(9), 1,
+      sym_identifier,
+    ACTIONS(15), 1,
       anon_sym_SEMI,
-      anon_sym_COMMA,
+    ACTIONS(17), 1,
       anon_sym_COLON_COLON,
-      anon_sym_LPAREN,
-      anon_sym_RPAREN,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-      anon_sym_PIPE,
-      anon_sym_AMP,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-      anon_sym_PLUS,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-      anon_sym_DOT_DOT,
-    ACTIONS(101), 23,
-      anon_sym_return,
+    ACTIONS(19), 1,
       sym_break_statement,
+    ACTIONS(21), 1,
       anon_sym_goto,
+    ACTIONS(23), 1,
       anon_sym_do,
-      anon_sym_end,
+    ACTIONS(25), 1,
       anon_sym_while,
+    ACTIONS(27), 1,
       anon_sym_repeat,
-      anon_sym_until,
+    ACTIONS(29), 1,
       anon_sym_if,
-      anon_sym_then,
-      anon_sym_elseif,
-      anon_sym_else,
+    ACTIONS(31), 1,
       anon_sym_for,
+    ACTIONS(33), 1,
       anon_sym_function,
+    ACTIONS(35), 1,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
-      anon_sym_LT,
-      anon_sym_GT,
-      anon_sym_TILDE,
-      anon_sym_DASH,
-      anon_sym_SLASH,
-      sym_identifier,
-  [1986] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(31), 1,
-      sym_comment,
-    ACTIONS(141), 22,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-      anon_sym_COLON_COLON,
+    ACTIONS(37), 1,
       anon_sym_LPAREN,
-      anon_sym_RPAREN,
-      anon_sym_RBRACK,
-      anon_sym_RBRACE,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
+    ACTIONS(141), 1,
+      anon_sym_return,
+    ACTIONS(143), 1,
+      anon_sym_end,
+    ACTIONS(145), 1,
+      anon_sym_elseif,
+    ACTIONS(147), 1,
+      anon_sym_else,
+    STATE(29), 1,
+      sym_comment,
+    STATE(40), 1,
+      aux_sym_chunk_repeat1,
+    STATE(99), 1,
+      sym_function_call,
+    STATE(125), 1,
+      sym_statement,
+    STATE(135), 1,
+      sym_declaration,
+    STATE(139), 1,
+      sym_function_declaration,
+    STATE(145), 1,
+      sym__local_function_declaration,
+    STATE(146), 1,
+      sym_variable_declaration,
+    STATE(152), 1,
+      sym__prefix_expression,
+    STATE(153), 1,
+      sym_variable,
+    STATE(156), 1,
+      sym_parenthesized_expression,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(160), 1,
+      sym__block,
+    STATE(161), 1,
+      aux_sym_if_statement_repeat1,
+    STATE(170), 1,
+      sym_return_statement,
+    STATE(191), 1,
+      sym_elseif_statement,
+    STATE(222), 1,
+      sym_else_statement,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    STATE(121), 9,
+      sym_empty_statement,
+      sym_assignment_statement,
+      sym_label_statement,
+      sym_goto_statement,
+      sym_do_statement,
+      sym_while_statement,
+      sym_repeat_statement,
+      sym_if_statement,
+      sym_for_statement,
+  [1949] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(30), 1,
+      sym_comment,
+    ACTIONS(149), 22,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+      anon_sym_RPAREN,
+      anon_sym_RBRACK,
+      anon_sym_RBRACE,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
       anon_sym_PIPE,
       anon_sym_AMP,
@@ -3957,7 +4233,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(143), 23,
+    ACTIONS(151), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3973,43 +4249,78 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2045] = 14,
+  [2008] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
+    STATE(31), 1,
+      sym_comment,
+    ACTIONS(55), 22,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+      anon_sym_RPAREN,
+      anon_sym_RBRACK,
+      anon_sym_RBRACE,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+      anon_sym_PIPE,
       anon_sym_AMP,
-    ACTIONS(117), 1,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+      anon_sym_DOT_DOT,
+      anon_sym_CARET,
+    ACTIONS(57), 23,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_then,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      anon_sym_LT,
+      anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
+      anon_sym_TILDE,
       anon_sym_DASH,
-    ACTIONS(123), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
-      anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+      sym_identifier,
+  [2067] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(121), 1,
       anon_sym_CARET,
     STATE(32), 1,
       sym_comment,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(99), 13,
+    ACTIONS(107), 21,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4023,7 +4334,15 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
       anon_sym_PIPE,
-    ACTIONS(101), 20,
+      anon_sym_AMP,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+      anon_sym_PLUS,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+      anon_sym_DOT_DOT,
+    ACTIONS(109), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4039,19 +4358,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
+      anon_sym_TILDE,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       sym_identifier,
-  [2122] = 5,
+  [2128] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(33), 1,
       sym_comment,
-    ACTIONS(71), 22,
+    ACTIONS(95), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4074,7 +4396,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(73), 23,
+    ACTIONS(97), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4090,22 +4412,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2181] = 5,
+  [2187] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(34), 1,
       sym_comment,
-    ACTIONS(145), 22,
+    ACTIONS(67), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4128,7 +4450,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(147), 23,
+    ACTIONS(69), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4144,30 +4466,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2240] = 8,
+  [2246] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(123), 1,
-      anon_sym_SLASH,
-    ACTIONS(127), 1,
-      anon_sym_CARET,
     STATE(35), 1,
       sym_comment,
-    ACTIONS(121), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(99), 18,
+    ACTIONS(71), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4185,8 +4499,12 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LT_LT,
       anon_sym_GT_GT,
       anon_sym_PLUS,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
       anon_sym_DOT_DOT,
-    ACTIONS(101), 22,
+      anon_sym_CARET,
+    ACTIONS(73), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4202,12 +4520,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
+      anon_sym_SLASH,
       sym_identifier,
   [2305] = 5,
     ACTIONS(3), 1,
@@ -4216,7 +4535,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym__block_comment_start,
     STATE(36), 1,
       sym_comment,
-    ACTIONS(149), 22,
+    ACTIONS(75), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4239,7 +4558,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(151), 23,
+    ACTIONS(77), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4255,155 +4574,143 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_for,
       anon_sym_function,
       anon_sym_local,
-      anon_sym_or,
-      anon_sym_and,
       anon_sym_LT,
       anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2364] = 33,
+  [2364] = 21,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(9), 1,
-      sym_identifier,
-    ACTIONS(15), 1,
+    ACTIONS(111), 1,
+      anon_sym_PLUS,
+    ACTIONS(113), 1,
+      anon_sym_DASH,
+    ACTIONS(117), 1,
+      anon_sym_SLASH,
+    ACTIONS(119), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(121), 1,
+      anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(139), 1,
+      anon_sym_and,
+    ACTIONS(157), 1,
+      anon_sym_COMMA,
+    ACTIONS(159), 1,
+      anon_sym_or,
+    STATE(37), 1,
+      sym_comment,
+    STATE(115), 1,
+      aux_sym__variable_assignment_explist_repeat1,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(135), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(153), 4,
+      ts_builtin_sym_end,
       anon_sym_SEMI,
-    ACTIONS(17), 1,
       anon_sym_COLON_COLON,
-    ACTIONS(19), 1,
+      anon_sym_LPAREN,
+    ACTIONS(155), 15,
+      anon_sym_return,
       sym_break_statement,
-    ACTIONS(21), 1,
       anon_sym_goto,
-    ACTIONS(23), 1,
       anon_sym_do,
-    ACTIONS(25), 1,
+      anon_sym_end,
       anon_sym_while,
-    ACTIONS(27), 1,
       anon_sym_repeat,
-    ACTIONS(29), 1,
+      anon_sym_until,
       anon_sym_if,
-    ACTIONS(31), 1,
+      anon_sym_elseif,
+      anon_sym_else,
       anon_sym_for,
-    ACTIONS(33), 1,
       anon_sym_function,
-    ACTIONS(35), 1,
       anon_sym_local,
-    ACTIONS(37), 1,
-      anon_sym_LPAREN,
-    ACTIONS(129), 1,
-      anon_sym_return,
-    STATE(37), 1,
-      sym_comment,
-    STATE(38), 1,
-      aux_sym_chunk_repeat1,
-    STATE(95), 1,
-      sym_function_call,
-    STATE(132), 1,
-      sym_statement,
-    STATE(138), 1,
-      sym_declaration,
-    STATE(139), 1,
-      sym_function_declaration,
-    STATE(140), 1,
-      sym__local_function_declaration,
-    STATE(141), 1,
-      sym_variable_declaration,
-    STATE(148), 1,
-      sym__prefix_expression,
-    STATE(150), 1,
-      sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
-      sym_parenthesized_expression,
-    STATE(167), 1,
-      sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(3), 2,
-      sym_bracket_index_expression,
-      sym_dot_index_expression,
-    ACTIONS(153), 4,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-      anon_sym_else,
-    STATE(121), 9,
-      sym_empty_statement,
-      sym_assignment_statement,
-      sym_label_statement,
-      sym_goto_statement,
-      sym_do_statement,
-      sym_while_statement,
-      sym_repeat_statement,
-      sym_if_statement,
-      sym_for_statement,
-  [2476] = 31,
+      sym_identifier,
+  [2452] = 31,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(155), 1,
+    ACTIONS(161), 1,
       ts_builtin_sym_end,
-    ACTIONS(157), 1,
+    ACTIONS(163), 1,
       sym_identifier,
-    ACTIONS(162), 1,
+    ACTIONS(168), 1,
       anon_sym_SEMI,
-    ACTIONS(165), 1,
+    ACTIONS(171), 1,
       anon_sym_COLON_COLON,
-    ACTIONS(168), 1,
+    ACTIONS(174), 1,
       sym_break_statement,
-    ACTIONS(171), 1,
+    ACTIONS(177), 1,
       anon_sym_goto,
-    ACTIONS(174), 1,
+    ACTIONS(180), 1,
       anon_sym_do,
-    ACTIONS(177), 1,
+    ACTIONS(183), 1,
       anon_sym_while,
-    ACTIONS(180), 1,
+    ACTIONS(186), 1,
       anon_sym_repeat,
-    ACTIONS(183), 1,
+    ACTIONS(189), 1,
       anon_sym_if,
-    ACTIONS(186), 1,
+    ACTIONS(192), 1,
       anon_sym_for,
-    ACTIONS(189), 1,
+    ACTIONS(195), 1,
       anon_sym_function,
-    ACTIONS(192), 1,
+    ACTIONS(198), 1,
       anon_sym_local,
-    ACTIONS(195), 1,
+    ACTIONS(201), 1,
       anon_sym_LPAREN,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(193), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(236), 1,
       sym__variable_assignment_varlist,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(38), 2,
       sym_comment,
       aux_sym_chunk_repeat1,
-    ACTIONS(160), 5,
+    ACTIONS(166), 5,
       anon_sym_return,
       anon_sym_end,
       anon_sym_until,
@@ -4419,7 +4726,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [2584] = 34,
+  [2560] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -4450,42 +4757,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(129), 1,
+    ACTIONS(141), 1,
       anon_sym_return,
-    STATE(37), 1,
-      aux_sym_chunk_repeat1,
     STATE(39), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(40), 1,
+      aux_sym_chunk_repeat1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(166), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
       sym_return_statement,
-    STATE(176), 1,
+    STATE(178), 1,
       sym__block,
-    STATE(193), 1,
+    STATE(236), 1,
       sym__variable_assignment_varlist,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(198), 3,
+    ACTIONS(204), 3,
       anon_sym_end,
       anon_sym_elseif,
       anon_sym_else,
@@ -4499,111 +4806,123 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [2698] = 21,
+  [2674] = 33,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(103), 1,
-      anon_sym_and,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
-    ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
-      anon_sym_PLUS,
-    ACTIONS(119), 1,
-      anon_sym_DASH,
-    ACTIONS(123), 1,
-      anon_sym_SLASH,
-    ACTIONS(125), 1,
-      anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
-      anon_sym_CARET,
-    ACTIONS(204), 1,
-      anon_sym_COMMA,
-    ACTIONS(206), 1,
-      anon_sym_or,
-    STATE(40), 1,
-      sym_comment,
-    STATE(113), 1,
-      aux_sym__variable_assignment_explist_repeat1,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(107), 4,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(200), 4,
-      ts_builtin_sym_end,
+    ACTIONS(9), 1,
+      sym_identifier,
+    ACTIONS(15), 1,
       anon_sym_SEMI,
+    ACTIONS(17), 1,
       anon_sym_COLON_COLON,
-      anon_sym_LPAREN,
-    ACTIONS(202), 15,
-      anon_sym_return,
+    ACTIONS(19), 1,
       sym_break_statement,
+    ACTIONS(21), 1,
       anon_sym_goto,
+    ACTIONS(23), 1,
       anon_sym_do,
-      anon_sym_end,
+    ACTIONS(25), 1,
       anon_sym_while,
+    ACTIONS(27), 1,
       anon_sym_repeat,
-      anon_sym_until,
+    ACTIONS(29), 1,
       anon_sym_if,
-      anon_sym_elseif,
-      anon_sym_else,
+    ACTIONS(31), 1,
       anon_sym_for,
+    ACTIONS(33), 1,
       anon_sym_function,
+    ACTIONS(35), 1,
       anon_sym_local,
-      sym_identifier,
+    ACTIONS(37), 1,
+      anon_sym_LPAREN,
+    ACTIONS(141), 1,
+      anon_sym_return,
+    STATE(38), 1,
+      aux_sym_chunk_repeat1,
+    STATE(40), 1,
+      sym_comment,
+    STATE(99), 1,
+      sym_function_call,
+    STATE(125), 1,
+      sym_statement,
+    STATE(135), 1,
+      sym_declaration,
+    STATE(139), 1,
+      sym_function_declaration,
+    STATE(145), 1,
+      sym__local_function_declaration,
+    STATE(146), 1,
+      sym_variable_declaration,
+    STATE(152), 1,
+      sym__prefix_expression,
+    STATE(153), 1,
+      sym_variable,
+    STATE(156), 1,
+      sym_parenthesized_expression,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(173), 1,
+      sym_return_statement,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    ACTIONS(206), 4,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+      anon_sym_else,
+    STATE(121), 9,
+      sym_empty_statement,
+      sym_assignment_statement,
+      sym_label_statement,
+      sym_goto_statement,
+      sym_do_statement,
+      sym_while_statement,
+      sym_repeat_statement,
+      sym_if_statement,
+      sym_for_statement,
   [2786] = 19,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(103), 1,
-      anon_sym_and,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    ACTIONS(206), 1,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(139), 1,
+      anon_sym_and,
+    ACTIONS(159), 1,
       anon_sym_or,
     STATE(41), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
@@ -4661,41 +4980,41 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(129), 1,
+    ACTIONS(141), 1,
       anon_sym_return,
     ACTIONS(212), 1,
       anon_sym_end,
-    STATE(37), 1,
+    STATE(40), 1,
       aux_sym_chunk_repeat1,
     STATE(42), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(166), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
       sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
     STATE(200), 1,
       sym__block,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -4739,119 +5058,41 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(129), 1,
+    ACTIONS(141), 1,
       anon_sym_return,
     ACTIONS(214), 1,
       anon_sym_end,
-    STATE(37), 1,
+    STATE(40), 1,
       aux_sym_chunk_repeat1,
     STATE(43), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
-      sym__prefix_expression,
-    STATE(150), 1,
-      sym_variable,
     STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
-      sym_parenthesized_expression,
-    STATE(166), 1,
-      sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(213), 1,
-      sym__block,
-    STATE(3), 2,
-      sym_bracket_index_expression,
-      sym_dot_index_expression,
-    STATE(121), 9,
-      sym_empty_statement,
-      sym_assignment_statement,
-      sym_label_statement,
-      sym_goto_statement,
-      sym_do_statement,
-      sym_while_statement,
-      sym_repeat_statement,
-      sym_if_statement,
-      sym_for_statement,
-  [3093] = 34,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(9), 1,
-      sym_identifier,
-    ACTIONS(15), 1,
-      anon_sym_SEMI,
-    ACTIONS(17), 1,
-      anon_sym_COLON_COLON,
-    ACTIONS(19), 1,
-      sym_break_statement,
-    ACTIONS(21), 1,
-      anon_sym_goto,
-    ACTIONS(23), 1,
-      anon_sym_do,
-    ACTIONS(25), 1,
-      anon_sym_while,
-    ACTIONS(27), 1,
-      anon_sym_repeat,
-    ACTIONS(29), 1,
-      anon_sym_if,
-    ACTIONS(31), 1,
-      anon_sym_for,
-    ACTIONS(33), 1,
-      anon_sym_function,
-    ACTIONS(35), 1,
-      anon_sym_local,
-    ACTIONS(37), 1,
-      anon_sym_LPAREN,
-    ACTIONS(129), 1,
-      anon_sym_return,
-    ACTIONS(216), 1,
-      anon_sym_until,
-    STATE(37), 1,
-      aux_sym_chunk_repeat1,
-    STATE(44), 1,
-      sym_comment,
-    STATE(95), 1,
-      sym_function_call,
-    STATE(132), 1,
-      sym_statement,
-    STATE(138), 1,
-      sym_declaration,
-    STATE(139), 1,
-      sym_function_declaration,
-    STATE(140), 1,
-      sym__local_function_declaration,
-    STATE(141), 1,
-      sym_variable_declaration,
-    STATE(148), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(166), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
       sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(197), 1,
+    STATE(218), 1,
       sym__block,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -4864,54 +5105,54 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3205] = 19,
+  [3093] = 19,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(103), 1,
-      anon_sym_and,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    ACTIONS(206), 1,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(139), 1,
+      anon_sym_and,
+    ACTIONS(159), 1,
       anon_sym_or,
-    STATE(45), 1,
+    STATE(44), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-    ACTIONS(218), 4,
+    ACTIONS(216), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(220), 15,
+    ACTIONS(218), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4927,7 +5168,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [3287] = 34,
+  [3175] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -4958,41 +5199,41 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(129), 1,
+    ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(222), 1,
+    ACTIONS(220), 1,
       anon_sym_end,
-    STATE(37), 1,
+    STATE(40), 1,
       aux_sym_chunk_repeat1,
-    STATE(46), 1,
+    STATE(45), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(166), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
       sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(208), 1,
+    STATE(225), 1,
       sym__block,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -5005,7 +5246,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3399] = 34,
+  [3287] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5036,41 +5277,41 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(129), 1,
+    ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(224), 1,
-      anon_sym_end,
-    STATE(37), 1,
+    ACTIONS(222), 1,
+      anon_sym_until,
+    STATE(40), 1,
       aux_sym_chunk_repeat1,
-    STATE(47), 1,
+    STATE(46), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(166), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
       sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(231), 1,
+    STATE(224), 1,
       sym__block,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -5083,7 +5324,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3511] = 34,
+  [3399] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5114,41 +5355,41 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(129), 1,
+    ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(226), 1,
+    ACTIONS(224), 1,
       anon_sym_end,
-    STATE(37), 1,
+    STATE(40), 1,
       aux_sym_chunk_repeat1,
-    STATE(48), 1,
+    STATE(47), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(166), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
       sym_return_statement,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(196), 1,
+    STATE(232), 1,
       sym__block,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -5161,54 +5402,54 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3623] = 19,
+  [3511] = 19,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(103), 1,
-      anon_sym_and,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
-    ACTIONS(206), 1,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(139), 1,
+      anon_sym_and,
+    ACTIONS(159), 1,
       anon_sym_or,
-    STATE(49), 1,
+    STATE(48), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-    ACTIONS(228), 4,
+    ACTIONS(226), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(230), 15,
+    ACTIONS(228), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -5224,15 +5465,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [3705] = 33,
+  [3593] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(9), 1,
       sym_identifier,
-    ACTIONS(13), 1,
-      anon_sym_return,
     ACTIONS(15), 1,
       anon_sym_SEMI,
     ACTIONS(17), 1,
@@ -5257,37 +5496,117 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(232), 1,
-      ts_builtin_sym_end,
-    STATE(38), 1,
+    ACTIONS(141), 1,
+      anon_sym_return,
+    ACTIONS(230), 1,
+      anon_sym_end,
+    STATE(40), 1,
       aux_sym_chunk_repeat1,
-    STATE(50), 1,
+    STATE(49), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(193), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(170), 1,
+      sym_return_statement,
+    STATE(217), 1,
+      sym__block,
+    STATE(236), 1,
       sym__variable_assignment_varlist,
-    STATE(218), 1,
+    STATE(2), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    STATE(121), 9,
+      sym_empty_statement,
+      sym_assignment_statement,
+      sym_label_statement,
+      sym_goto_statement,
+      sym_do_statement,
+      sym_while_statement,
+      sym_repeat_statement,
+      sym_if_statement,
+      sym_for_statement,
+  [3705] = 33,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(9), 1,
+      sym_identifier,
+    ACTIONS(13), 1,
+      anon_sym_return,
+    ACTIONS(15), 1,
+      anon_sym_SEMI,
+    ACTIONS(17), 1,
+      anon_sym_COLON_COLON,
+    ACTIONS(19), 1,
+      sym_break_statement,
+    ACTIONS(21), 1,
+      anon_sym_goto,
+    ACTIONS(23), 1,
+      anon_sym_do,
+    ACTIONS(25), 1,
+      anon_sym_while,
+    ACTIONS(27), 1,
+      anon_sym_repeat,
+    ACTIONS(29), 1,
+      anon_sym_if,
+    ACTIONS(31), 1,
+      anon_sym_for,
+    ACTIONS(33), 1,
+      anon_sym_function,
+    ACTIONS(35), 1,
+      anon_sym_local,
+    ACTIONS(37), 1,
+      anon_sym_LPAREN,
+    ACTIONS(232), 1,
+      ts_builtin_sym_end,
+    STATE(38), 1,
+      aux_sym_chunk_repeat1,
+    STATE(50), 1,
+      sym_comment,
+    STATE(99), 1,
+      sym_function_call,
+    STATE(125), 1,
+      sym_statement,
+    STATE(135), 1,
+      sym_declaration,
+    STATE(139), 1,
+      sym_function_declaration,
+    STATE(145), 1,
+      sym__local_function_declaration,
+    STATE(146), 1,
+      sym_variable_declaration,
+    STATE(152), 1,
+      sym__prefix_expression,
+    STATE(153), 1,
+      sym_variable,
+    STATE(156), 1,
+      sym_parenthesized_expression,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(209), 1,
       sym_return_statement,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -5339,31 +5658,31 @@ static const uint16_t ts_small_parse_table[] = {
       aux_sym_chunk_repeat1,
     STATE(51), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(219), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(231), 1,
       sym_return_statement,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -5415,31 +5734,31 @@ static const uint16_t ts_small_parse_table[] = {
       aux_sym_chunk_repeat1,
     STATE(52), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(99), 1,
       sym_function_call,
-    STATE(132), 1,
+    STATE(125), 1,
       sym_statement,
-    STATE(138), 1,
+    STATE(135), 1,
       sym_declaration,
     STATE(139), 1,
       sym_function_declaration,
-    STATE(140), 1,
+    STATE(145), 1,
       sym__local_function_declaration,
-    STATE(141), 1,
+    STATE(146), 1,
       sym_variable_declaration,
-    STATE(148), 1,
+    STATE(152), 1,
       sym__prefix_expression,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(155), 1,
+    STATE(156), 1,
       sym_parenthesized_expression,
-    STATE(193), 1,
-      sym__variable_assignment_varlist,
-    STATE(219), 1,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(231), 1,
       sym_return_statement,
-    STATE(3), 2,
+    STATE(236), 1,
+      sym__variable_assignment_varlist,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     STATE(121), 9,
@@ -5471,14 +5790,14 @@ static const uint16_t ts_small_parse_table[] = {
       sym__string_start,
     STATE(53), 1,
       sym_comment,
-    STATE(59), 1,
+    STATE(58), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
-      sym_method_index_expression,
-    STATE(154), 1,
+      sym__prefix_expression,
+    STATE(157), 1,
       sym__expression_list,
+    STATE(159), 1,
+      sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
       sym_vararg_expression,
@@ -5488,14 +5807,14 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
@@ -5504,7 +5823,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_until,
       anon_sym_elseif,
       anon_sym_else,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -5531,15 +5850,15 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RBRACE,
     STATE(54), 1,
       sym_comment,
-    STATE(94), 1,
+    STATE(95), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
-    STATE(161), 1,
+    STATE(166), 1,
       sym_field,
-    STATE(224), 1,
+    STATE(206), 1,
       sym__field_list,
     ACTIONS(244), 2,
       sym_number,
@@ -5550,18 +5869,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -5588,15 +5907,15 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RBRACE,
     STATE(55), 1,
       sym_comment,
-    STATE(94), 1,
+    STATE(95), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
-    STATE(161), 1,
+    STATE(166), 1,
       sym_field,
-    STATE(209), 1,
+    STATE(210), 1,
       sym__field_list,
     ACTIONS(244), 2,
       sym_number,
@@ -5607,18 +5926,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -5633,14 +5952,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_EQ,
     STATE(56), 1,
       sym_comment,
-    ACTIONS(45), 6,
+    ACTIONS(41), 6,
       anon_sym_DOT,
       anon_sym_LT,
       anon_sym_GT,
       anon_sym_TILDE,
       anon_sym_DASH,
       anon_sym_SLASH,
-    ACTIONS(43), 24,
+    ACTIONS(39), 24,
       sym__string_start,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -5670,22 +5989,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(266), 1,
       anon_sym_else,
     ACTIONS(268), 1,
@@ -5694,17 +6013,17 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_and,
     STATE(57), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
@@ -5719,6 +6038,61 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_elseif,
       anon_sym_RPAREN,
   [4388] = 21,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(111), 1,
+      anon_sym_PLUS,
+    ACTIONS(113), 1,
+      anon_sym_DASH,
+    ACTIONS(117), 1,
+      anon_sym_SLASH,
+    ACTIONS(119), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(121), 1,
+      anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(268), 1,
+      anon_sym_or,
+    ACTIONS(270), 1,
+      anon_sym_and,
+    ACTIONS(274), 1,
+      anon_sym_COMMA,
+    ACTIONS(276), 1,
+      anon_sym_else,
+    STATE(58), 1,
+      sym_comment,
+    STATE(154), 1,
+      aux_sym__expression_list_repeat1,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(135), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(272), 6,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [4464] = 21,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5735,17 +6109,17 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(256), 1,
       anon_sym_LBRACK,
-    ACTIONS(272), 1,
+    ACTIONS(278), 1,
       anon_sym_RBRACE,
-    STATE(58), 1,
+    STATE(59), 1,
       sym_comment,
-    STATE(94), 1,
+    STATE(95), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
-    STATE(172), 1,
+    STATE(187), 1,
       sym_field,
     ACTIONS(244), 2,
       sym_number,
@@ -5756,78 +6130,23 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4464] = 21,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
-    ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
-      anon_sym_PLUS,
-    ACTIONS(119), 1,
-      anon_sym_DASH,
-    ACTIONS(123), 1,
-      anon_sym_SLASH,
-    ACTIONS(125), 1,
-      anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
-      anon_sym_CARET,
-    ACTIONS(268), 1,
-      anon_sym_or,
-    ACTIONS(270), 1,
-      anon_sym_and,
-    ACTIONS(276), 1,
-      anon_sym_COMMA,
-    ACTIONS(278), 1,
-      anon_sym_else,
-    STATE(59), 1,
-      sym_comment,
-    STATE(147), 1,
-      aux_sym__expression_list_repeat1,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(107), 4,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(274), 6,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_do,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
   [4540] = 21,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
@@ -5847,16 +6166,16 @@ static const uint16_t ts_small_parse_table[] = {
       sym__string_start,
     ACTIONS(280), 1,
       ts_builtin_sym_end,
-    STATE(59), 1,
+    STATE(58), 1,
       sym_expression,
     STATE(60), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
-      sym_method_index_expression,
-    STATE(154), 1,
+      sym__prefix_expression,
+    STATE(157), 1,
       sym__expression_list,
+    STATE(159), 1,
+      sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
       sym_vararg_expression,
@@ -5866,18 +6185,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -5904,13 +6223,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RBRACE,
     STATE(61), 1,
       sym_comment,
-    STATE(94), 1,
+    STATE(95), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
-    STATE(172), 1,
+    STATE(187), 1,
       sym_field,
     ACTIONS(244), 2,
       sym_number,
@@ -5921,18 +6240,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -5957,13 +6276,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACK,
     STATE(62), 1,
       sym_comment,
-    STATE(94), 1,
+    STATE(95), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
-    STATE(172), 1,
+    STATE(187), 1,
       sym_field,
     ACTIONS(244), 2,
       sym_number,
@@ -5974,18 +6293,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6006,16 +6325,16 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(59), 1,
+    STATE(37), 1,
       sym_expression,
     STATE(63), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(128), 1,
+      sym__variable_assignment_explist,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
-    STATE(226), 1,
-      sym__expression_list,
     ACTIONS(244), 2,
       sym_number,
       sym_vararg_expression,
@@ -6025,18 +6344,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6057,16 +6376,16 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(40), 1,
+    STATE(58), 1,
       sym_expression,
     STATE(64), 1,
       sym_comment,
-    STATE(128), 1,
-      sym__variable_assignment_explist,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
+    STATE(228), 1,
+      sym__expression_list,
     ACTIONS(244), 2,
       sym_number,
       sym_vararg_expression,
@@ -6076,18 +6395,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6108,15 +6427,15 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(40), 1,
+    STATE(37), 1,
       sym_expression,
     STATE(65), 1,
       sym_comment,
-    STATE(126), 1,
+    STATE(129), 1,
       sym__variable_assignment_explist,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6127,18 +6446,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6163,11 +6482,11 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RPAREN,
     STATE(66), 1,
       sym_comment,
-    STATE(96), 1,
+    STATE(97), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6178,18 +6497,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6210,13 +6529,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(21), 1,
+      sym_expression,
     STATE(67), 1,
       sym_comment,
-    STATE(108), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6227,18 +6546,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6259,13 +6578,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(35), 1,
-      sym_expression,
     STATE(68), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(101), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6276,18 +6595,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6308,13 +6627,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(45), 1,
-      sym_expression,
     STATE(69), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(109), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6325,18 +6644,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6359,11 +6678,11 @@ static const uint16_t ts_small_parse_table[] = {
       sym__string_start,
     STATE(70), 1,
       sym_comment,
-    STATE(111), 1,
+    STATE(103), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6374,18 +6693,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6408,11 +6727,11 @@ static const uint16_t ts_small_parse_table[] = {
       sym__string_start,
     STATE(71), 1,
       sym_comment,
-    STATE(110), 1,
+    STATE(98), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6423,18 +6742,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6455,13 +6774,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(41), 1,
+      sym_expression,
     STATE(72), 1,
       sym_comment,
-    STATE(103), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6472,18 +6791,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6504,13 +6823,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(23), 1,
+      sym_expression,
     STATE(73), 1,
       sym_comment,
-    STATE(97), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6521,18 +6840,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6555,11 +6874,11 @@ static const uint16_t ts_small_parse_table[] = {
       sym__string_start,
     STATE(74), 1,
       sym_comment,
-    STATE(107), 1,
+    STATE(104), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6570,18 +6889,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6604,11 +6923,11 @@ static const uint16_t ts_small_parse_table[] = {
       sym__string_start,
     STATE(75), 1,
       sym_comment,
-    STATE(105), 1,
+    STATE(110), 1,
       sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6619,18 +6938,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6651,13 +6970,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(30), 1,
+    STATE(22), 1,
       sym_expression,
     STATE(76), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6668,18 +6987,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6700,13 +7019,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(27), 1,
+    STATE(24), 1,
       sym_expression,
     STATE(77), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6717,18 +7036,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6749,13 +7068,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(41), 1,
-      sym_expression,
     STATE(78), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(108), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6766,18 +7085,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6798,13 +7117,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(20), 1,
-      sym_expression,
     STATE(79), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(96), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6815,18 +7134,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6847,13 +7166,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(18), 1,
+    STATE(57), 1,
       sym_expression,
     STATE(80), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6864,18 +7183,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6896,13 +7215,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(26), 1,
+    STATE(25), 1,
       sym_expression,
     STATE(81), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6913,18 +7232,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6945,13 +7264,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(25), 1,
-      sym_expression,
     STATE(82), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(112), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -6962,18 +7281,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -6994,13 +7313,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(26), 1,
+      sym_expression,
     STATE(83), 1,
       sym_comment,
-    STATE(106), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7011,18 +7330,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7043,13 +7362,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(23), 1,
+    STATE(27), 1,
       sym_expression,
     STATE(84), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7060,18 +7379,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7092,13 +7411,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(32), 1,
+    STATE(28), 1,
       sym_expression,
     STATE(85), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7109,18 +7428,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7141,13 +7460,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(22), 1,
+    STATE(48), 1,
       sym_expression,
     STATE(86), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7158,18 +7477,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7190,13 +7509,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(24), 1,
+    STATE(20), 1,
       sym_expression,
     STATE(87), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7207,18 +7526,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7239,13 +7558,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(19), 1,
+      sym_expression,
     STATE(88), 1,
       sym_comment,
-    STATE(100), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7256,18 +7575,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7288,13 +7607,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(21), 1,
-      sym_expression,
     STATE(89), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(111), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7305,18 +7624,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7337,13 +7656,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(18), 1,
+      sym_expression,
     STATE(90), 1,
       sym_comment,
-    STATE(109), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7354,18 +7673,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7386,13 +7705,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
+    STATE(32), 1,
+      sym_expression,
     STATE(91), 1,
       sym_comment,
-    STATE(99), 1,
-      sym_expression,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7403,18 +7722,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7435,13 +7754,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(49), 1,
+    STATE(44), 1,
       sym_expression,
     STATE(92), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7452,18 +7771,18 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
@@ -7484,13 +7803,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LBRACE,
     ACTIONS(252), 1,
       sym__string_start,
-    STATE(57), 1,
-      sym_expression,
     STATE(93), 1,
       sym_comment,
-    STATE(148), 1,
-      sym__prefix_expression,
+    STATE(107), 1,
+      sym_expression,
     STATE(152), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
       sym_method_index_expression,
     ACTIONS(244), 2,
       sym_number,
@@ -7501,89 +7820,45 @@ static const uint16_t ts_small_parse_table[] = {
     ACTIONS(250), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(3), 2,
+    STATE(2), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
     ACTIONS(242), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(5), 3,
+    STATE(11), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(29), 5,
+    STATE(36), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6854] = 18,
+  [6854] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
-    ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
-      anon_sym_PLUS,
-    ACTIONS(119), 1,
-      anon_sym_DASH,
-    ACTIONS(123), 1,
-      anon_sym_SLASH,
-    ACTIONS(125), 1,
-      anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
-      anon_sym_CARET,
-    ACTIONS(268), 1,
-      anon_sym_or,
-    ACTIONS(270), 1,
-      anon_sym_and,
-    STATE(94), 1,
-      sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(121), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(286), 3,
-      anon_sym_SEMI,
+    ACTIONS(290), 1,
       anon_sym_COMMA,
-      anon_sym_RBRACE,
-    ACTIONS(107), 4,
-      anon_sym_LT_EQ,
-      anon_sym_EQ_EQ,
-      anon_sym_TILDE_EQ,
-      anon_sym_GT_EQ,
-  [6918] = 7,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(55), 1,
-      anon_sym_COLON,
-    STATE(95), 1,
+    ACTIONS(292), 1,
+      anon_sym_LT,
+    STATE(94), 1,
       sym_comment,
-    ACTIONS(288), 3,
+    STATE(102), 1,
+      aux_sym__att_name_list_repeat1,
+    STATE(113), 1,
+      sym__attrib,
+    ACTIONS(286), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_EQ,
       anon_sym_COLON_COLON,
-    ACTIONS(57), 5,
-      sym__string_start,
-      anon_sym_DOT,
       anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-    ACTIONS(290), 15,
+    ACTIONS(288), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -7599,242 +7874,212 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [6960] = 20,
+  [6900] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(276), 1,
-      anon_sym_COMMA,
-    ACTIONS(292), 1,
-      anon_sym_RPAREN,
-    STATE(96), 1,
+    STATE(95), 1,
       sym_comment,
-    STATE(180), 1,
-      aux_sym__expression_list_repeat1,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(294), 3,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7028] = 18,
+  [6964] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    STATE(97), 1,
+    STATE(96), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(294), 3,
+    ACTIONS(296), 3,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_RBRACE,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7092] = 6,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(300), 1,
-      anon_sym_COMMA,
-    STATE(98), 2,
-      sym_comment,
-      aux_sym__name_list_repeat1,
-    ACTIONS(296), 6,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_EQ,
-      anon_sym_COLON_COLON,
-      anon_sym_LPAREN,
-      anon_sym_RPAREN,
-    ACTIONS(298), 16,
-      anon_sym_return,
-      sym_break_statement,
-      anon_sym_goto,
-      anon_sym_do,
-      anon_sym_end,
-      anon_sym_while,
-      anon_sym_repeat,
-      anon_sym_until,
-      anon_sym_if,
-      anon_sym_elseif,
-      anon_sym_else,
-      anon_sym_for,
-      anon_sym_in,
-      anon_sym_function,
-      anon_sym_local,
-      sym_identifier,
-  [7132] = 18,
+  [7028] = 20,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    STATE(99), 1,
+    ACTIONS(274), 1,
+      anon_sym_COMMA,
+    ACTIONS(298), 1,
+      anon_sym_RPAREN,
+    STATE(97), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    STATE(192), 1,
+      aux_sym__expression_list_repeat1,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(303), 3,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7196] = 19,
+  [7096] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(305), 1,
-      anon_sym_COMMA,
-    ACTIONS(307), 1,
-      anon_sym_do,
-    STATE(100), 1,
+    STATE(98), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(300), 3,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7261] = 5,
+  [7160] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(101), 1,
+    ACTIONS(79), 1,
+      anon_sym_COLON,
+    STATE(99), 1,
       sym_comment,
-    ACTIONS(309), 7,
+    ACTIONS(302), 3,
       ts_builtin_sym_end,
       anon_sym_SEMI,
-      anon_sym_EQ,
-      anon_sym_COMMA,
       anon_sym_COLON_COLON,
+    ACTIONS(81), 5,
+      sym__string_start,
+      anon_sym_DOT,
       anon_sym_LPAREN,
-      anon_sym_RPAREN,
-    ACTIONS(311), 16,
+      anon_sym_LBRACK,
+      anon_sym_LBRACE,
+    ACTIONS(304), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -7847,28 +8092,28 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_elseif,
       anon_sym_else,
       anon_sym_for,
-      anon_sym_in,
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7298] = 7,
+  [7202] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(317), 1,
-      anon_sym_COMMA,
-    STATE(98), 1,
-      aux_sym__name_list_repeat1,
-    STATE(102), 1,
+    ACTIONS(292), 1,
+      anon_sym_LT,
+    STATE(100), 1,
       sym_comment,
-    ACTIONS(313), 5,
+    STATE(117), 1,
+      sym__attrib,
+    ACTIONS(306), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_EQ,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(315), 16,
+    ACTIONS(308), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -7881,72 +8126,73 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_elseif,
       anon_sym_else,
       anon_sym_for,
-      anon_sym_in,
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7339] = 18,
+  [7243] = 19,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(319), 1,
-      anon_sym_then,
-    STATE(103), 1,
+    ACTIONS(310), 1,
+      anon_sym_COMMA,
+    ACTIONS(312), 1,
+      anon_sym_do,
+    STATE(101), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7401] = 7,
+  [7308] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(317), 1,
+    ACTIONS(290), 1,
       anon_sym_COMMA,
     STATE(102), 1,
-      aux_sym__name_list_repeat1,
-    STATE(104), 1,
       sym_comment,
-    ACTIONS(321), 5,
+    STATE(105), 1,
+      aux_sym__att_name_list_repeat1,
+    ACTIONS(314), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_EQ,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(323), 15,
+    ACTIONS(316), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -7962,330 +8208,441 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7441] = 18,
+  [7348] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(325), 1,
+    ACTIONS(318), 1,
       anon_sym_then,
-    STATE(105), 1,
+    STATE(103), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7503] = 18,
+  [7410] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(327), 1,
-      anon_sym_COMMA,
-    STATE(106), 1,
+    ACTIONS(320), 1,
+      anon_sym_then,
+    STATE(104), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7565] = 18,
+  [7472] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(326), 1,
+      anon_sym_COMMA,
+    STATE(105), 2,
+      sym_comment,
+      aux_sym__att_name_list_repeat1,
+    ACTIONS(322), 5,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(324), 15,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      sym_identifier,
+  [7510] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(290), 1,
+      anon_sym_COMMA,
+    STATE(105), 1,
+      aux_sym__att_name_list_repeat1,
+    STATE(106), 1,
+      sym_comment,
+    ACTIONS(329), 5,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(331), 15,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      sym_identifier,
+  [7550] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(329), 1,
-      anon_sym_RBRACK,
+    ACTIONS(333), 1,
+      anon_sym_COMMA,
     STATE(107), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7627] = 18,
+  [7612] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(331), 1,
-      anon_sym_RBRACK,
+    ACTIONS(335), 1,
+      anon_sym_do,
     STATE(108), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7689] = 18,
+  [7674] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(333), 1,
+    ACTIONS(337), 1,
       anon_sym_do,
     STATE(109), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7751] = 18,
+  [7736] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(335), 1,
+    ACTIONS(339), 1,
       anon_sym_RPAREN,
     STATE(110), 1,
       sym_comment,
-    ACTIONS(105), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7813] = 18,
+  [7798] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(109), 1,
-      anon_sym_PIPE,
     ACTIONS(111), 1,
-      anon_sym_TILDE,
-    ACTIONS(113), 1,
-      anon_sym_AMP,
-    ACTIONS(117), 1,
       anon_sym_PLUS,
-    ACTIONS(119), 1,
+    ACTIONS(113), 1,
       anon_sym_DASH,
-    ACTIONS(123), 1,
+    ACTIONS(117), 1,
       anon_sym_SLASH,
-    ACTIONS(125), 1,
+    ACTIONS(119), 1,
       anon_sym_DOT_DOT,
-    ACTIONS(127), 1,
+    ACTIONS(121), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
     ACTIONS(268), 1,
       anon_sym_or,
     ACTIONS(270), 1,
       anon_sym_and,
-    ACTIONS(337), 1,
-      anon_sym_do,
+    ACTIONS(341), 1,
+      anon_sym_RBRACK,
     STATE(111), 1,
       sym_comment,
-    ACTIONS(105), 2,
+    ACTIONS(127), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(133), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 2,
+    ACTIONS(115), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(135), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+  [7860] = 18,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(111), 1,
+      anon_sym_PLUS,
+    ACTIONS(113), 1,
+      anon_sym_DASH,
+    ACTIONS(117), 1,
+      anon_sym_SLASH,
+    ACTIONS(119), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(121), 1,
+      anon_sym_CARET,
+    ACTIONS(129), 1,
+      anon_sym_AMP,
+    ACTIONS(131), 1,
+      anon_sym_TILDE,
+    ACTIONS(137), 1,
+      anon_sym_PIPE,
+    ACTIONS(268), 1,
+      anon_sym_or,
+    ACTIONS(270), 1,
+      anon_sym_and,
+    ACTIONS(343), 1,
+      anon_sym_RBRACK,
+    STATE(112), 1,
+      sym_comment,
+    ACTIONS(127), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(121), 3,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(115), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(107), 4,
+    ACTIONS(135), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7875] = 6,
+  [7922] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(343), 1,
+    ACTIONS(290), 1,
       anon_sym_COMMA,
-    STATE(112), 2,
+    STATE(106), 1,
+      aux_sym__att_name_list_repeat1,
+    STATE(113), 1,
       sym_comment,
-      aux_sym__variable_assignment_explist_repeat1,
-    ACTIONS(339), 4,
+    ACTIONS(345), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_EQ,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(341), 15,
+    ACTIONS(347), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8301,23 +8658,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7912] = 7,
+  [7962] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(204), 1,
+    ACTIONS(353), 1,
       anon_sym_COMMA,
-    STATE(112), 1,
-      aux_sym__variable_assignment_explist_repeat1,
-    STATE(113), 1,
+    STATE(114), 2,
       sym_comment,
-    ACTIONS(346), 4,
+      aux_sym__variable_assignment_explist_repeat1,
+    ACTIONS(349), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(348), 15,
+    ACTIONS(351), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8333,44 +8689,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7951] = 6,
+  [7999] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(354), 1,
-      anon_sym_EQ,
+    ACTIONS(157), 1,
+      anon_sym_COMMA,
     STATE(114), 1,
+      aux_sym__variable_assignment_explist_repeat1,
+    STATE(115), 1,
       sym_comment,
-    ACTIONS(350), 4,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_COLON_COLON,
-      anon_sym_LPAREN,
-    ACTIONS(352), 15,
-      anon_sym_return,
-      sym_break_statement,
-      anon_sym_goto,
-      anon_sym_do,
-      anon_sym_end,
-      anon_sym_while,
-      anon_sym_repeat,
-      anon_sym_until,
-      anon_sym_if,
-      anon_sym_elseif,
-      anon_sym_else,
-      anon_sym_for,
-      anon_sym_function,
-      anon_sym_local,
-      sym_identifier,
-  [7987] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(115), 1,
-      sym_comment,
-    ACTIONS(356), 4,
+    ACTIONS(356), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
@@ -8391,16 +8721,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8020] = 5,
+  [8038] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(116), 1,
       sym_comment,
-    ACTIONS(360), 4,
+    ACTIONS(360), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
     ACTIONS(362), 15,
@@ -8419,16 +8751,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8053] = 5,
+  [8073] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(117), 1,
       sym_comment,
-    ACTIONS(364), 4,
+    ACTIONS(364), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
     ACTIONS(366), 15,
@@ -8447,11 +8781,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8086] = 5,
+  [8108] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
+    ACTIONS(372), 1,
+      anon_sym_EQ,
     STATE(118), 1,
       sym_comment,
     ACTIONS(368), 4,
@@ -8475,19 +8811,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8119] = 5,
+  [8144] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(119), 1,
       sym_comment,
-    ACTIONS(372), 4,
+    ACTIONS(374), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(374), 15,
+    ACTIONS(376), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8503,19 +8839,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8152] = 5,
+  [8177] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(120), 1,
       sym_comment,
-    ACTIONS(376), 4,
+    ACTIONS(378), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(378), 15,
+    ACTIONS(380), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8531,19 +8867,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8185] = 5,
+  [8210] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(121), 1,
       sym_comment,
-    ACTIONS(288), 4,
+    ACTIONS(302), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(290), 15,
+    ACTIONS(304), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8559,19 +8895,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8218] = 5,
+  [8243] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(122), 1,
       sym_comment,
-    ACTIONS(380), 4,
+    ACTIONS(382), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(382), 15,
+    ACTIONS(384), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8587,19 +8923,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8251] = 5,
+  [8276] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(123), 1,
       sym_comment,
-    ACTIONS(384), 4,
+    ACTIONS(386), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(386), 15,
+    ACTIONS(388), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8615,19 +8951,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8284] = 5,
+  [8309] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(124), 1,
       sym_comment,
-    ACTIONS(388), 4,
+    ACTIONS(390), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(390), 15,
+    ACTIONS(392), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8643,19 +8979,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8317] = 5,
+  [8342] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(125), 1,
       sym_comment,
-    ACTIONS(392), 4,
+    ACTIONS(394), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(394), 15,
+    ACTIONS(396), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8671,19 +9007,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8350] = 5,
+  [8375] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(126), 1,
       sym_comment,
-    ACTIONS(396), 4,
+    ACTIONS(398), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(398), 15,
+    ACTIONS(400), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8699,19 +9035,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8383] = 5,
+  [8408] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(127), 1,
       sym_comment,
-    ACTIONS(400), 4,
+    ACTIONS(402), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(402), 15,
+    ACTIONS(404), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8727,19 +9063,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8416] = 5,
+  [8441] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(128), 1,
       sym_comment,
-    ACTIONS(404), 4,
+    ACTIONS(406), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(406), 15,
+    ACTIONS(408), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8755,19 +9091,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8449] = 5,
+  [8474] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(129), 1,
       sym_comment,
-    ACTIONS(408), 4,
+    ACTIONS(410), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(410), 15,
+    ACTIONS(412), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8783,19 +9119,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8482] = 5,
+  [8507] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(130), 1,
       sym_comment,
-    ACTIONS(412), 4,
+    ACTIONS(414), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(414), 15,
+    ACTIONS(416), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8811,19 +9147,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8515] = 5,
+  [8540] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(131), 1,
       sym_comment,
-    ACTIONS(416), 4,
+    ACTIONS(418), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(418), 15,
+    ACTIONS(420), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8839,19 +9175,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8548] = 5,
+  [8573] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(132), 1,
       sym_comment,
-    ACTIONS(420), 4,
+    ACTIONS(422), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(422), 15,
+    ACTIONS(424), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8867,19 +9203,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8581] = 5,
+  [8606] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(133), 1,
       sym_comment,
-    ACTIONS(424), 4,
+    ACTIONS(426), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(426), 15,
+    ACTIONS(428), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8895,19 +9231,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8614] = 5,
+  [8639] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(134), 1,
       sym_comment,
-    ACTIONS(428), 4,
+    ACTIONS(430), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(430), 15,
+    ACTIONS(432), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8923,19 +9259,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8647] = 5,
+  [8672] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(135), 1,
       sym_comment,
-    ACTIONS(432), 4,
+    ACTIONS(434), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(434), 15,
+    ACTIONS(436), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8951,19 +9287,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8680] = 5,
+  [8705] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(136), 1,
       sym_comment,
-    ACTIONS(436), 4,
+    ACTIONS(438), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(438), 15,
+    ACTIONS(440), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8979,19 +9315,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8713] = 5,
+  [8738] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(137), 1,
       sym_comment,
-    ACTIONS(440), 4,
+    ACTIONS(442), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(442), 15,
+    ACTIONS(444), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9007,19 +9343,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8746] = 5,
+  [8771] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(138), 1,
       sym_comment,
-    ACTIONS(444), 4,
+    ACTIONS(446), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(446), 15,
+    ACTIONS(448), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9035,19 +9371,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8779] = 5,
+  [8804] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(139), 1,
       sym_comment,
-    ACTIONS(448), 4,
+    ACTIONS(450), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(450), 15,
+    ACTIONS(452), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9063,19 +9399,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8812] = 5,
+  [8837] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(140), 1,
       sym_comment,
-    ACTIONS(452), 4,
+    ACTIONS(454), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(454), 15,
+    ACTIONS(456), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9091,19 +9427,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8845] = 5,
+  [8870] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(141), 1,
       sym_comment,
-    ACTIONS(456), 4,
+    ACTIONS(458), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(458), 15,
+    ACTIONS(460), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9119,19 +9455,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8878] = 5,
+  [8903] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(142), 1,
       sym_comment,
-    ACTIONS(460), 4,
+    ACTIONS(462), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(462), 15,
+    ACTIONS(464), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9147,14 +9483,126 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8911] = 5,
+  [8936] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(143), 1,
       sym_comment,
-    ACTIONS(464), 7,
+    ACTIONS(466), 4,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(468), 15,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      sym_identifier,
+  [8969] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(144), 1,
+      sym_comment,
+    ACTIONS(470), 4,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(472), 15,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      sym_identifier,
+  [9002] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(145), 1,
+      sym_comment,
+    ACTIONS(474), 4,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(476), 15,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      sym_identifier,
+  [9035] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(146), 1,
+      sym_comment,
+    ACTIONS(478), 4,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(480), 15,
+      anon_sym_return,
+      sym_break_statement,
+      anon_sym_goto,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_while,
+      anon_sym_repeat,
+      anon_sym_until,
+      anon_sym_if,
+      anon_sym_elseif,
+      anon_sym_else,
+      anon_sym_for,
+      anon_sym_function,
+      anon_sym_local,
+      sym_identifier,
+  [9068] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(147), 1,
+      sym_comment,
+    ACTIONS(482), 7,
       anon_sym_function,
       sym_nil,
       sym_false,
@@ -9162,7 +9610,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_not,
       sym_identifier,
-    ACTIONS(466), 9,
+    ACTIONS(484), 9,
       sym__string_start,
       sym_number,
       sym_vararg_expression,
@@ -9172,18 +9620,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RBRACE,
       anon_sym_TILDE,
       anon_sym_POUND,
-  [8941] = 5,
+  [9098] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(144), 1,
+    STATE(148), 1,
       sym_comment,
-    ACTIONS(470), 3,
+    ACTIONS(488), 3,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(468), 12,
+    ACTIONS(486), 12,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9196,18 +9644,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8970] = 5,
+  [9127] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(145), 1,
+    STATE(149), 1,
       sym_comment,
-    ACTIONS(474), 3,
+    ACTIONS(492), 3,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(472), 12,
+    ACTIONS(490), 12,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9220,16 +9668,16 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8999] = 6,
+  [9156] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(266), 1,
       anon_sym_else,
-    ACTIONS(476), 1,
+    ACTIONS(494), 1,
       anon_sym_COMMA,
-    STATE(146), 2,
+    STATE(150), 2,
       sym_comment,
       aux_sym__expression_list_repeat1,
     ACTIONS(264), 7,
@@ -9240,1026 +9688,1090 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_until,
       anon_sym_elseif,
       anon_sym_RPAREN,
-  [9025] = 7,
+  [9182] = 10,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(276), 1,
-      anon_sym_COMMA,
-    ACTIONS(481), 1,
-      anon_sym_else,
-    STATE(146), 1,
-      aux_sym__expression_list_repeat1,
-    STATE(147), 1,
+    ACTIONS(37), 1,
+      anon_sym_LPAREN,
+    ACTIONS(497), 1,
+      sym_identifier,
+    STATE(151), 1,
       sym_comment,
-    ACTIONS(479), 6,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_do,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9052] = 11,
+    STATE(152), 1,
+      sym__prefix_expression,
+    STATE(155), 1,
+      sym_variable,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(2), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    STATE(156), 2,
+      sym_function_call,
+      sym_parenthesized_expression,
+  [9215] = 11,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(483), 1,
+    ACTIONS(499), 1,
       anon_sym_DOT,
-    ACTIONS(485), 1,
+    ACTIONS(501), 1,
       anon_sym_COLON,
-    ACTIONS(487), 1,
+    ACTIONS(503), 1,
       anon_sym_LPAREN,
-    ACTIONS(489), 1,
+    ACTIONS(505), 1,
       anon_sym_LBRACK,
-    ACTIONS(491), 1,
+    ACTIONS(507), 1,
       anon_sym_LBRACE,
-    ACTIONS(493), 1,
+    ACTIONS(509), 1,
       sym__string_start,
-    STATE(12), 1,
+    STATE(5), 1,
       sym_arguments,
-    STATE(148), 1,
+    STATE(152), 1,
       sym_comment,
-    STATE(13), 2,
+    STATE(7), 2,
       sym_string,
       sym_table_constructor,
-  [9087] = 10,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(37), 1,
-      anon_sym_LPAREN,
-    ACTIONS(495), 1,
-      sym_identifier,
-    STATE(148), 1,
-      sym__prefix_expression,
-    STATE(149), 1,
-      sym_comment,
-    STATE(151), 1,
-      sym_variable,
-    STATE(152), 1,
-      sym_method_index_expression,
-    STATE(3), 2,
-      sym_bracket_index_expression,
-      sym_dot_index_expression,
-    STATE(155), 2,
-      sym_function_call,
-      sym_parenthesized_expression,
-  [9120] = 7,
+  [9250] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(497), 1,
+    ACTIONS(511), 1,
       anon_sym_EQ,
-    ACTIONS(499), 1,
+    ACTIONS(513), 1,
       anon_sym_COMMA,
-    STATE(150), 1,
+    STATE(153), 1,
       sym_comment,
-    STATE(181), 1,
+    STATE(184), 1,
       aux_sym__variable_assignment_varlist_repeat1,
-    ACTIONS(57), 6,
+    ACTIONS(81), 6,
       sym__string_start,
       anon_sym_DOT,
       anon_sym_COLON,
       anon_sym_LPAREN,
       anon_sym_LBRACK,
       anon_sym_LBRACE,
-  [9147] = 5,
+  [9277] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(151), 1,
+    ACTIONS(274), 1,
+      anon_sym_COMMA,
+    ACTIONS(517), 1,
+      anon_sym_else,
+    STATE(150), 1,
+      aux_sym__expression_list_repeat1,
+    STATE(154), 1,
+      sym_comment,
+    ACTIONS(515), 6,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [9304] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(155), 1,
       sym_comment,
-    ACTIONS(501), 2,
+    ACTIONS(519), 2,
       anon_sym_EQ,
       anon_sym_COMMA,
-    ACTIONS(57), 6,
+    ACTIONS(81), 6,
       sym__string_start,
       anon_sym_DOT,
       anon_sym_COLON,
       anon_sym_LPAREN,
       anon_sym_LBRACK,
       anon_sym_LBRACE,
-  [9169] = 8,
+  [9326] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(487), 1,
+    STATE(156), 1,
+      sym_comment,
+    ACTIONS(81), 6,
+      sym__string_start,
+      anon_sym_DOT,
+      anon_sym_COLON,
       anon_sym_LPAREN,
-    ACTIONS(491), 1,
+      anon_sym_LBRACK,
       anon_sym_LBRACE,
-    ACTIONS(493), 1,
-      sym__string_start,
-    STATE(12), 1,
-      sym_arguments,
-    STATE(152), 1,
-      sym_comment,
-    STATE(13), 2,
-      sym_string,
-      sym_table_constructor,
-  [9195] = 9,
+  [9344] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(135), 1,
+    ACTIONS(523), 1,
+      anon_sym_SEMI,
+    ACTIONS(525), 1,
       anon_sym_else,
-    ACTIONS(503), 1,
+    STATE(157), 1,
+      sym_comment,
+    ACTIONS(521), 4,
+      ts_builtin_sym_end,
       anon_sym_end,
-    ACTIONS(505), 1,
+      anon_sym_until,
       anon_sym_elseif,
-    STATE(153), 1,
-      sym_comment,
-    STATE(158), 1,
-      aux_sym_if_statement_repeat1,
-    STATE(178), 1,
-      sym_elseif_statement,
-    STATE(217), 1,
-      sym_else_statement,
-  [9223] = 6,
+  [9366] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(509), 1,
-      anon_sym_SEMI,
-    ACTIONS(511), 1,
+    ACTIONS(147), 1,
       anon_sym_else,
-    STATE(154), 1,
-      sym_comment,
-    ACTIONS(507), 4,
-      ts_builtin_sym_end,
+    ACTIONS(527), 1,
       anon_sym_end,
-      anon_sym_until,
+    ACTIONS(529), 1,
       anon_sym_elseif,
-  [9245] = 4,
+    STATE(158), 1,
+      sym_comment,
+    STATE(163), 1,
+      aux_sym_if_statement_repeat1,
+    STATE(191), 1,
+      sym_elseif_statement,
+    STATE(227), 1,
+      sym_else_statement,
+  [9394] = 8,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(155), 1,
-      sym_comment,
-    ACTIONS(57), 6,
-      sym__string_start,
-      anon_sym_DOT,
-      anon_sym_COLON,
+    ACTIONS(503), 1,
       anon_sym_LPAREN,
-      anon_sym_LBRACK,
+    ACTIONS(507), 1,
       anon_sym_LBRACE,
-  [9263] = 9,
+    ACTIONS(509), 1,
+      sym__string_start,
+    STATE(5), 1,
+      sym_arguments,
+    STATE(159), 1,
+      sym_comment,
+    STATE(7), 2,
+      sym_string,
+      sym_table_constructor,
+  [9420] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(135), 1,
+    ACTIONS(147), 1,
       anon_sym_else,
-    ACTIONS(505), 1,
+    ACTIONS(529), 1,
       anon_sym_elseif,
-    ACTIONS(513), 1,
+    ACTIONS(531), 1,
       anon_sym_end,
-    STATE(153), 1,
+    STATE(158), 1,
       aux_sym_if_statement_repeat1,
-    STATE(156), 1,
+    STATE(160), 1,
       sym_comment,
-    STATE(178), 1,
+    STATE(191), 1,
       sym_elseif_statement,
-    STATE(201), 1,
+    STATE(207), 1,
       sym_else_statement,
-  [9291] = 9,
+  [9448] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(135), 1,
+    ACTIONS(147), 1,
       anon_sym_else,
-    ACTIONS(505), 1,
+    ACTIONS(529), 1,
       anon_sym_elseif,
-    ACTIONS(515), 1,
+    ACTIONS(533), 1,
       anon_sym_end,
-    STATE(157), 1,
+    STATE(161), 1,
       sym_comment,
-    STATE(158), 1,
+    STATE(163), 1,
       aux_sym_if_statement_repeat1,
-    STATE(178), 1,
+    STATE(191), 1,
       sym_elseif_statement,
-    STATE(203), 1,
+    STATE(211), 1,
       sym_else_statement,
-  [9319] = 7,
+  [9476] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(517), 1,
+    ACTIONS(282), 1,
+      anon_sym_RBRACE,
+    STATE(59), 1,
+      sym__field_sep,
+    STATE(162), 1,
+      sym_comment,
+    STATE(168), 1,
+      aux_sym__field_list_repeat1,
+    ACTIONS(535), 2,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+  [9499] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(537), 1,
       anon_sym_end,
-    ACTIONS(519), 1,
+    ACTIONS(539), 1,
       anon_sym_elseif,
-    ACTIONS(522), 1,
+    ACTIONS(542), 1,
       anon_sym_else,
-    STATE(178), 1,
+    STATE(191), 1,
       sym_elseif_statement,
-    STATE(158), 2,
+    STATE(163), 2,
       sym_comment,
       aux_sym_if_statement_repeat1,
-  [9342] = 6,
+  [9522] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(527), 1,
-      anon_sym_RBRACE,
-    STATE(62), 1,
-      sym__field_sep,
-    ACTIONS(524), 2,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-    STATE(159), 2,
+    ACTIONS(546), 1,
+      anon_sym_else,
+    STATE(164), 1,
       sym_comment,
-      aux_sym__field_list_repeat1,
-  [9363] = 7,
+    ACTIONS(544), 4,
+      ts_builtin_sym_end,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [9541] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(272), 1,
-      anon_sym_RBRACE,
-    STATE(61), 1,
-      sym__field_sep,
-    STATE(159), 1,
-      aux_sym__field_list_repeat1,
-    STATE(160), 1,
+    ACTIONS(525), 1,
+      anon_sym_else,
+    STATE(165), 1,
       sym_comment,
-    ACTIONS(529), 2,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-  [9386] = 7,
+    ACTIONS(521), 4,
+      ts_builtin_sym_end,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [9560] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(531), 1,
+    ACTIONS(548), 1,
       anon_sym_RBRACE,
-    STATE(58), 1,
+    STATE(61), 1,
       sym__field_sep,
-    STATE(160), 1,
+    STATE(162), 1,
       aux_sym__field_list_repeat1,
-    STATE(161), 1,
+    STATE(166), 1,
       sym_comment,
-    ACTIONS(529), 2,
+    ACTIONS(535), 2,
       anon_sym_SEMI,
       anon_sym_COMMA,
-  [9409] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(535), 1,
-      anon_sym_else,
-    STATE(162), 1,
-      sym_comment,
-    ACTIONS(533), 4,
-      ts_builtin_sym_end,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9428] = 8,
+  [9583] = 8,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(537), 1,
+    ACTIONS(550), 1,
       sym_identifier,
-    STATE(163), 1,
+    STATE(167), 1,
       sym_comment,
-    STATE(183), 1,
-      sym__function_name_prefix_expression,
-    STATE(184), 1,
+    STATE(176), 1,
       sym__function_name,
-    STATE(185), 1,
+    STATE(182), 1,
+      sym__function_name_prefix_expression,
+    STATE(183), 1,
       sym__function_name_dot_index_expression,
-    STATE(192), 1,
+    STATE(216), 1,
       sym__function_name_method_index_expression,
-  [9453] = 5,
+  [9608] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(511), 1,
-      anon_sym_else,
-    STATE(164), 1,
+    ACTIONS(555), 1,
+      anon_sym_RBRACE,
+    STATE(62), 1,
+      sym__field_sep,
+    ACTIONS(552), 2,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+    STATE(168), 2,
       sym_comment,
-    ACTIONS(507), 4,
-      ts_builtin_sym_end,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9472] = 7,
+      aux_sym__field_list_repeat1,
+  [9629] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(317), 1,
+    ACTIONS(557), 1,
       anon_sym_COMMA,
-    ACTIONS(321), 1,
+    ACTIONS(560), 2,
       anon_sym_in,
-    ACTIONS(539), 1,
-      anon_sym_EQ,
-    STATE(102), 1,
-      aux_sym__name_list_repeat1,
-    STATE(165), 1,
+      anon_sym_RPAREN,
+    STATE(169), 2,
       sym_comment,
-  [9494] = 5,
+      aux_sym__name_list_repeat1,
+  [9647] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(153), 1,
+    ACTIONS(206), 1,
       anon_sym_else,
-    STATE(166), 1,
+    STATE(170), 1,
       sym_comment,
-    ACTIONS(541), 3,
+    ACTIONS(562), 3,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
-  [9512] = 5,
+  [9665] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(545), 1,
-      anon_sym_else,
-    STATE(167), 1,
+    ACTIONS(564), 1,
+      sym_identifier,
+    ACTIONS(566), 1,
+      anon_sym_function,
+    STATE(118), 1,
+      sym__att_name_list,
+    STATE(134), 1,
+      sym__local_variable_assignment,
+    STATE(171), 1,
       sym_comment,
-    ACTIONS(543), 3,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9530] = 7,
+  [9687] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(547), 1,
+    ACTIONS(568), 1,
       sym_identifier,
-    ACTIONS(549), 1,
+    ACTIONS(570), 1,
       sym_vararg_expression,
-    ACTIONS(551), 1,
+    ACTIONS(572), 1,
       anon_sym_RPAREN,
-    STATE(168), 1,
+    STATE(172), 1,
       sym_comment,
-    STATE(212), 1,
+    STATE(229), 1,
       sym__parameter_list,
-  [9552] = 7,
+  [9709] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(553), 1,
-      sym_identifier,
-    ACTIONS(555), 1,
-      anon_sym_function,
-    STATE(114), 1,
-      sym__name_list,
-    STATE(137), 1,
-      sym__local_variable_assignment,
-    STATE(169), 1,
+    ACTIONS(576), 1,
+      anon_sym_else,
+    STATE(173), 1,
       sym_comment,
-  [9574] = 6,
+    ACTIONS(574), 3,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [9727] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(557), 1,
+    ACTIONS(578), 1,
       sym_identifier,
-    STATE(170), 1,
+    STATE(174), 1,
       sym_comment,
-    STATE(199), 1,
+    STATE(205), 1,
       sym__name_list,
-    STATE(198), 2,
+    STATE(234), 2,
       sym_for_generic_clause,
       sym_for_numeric_clause,
-  [9594] = 6,
+  [9747] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(559), 1,
-      anon_sym_LPAREN,
-    STATE(31), 1,
-      sym__function_body,
-    STATE(46), 1,
-      sym_parameters,
-    STATE(171), 1,
-      sym_comment,
-  [9613] = 4,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(172), 1,
-      sym_comment,
-    ACTIONS(527), 3,
-      anon_sym_SEMI,
+    ACTIONS(580), 1,
+      anon_sym_EQ,
+    ACTIONS(582), 1,
       anon_sym_COMMA,
-      anon_sym_RBRACE,
-  [9628] = 6,
+    ACTIONS(584), 1,
+      anon_sym_in,
+    STATE(175), 1,
+      sym_comment,
+    STATE(193), 1,
+      aux_sym__name_list_repeat1,
+  [9769] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(559), 1,
+    ACTIONS(586), 1,
       anon_sym_LPAREN,
-    STATE(46), 1,
+    STATE(43), 1,
       sym_parameters,
-    STATE(118), 1,
+    STATE(124), 1,
       sym__function_body,
-    STATE(173), 1,
-      sym_comment,
-  [9647] = 4,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(174), 1,
-      sym_comment,
-    ACTIONS(561), 3,
-      sym__string_start,
-      anon_sym_LPAREN,
-      anon_sym_LBRACE,
-  [9662] = 4,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(175), 1,
-      sym_comment,
-    ACTIONS(563), 3,
-      anon_sym_DOT,
-      anon_sym_COLON,
-      anon_sym_LPAREN,
-  [9677] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(567), 1,
-      anon_sym_else,
     STATE(176), 1,
       sym_comment,
-    ACTIONS(565), 2,
-      anon_sym_end,
-      anon_sym_elseif,
-  [9694] = 5,
+  [9788] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(569), 1,
-      anon_sym_EQ,
-    ACTIONS(571), 1,
-      anon_sym_COMMA,
-    STATE(177), 2,
+    STATE(177), 1,
       sym_comment,
-      aux_sym__variable_assignment_varlist_repeat1,
-  [9711] = 5,
+    ACTIONS(588), 3,
+      anon_sym_COMMA,
+      anon_sym_in,
+      anon_sym_RPAREN,
+  [9803] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(576), 1,
+    ACTIONS(592), 1,
       anon_sym_else,
     STATE(178), 1,
       sym_comment,
-    ACTIONS(574), 2,
+    ACTIONS(590), 2,
       anon_sym_end,
       anon_sym_elseif,
-  [9728] = 6,
+  [9820] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(578), 1,
-      anon_sym_COMMA,
-    ACTIONS(580), 1,
-      anon_sym_RPAREN,
+    ACTIONS(586), 1,
+      anon_sym_LPAREN,
+    STATE(30), 1,
+      sym__function_body,
+    STATE(43), 1,
+      sym_parameters,
     STATE(179), 1,
       sym_comment,
-    STATE(182), 1,
-      aux_sym__name_list_repeat1,
-  [9747] = 6,
+  [9839] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(276), 1,
-      anon_sym_COMMA,
-    ACTIONS(582), 1,
-      anon_sym_RPAREN,
-    STATE(146), 1,
-      aux_sym__expression_list_repeat1,
     STATE(180), 1,
       sym_comment,
-  [9766] = 6,
+    ACTIONS(594), 3,
+      anon_sym_DOT,
+      anon_sym_COLON,
+      anon_sym_LPAREN,
+  [9854] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(499), 1,
-      anon_sym_COMMA,
-    ACTIONS(584), 1,
-      anon_sym_EQ,
-    STATE(177), 1,
-      aux_sym__variable_assignment_varlist_repeat1,
     STATE(181), 1,
       sym_comment,
-  [9785] = 6,
+    ACTIONS(596), 3,
+      anon_sym_DOT,
+      anon_sym_COLON,
+      anon_sym_LPAREN,
+  [9869] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(586), 1,
-      anon_sym_COMMA,
-    ACTIONS(588), 1,
-      anon_sym_RPAREN,
-    STATE(98), 1,
-      aux_sym__name_list_repeat1,
+    ACTIONS(598), 1,
+      anon_sym_DOT,
+    ACTIONS(600), 1,
+      anon_sym_COLON,
+    ACTIONS(602), 1,
+      anon_sym_LPAREN,
     STATE(182), 1,
       sym_comment,
-  [9804] = 6,
+  [9888] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(590), 1,
+    STATE(183), 1,
+      sym_comment,
+    ACTIONS(604), 3,
       anon_sym_DOT,
-    ACTIONS(592), 1,
       anon_sym_COLON,
-    ACTIONS(594), 1,
       anon_sym_LPAREN,
-    STATE(183), 1,
-      sym_comment,
-  [9823] = 6,
+  [9903] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(559), 1,
-      anon_sym_LPAREN,
-    STATE(46), 1,
-      sym_parameters,
-    STATE(120), 1,
-      sym__function_body,
+    ACTIONS(513), 1,
+      anon_sym_COMMA,
+    ACTIONS(606), 1,
+      anon_sym_EQ,
     STATE(184), 1,
       sym_comment,
-  [9842] = 4,
+    STATE(188), 1,
+      aux_sym__variable_assignment_varlist_repeat1,
+  [9922] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
+    ACTIONS(608), 1,
+      anon_sym_COMMA,
+    ACTIONS(610), 1,
+      anon_sym_RPAREN,
+    STATE(169), 1,
+      aux_sym__name_list_repeat1,
     STATE(185), 1,
       sym_comment,
-    ACTIONS(596), 3,
-      anon_sym_DOT,
-      anon_sym_COLON,
-      anon_sym_LPAREN,
-  [9857] = 4,
+  [9941] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
+    ACTIONS(586), 1,
+      anon_sym_LPAREN,
+    STATE(43), 1,
+      sym_parameters,
+    STATE(138), 1,
+      sym__function_body,
     STATE(186), 1,
       sym_comment,
-    ACTIONS(598), 3,
-      anon_sym_DOT,
-      anon_sym_COLON,
-      anon_sym_LPAREN,
-  [9872] = 5,
+  [9960] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(600), 1,
-      sym__string_content,
-    ACTIONS(602), 1,
-      sym__string_end,
     STATE(187), 1,
       sym_comment,
-  [9888] = 5,
+    ACTIONS(555), 3,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+  [9975] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(604), 1,
-      sym__block_comment_content,
-    ACTIONS(606), 1,
-      sym__block_comment_end,
-    STATE(188), 1,
+    ACTIONS(612), 1,
+      anon_sym_EQ,
+    ACTIONS(614), 1,
+      anon_sym_COMMA,
+    STATE(188), 2,
       sym_comment,
-  [9904] = 5,
+      aux_sym__variable_assignment_varlist_repeat1,
+  [9992] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(608), 1,
-      sym__string_content,
-    ACTIONS(610), 1,
-      sym__string_end,
     STATE(189), 1,
       sym_comment,
-  [9920] = 5,
+    ACTIONS(617), 3,
+      sym__string_start,
+      anon_sym_LPAREN,
+      anon_sym_LBRACE,
+  [10007] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(612), 1,
-      sym_identifier,
-    ACTIONS(614), 1,
-      sym_vararg_expression,
+    ACTIONS(619), 1,
+      anon_sym_COMMA,
+    ACTIONS(621), 1,
+      anon_sym_RPAREN,
+    STATE(185), 1,
+      aux_sym__name_list_repeat1,
     STATE(190), 1,
       sym_comment,
-  [9936] = 5,
+  [10026] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(612), 1,
-      sym_identifier,
-    ACTIONS(616), 1,
-      sym_vararg_expression,
+    ACTIONS(625), 1,
+      anon_sym_else,
     STATE(191), 1,
       sym_comment,
-  [9952] = 4,
+    ACTIONS(623), 2,
+      anon_sym_end,
+      anon_sym_elseif,
+  [10043] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(618), 1,
-      anon_sym_LPAREN,
+    ACTIONS(274), 1,
+      anon_sym_COMMA,
+    ACTIONS(627), 1,
+      anon_sym_RPAREN,
+    STATE(150), 1,
+      aux_sym__expression_list_repeat1,
     STATE(192), 1,
       sym_comment,
-  [9965] = 4,
+  [10062] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(620), 1,
-      anon_sym_EQ,
+    ACTIONS(582), 1,
+      anon_sym_COMMA,
+    ACTIONS(629), 1,
+      anon_sym_in,
+    STATE(169), 1,
+      aux_sym__name_list_repeat1,
     STATE(193), 1,
       sym_comment,
-  [9978] = 4,
+  [10081] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(622), 1,
-      sym__block_comment_end,
+    ACTIONS(631), 1,
+      sym__string_content,
+    ACTIONS(633), 1,
+      sym__string_end,
     STATE(194), 1,
       sym_comment,
-  [9991] = 4,
+  [10097] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(624), 1,
-      anon_sym_EQ,
+    ACTIONS(635), 1,
+      sym_identifier,
+    ACTIONS(637), 1,
+      sym_vararg_expression,
     STATE(195), 1,
       sym_comment,
-  [10004] = 4,
+  [10113] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(626), 1,
-      anon_sym_end,
+    ACTIONS(639), 1,
+      sym__string_content,
+    ACTIONS(641), 1,
+      sym__string_end,
     STATE(196), 1,
       sym_comment,
-  [10017] = 4,
+  [10129] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(628), 1,
-      anon_sym_until,
+    ACTIONS(635), 1,
+      sym_identifier,
+    ACTIONS(643), 1,
+      sym_vararg_expression,
     STATE(197), 1,
       sym_comment,
-  [10030] = 4,
+  [10145] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(630), 1,
-      anon_sym_do,
+    ACTIONS(645), 1,
+      sym__block_comment_content,
+    ACTIONS(647), 1,
+      sym__block_comment_end,
     STATE(198), 1,
       sym_comment,
-  [10043] = 4,
+  [10161] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(632), 1,
-      anon_sym_in,
+    ACTIONS(649), 1,
+      anon_sym_LPAREN,
     STATE(199), 1,
       sym_comment,
-  [10056] = 4,
+  [10174] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(634), 1,
+    ACTIONS(651), 1,
       anon_sym_end,
     STATE(200), 1,
       sym_comment,
-  [10069] = 4,
+  [10187] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(636), 1,
-      anon_sym_end,
+    ACTIONS(653), 1,
+      sym_identifier,
     STATE(201), 1,
       sym_comment,
-  [10082] = 4,
+  [10200] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(638), 1,
-      anon_sym_COLON_COLON,
+    ACTIONS(655), 1,
+      anon_sym_EQ,
     STATE(202), 1,
       sym_comment,
-  [10095] = 4,
+  [10213] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(640), 1,
-      anon_sym_end,
+    ACTIONS(657), 1,
+      sym_identifier,
     STATE(203), 1,
       sym_comment,
-  [10108] = 4,
+  [10226] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(642), 1,
+    ACTIONS(635), 1,
       sym_identifier,
     STATE(204), 1,
       sym_comment,
-  [10121] = 4,
+  [10239] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(644), 1,
-      sym_identifier,
+    ACTIONS(659), 1,
+      anon_sym_in,
     STATE(205), 1,
       sym_comment,
-  [10134] = 4,
+  [10252] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(646), 1,
-      sym_identifier,
+    ACTIONS(661), 1,
+      anon_sym_RBRACE,
     STATE(206), 1,
       sym_comment,
-  [10147] = 4,
+  [10265] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(612), 1,
-      sym_identifier,
+    ACTIONS(663), 1,
+      anon_sym_end,
     STATE(207), 1,
       sym_comment,
-  [10160] = 4,
+  [10278] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(648), 1,
-      anon_sym_end,
+    ACTIONS(665), 1,
+      sym__string_end,
     STATE(208), 1,
       sym_comment,
-  [10173] = 4,
+  [10291] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(650), 1,
-      anon_sym_RBRACE,
+    ACTIONS(667), 1,
+      ts_builtin_sym_end,
     STATE(209), 1,
       sym_comment,
-  [10186] = 4,
+  [10304] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(652), 1,
-      anon_sym_RPAREN,
+    ACTIONS(669), 1,
+      anon_sym_RBRACE,
     STATE(210), 1,
       sym_comment,
-  [10199] = 4,
+  [10317] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(654), 1,
-      sym__string_end,
+    ACTIONS(671), 1,
+      anon_sym_end,
     STATE(211), 1,
       sym_comment,
-  [10212] = 4,
+  [10330] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(656), 1,
-      anon_sym_RPAREN,
+    ACTIONS(673), 1,
+      sym_identifier,
     STATE(212), 1,
       sym_comment,
-  [10225] = 4,
+  [10343] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(658), 1,
-      anon_sym_end,
+    ACTIONS(675), 1,
+      sym_identifier,
     STATE(213), 1,
       sym_comment,
-  [10238] = 4,
+  [10356] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(234), 1,
-      ts_builtin_sym_end,
+    ACTIONS(677), 1,
+      sym_identifier,
     STATE(214), 1,
       sym_comment,
-  [10251] = 4,
+  [10369] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(660), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(662), 1,
-      aux_sym_comment_token1,
+    ACTIONS(679), 1,
+      sym_identifier,
     STATE(215), 1,
       sym_comment,
-  [10264] = 4,
+  [10382] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(664), 1,
-      anon_sym_RPAREN,
+    ACTIONS(681), 1,
+      anon_sym_LPAREN,
     STATE(216), 1,
       sym_comment,
-  [10277] = 4,
+  [10395] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(666), 1,
+    ACTIONS(683), 1,
       anon_sym_end,
     STATE(217), 1,
       sym_comment,
-  [10290] = 4,
+  [10408] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(668), 1,
-      ts_builtin_sym_end,
+    ACTIONS(685), 1,
+      anon_sym_end,
     STATE(218), 1,
       sym_comment,
-  [10303] = 4,
+  [10421] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(232), 1,
-      ts_builtin_sym_end,
+    ACTIONS(687), 1,
+      anon_sym_GT,
     STATE(219), 1,
       sym_comment,
-  [10316] = 4,
+  [10434] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(670), 1,
+    ACTIONS(689), 1,
       anon_sym_RPAREN,
     STATE(220), 1,
       sym_comment,
-  [10329] = 4,
+  [10447] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(672), 1,
-      ts_builtin_sym_end,
+    ACTIONS(691), 1,
+      sym__string_end,
     STATE(221), 1,
       sym_comment,
-  [10342] = 4,
+  [10460] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(674), 1,
+    ACTIONS(693), 1,
       anon_sym_end,
     STATE(222), 1,
       sym_comment,
-  [10355] = 4,
+  [10473] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(676), 1,
-      sym__string_end,
+    ACTIONS(695), 1,
+      sym_identifier,
     STATE(223), 1,
       sym_comment,
-  [10368] = 4,
+  [10486] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(678), 1,
-      anon_sym_RBRACE,
+    ACTIONS(697), 1,
+      anon_sym_until,
     STATE(224), 1,
       sym_comment,
-  [10381] = 4,
+  [10499] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(680), 1,
-      anon_sym_LPAREN,
+    ACTIONS(699), 1,
+      anon_sym_end,
     STATE(225), 1,
       sym_comment,
-  [10394] = 4,
+  [10512] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(682), 1,
-      anon_sym_do,
+    ACTIONS(701), 1,
+      anon_sym_COLON_COLON,
     STATE(226), 1,
       sym_comment,
-  [10407] = 4,
+  [10525] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(684), 1,
-      sym_identifier,
+    ACTIONS(703), 1,
+      anon_sym_end,
     STATE(227), 1,
       sym_comment,
-  [10420] = 4,
+  [10538] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(686), 1,
-      sym_identifier,
+    ACTIONS(705), 1,
+      anon_sym_do,
     STATE(228), 1,
       sym_comment,
-  [10433] = 4,
+  [10551] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(688), 1,
-      sym_identifier,
+    ACTIONS(707), 1,
+      anon_sym_RPAREN,
     STATE(229), 1,
       sym_comment,
-  [10446] = 4,
+  [10564] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(690), 1,
-      sym_identifier,
+    ACTIONS(709), 1,
+      anon_sym_RPAREN,
     STATE(230), 1,
       sym_comment,
-  [10459] = 4,
+  [10577] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(692), 1,
-      anon_sym_end,
+    ACTIONS(232), 1,
+      ts_builtin_sym_end,
     STATE(231), 1,
       sym_comment,
-  [10472] = 1,
-    ACTIONS(694), 1,
+  [10590] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(711), 1,
+      anon_sym_end,
+    STATE(232), 1,
+      sym_comment,
+  [10603] = 4,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(713), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(715), 1,
+      aux_sym_comment_token1,
+    STATE(233), 1,
+      sym_comment,
+  [10616] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(717), 1,
+      anon_sym_do,
+    STATE(234), 1,
+      sym_comment,
+  [10629] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(719), 1,
+      sym__block_comment_end,
+    STATE(235), 1,
+      sym_comment,
+  [10642] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(721), 1,
+      anon_sym_EQ,
+    STATE(236), 1,
+      sym_comment,
+  [10655] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(234), 1,
+      ts_builtin_sym_end,
+    STATE(237), 1,
+      sym_comment,
+  [10668] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(723), 1,
+      ts_builtin_sym_end,
+    STATE(238), 1,
+      sym_comment,
+  [10681] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(725), 1,
+      sym_identifier,
+    STATE(239), 1,
+      sym_comment,
+  [10694] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(727), 1,
+      sym_identifier,
+    STATE(240), 1,
+      sym_comment,
+  [10707] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(729), 1,
+      anon_sym_RPAREN,
+    STATE(241), 1,
+      sym_comment,
+  [10720] = 1,
+    ACTIONS(731), 1,
       ts_builtin_sym_end,
-  [10476] = 1,
-    ACTIONS(696), 1,
+  [10724] = 1,
+    ACTIONS(733), 1,
       ts_builtin_sym_end,
-  [10480] = 1,
-    ACTIONS(698), 1,
+  [10728] = 1,
+    ACTIONS(735), 1,
       ts_builtin_sym_end,
 };
 
@@ -10268,12 +10780,12 @@ static const uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(3)] = 65,
   [SMALL_STATE(4)] = 130,
   [SMALL_STATE(5)] = 195,
-  [SMALL_STATE(6)] = 263,
-  [SMALL_STATE(7)] = 327,
-  [SMALL_STATE(8)] = 391,
-  [SMALL_STATE(9)] = 455,
-  [SMALL_STATE(10)] = 519,
-  [SMALL_STATE(11)] = 583,
+  [SMALL_STATE(6)] = 259,
+  [SMALL_STATE(7)] = 323,
+  [SMALL_STATE(8)] = 387,
+  [SMALL_STATE(9)] = 451,
+  [SMALL_STATE(10)] = 515,
+  [SMALL_STATE(11)] = 579,
   [SMALL_STATE(12)] = 647,
   [SMALL_STATE(13)] = 711,
   [SMALL_STATE(14)] = 775,
@@ -10281,37 +10793,37 @@ static const uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(16)] = 903,
   [SMALL_STATE(17)] = 962,
   [SMALL_STATE(18)] = 1021,
-  [SMALL_STATE(19)] = 1106,
-  [SMALL_STATE(20)] = 1233,
-  [SMALL_STATE(21)] = 1294,
-  [SMALL_STATE(22)] = 1377,
-  [SMALL_STATE(23)] = 1456,
-  [SMALL_STATE(24)] = 1531,
-  [SMALL_STATE(25)] = 1592,
-  [SMALL_STATE(26)] = 1665,
-  [SMALL_STATE(27)] = 1736,
-  [SMALL_STATE(28)] = 1807,
-  [SMALL_STATE(29)] = 1866,
-  [SMALL_STATE(30)] = 1925,
-  [SMALL_STATE(31)] = 1986,
-  [SMALL_STATE(32)] = 2045,
-  [SMALL_STATE(33)] = 2122,
-  [SMALL_STATE(34)] = 2181,
-  [SMALL_STATE(35)] = 2240,
+  [SMALL_STATE(19)] = 1092,
+  [SMALL_STATE(20)] = 1153,
+  [SMALL_STATE(21)] = 1218,
+  [SMALL_STATE(22)] = 1279,
+  [SMALL_STATE(23)] = 1350,
+  [SMALL_STATE(24)] = 1423,
+  [SMALL_STATE(25)] = 1498,
+  [SMALL_STATE(26)] = 1575,
+  [SMALL_STATE(27)] = 1658,
+  [SMALL_STATE(28)] = 1743,
+  [SMALL_STATE(29)] = 1822,
+  [SMALL_STATE(30)] = 1949,
+  [SMALL_STATE(31)] = 2008,
+  [SMALL_STATE(32)] = 2067,
+  [SMALL_STATE(33)] = 2128,
+  [SMALL_STATE(34)] = 2187,
+  [SMALL_STATE(35)] = 2246,
   [SMALL_STATE(36)] = 2305,
   [SMALL_STATE(37)] = 2364,
-  [SMALL_STATE(38)] = 2476,
-  [SMALL_STATE(39)] = 2584,
-  [SMALL_STATE(40)] = 2698,
+  [SMALL_STATE(38)] = 2452,
+  [SMALL_STATE(39)] = 2560,
+  [SMALL_STATE(40)] = 2674,
   [SMALL_STATE(41)] = 2786,
   [SMALL_STATE(42)] = 2869,
   [SMALL_STATE(43)] = 2981,
   [SMALL_STATE(44)] = 3093,
-  [SMALL_STATE(45)] = 3205,
+  [SMALL_STATE(45)] = 3175,
   [SMALL_STATE(46)] = 3287,
   [SMALL_STATE(47)] = 3399,
   [SMALL_STATE(48)] = 3511,
-  [SMALL_STATE(49)] = 3623,
+  [SMALL_STATE(49)] = 3593,
   [SMALL_STATE(50)] = 3705,
   [SMALL_STATE(51)] = 3814,
   [SMALL_STATE(52)] = 3923,
@@ -10357,490 +10869,518 @@ static const uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(92)] = 6720,
   [SMALL_STATE(93)] = 6787,
   [SMALL_STATE(94)] = 6854,
-  [SMALL_STATE(95)] = 6918,
-  [SMALL_STATE(96)] = 6960,
+  [SMALL_STATE(95)] = 6900,
+  [SMALL_STATE(96)] = 6964,
   [SMALL_STATE(97)] = 7028,
-  [SMALL_STATE(98)] = 7092,
-  [SMALL_STATE(99)] = 7132,
-  [SMALL_STATE(100)] = 7196,
-  [SMALL_STATE(101)] = 7261,
-  [SMALL_STATE(102)] = 7298,
-  [SMALL_STATE(103)] = 7339,
-  [SMALL_STATE(104)] = 7401,
-  [SMALL_STATE(105)] = 7441,
-  [SMALL_STATE(106)] = 7503,
-  [SMALL_STATE(107)] = 7565,
-  [SMALL_STATE(108)] = 7627,
-  [SMALL_STATE(109)] = 7689,
-  [SMALL_STATE(110)] = 7751,
-  [SMALL_STATE(111)] = 7813,
-  [SMALL_STATE(112)] = 7875,
-  [SMALL_STATE(113)] = 7912,
-  [SMALL_STATE(114)] = 7951,
-  [SMALL_STATE(115)] = 7987,
-  [SMALL_STATE(116)] = 8020,
-  [SMALL_STATE(117)] = 8053,
-  [SMALL_STATE(118)] = 8086,
-  [SMALL_STATE(119)] = 8119,
-  [SMALL_STATE(120)] = 8152,
-  [SMALL_STATE(121)] = 8185,
-  [SMALL_STATE(122)] = 8218,
-  [SMALL_STATE(123)] = 8251,
-  [SMALL_STATE(124)] = 8284,
-  [SMALL_STATE(125)] = 8317,
-  [SMALL_STATE(126)] = 8350,
-  [SMALL_STATE(127)] = 8383,
-  [SMALL_STATE(128)] = 8416,
-  [SMALL_STATE(129)] = 8449,
-  [SMALL_STATE(130)] = 8482,
-  [SMALL_STATE(131)] = 8515,
-  [SMALL_STATE(132)] = 8548,
-  [SMALL_STATE(133)] = 8581,
-  [SMALL_STATE(134)] = 8614,
-  [SMALL_STATE(135)] = 8647,
-  [SMALL_STATE(136)] = 8680,
-  [SMALL_STATE(137)] = 8713,
-  [SMALL_STATE(138)] = 8746,
-  [SMALL_STATE(139)] = 8779,
-  [SMALL_STATE(140)] = 8812,
-  [SMALL_STATE(141)] = 8845,
-  [SMALL_STATE(142)] = 8878,
-  [SMALL_STATE(143)] = 8911,
-  [SMALL_STATE(144)] = 8941,
-  [SMALL_STATE(145)] = 8970,
-  [SMALL_STATE(146)] = 8999,
-  [SMALL_STATE(147)] = 9025,
-  [SMALL_STATE(148)] = 9052,
-  [SMALL_STATE(149)] = 9087,
-  [SMALL_STATE(150)] = 9120,
-  [SMALL_STATE(151)] = 9147,
-  [SMALL_STATE(152)] = 9169,
-  [SMALL_STATE(153)] = 9195,
-  [SMALL_STATE(154)] = 9223,
-  [SMALL_STATE(155)] = 9245,
-  [SMALL_STATE(156)] = 9263,
-  [SMALL_STATE(157)] = 9291,
-  [SMALL_STATE(158)] = 9319,
-  [SMALL_STATE(159)] = 9342,
-  [SMALL_STATE(160)] = 9363,
-  [SMALL_STATE(161)] = 9386,
-  [SMALL_STATE(162)] = 9409,
-  [SMALL_STATE(163)] = 9428,
-  [SMALL_STATE(164)] = 9453,
-  [SMALL_STATE(165)] = 9472,
-  [SMALL_STATE(166)] = 9494,
-  [SMALL_STATE(167)] = 9512,
-  [SMALL_STATE(168)] = 9530,
-  [SMALL_STATE(169)] = 9552,
-  [SMALL_STATE(170)] = 9574,
-  [SMALL_STATE(171)] = 9594,
-  [SMALL_STATE(172)] = 9613,
-  [SMALL_STATE(173)] = 9628,
-  [SMALL_STATE(174)] = 9647,
-  [SMALL_STATE(175)] = 9662,
-  [SMALL_STATE(176)] = 9677,
-  [SMALL_STATE(177)] = 9694,
-  [SMALL_STATE(178)] = 9711,
-  [SMALL_STATE(179)] = 9728,
-  [SMALL_STATE(180)] = 9747,
-  [SMALL_STATE(181)] = 9766,
-  [SMALL_STATE(182)] = 9785,
-  [SMALL_STATE(183)] = 9804,
-  [SMALL_STATE(184)] = 9823,
-  [SMALL_STATE(185)] = 9842,
-  [SMALL_STATE(186)] = 9857,
-  [SMALL_STATE(187)] = 9872,
-  [SMALL_STATE(188)] = 9888,
-  [SMALL_STATE(189)] = 9904,
-  [SMALL_STATE(190)] = 9920,
-  [SMALL_STATE(191)] = 9936,
-  [SMALL_STATE(192)] = 9952,
-  [SMALL_STATE(193)] = 9965,
-  [SMALL_STATE(194)] = 9978,
-  [SMALL_STATE(195)] = 9991,
-  [SMALL_STATE(196)] = 10004,
-  [SMALL_STATE(197)] = 10017,
-  [SMALL_STATE(198)] = 10030,
-  [SMALL_STATE(199)] = 10043,
-  [SMALL_STATE(200)] = 10056,
-  [SMALL_STATE(201)] = 10069,
-  [SMALL_STATE(202)] = 10082,
-  [SMALL_STATE(203)] = 10095,
-  [SMALL_STATE(204)] = 10108,
-  [SMALL_STATE(205)] = 10121,
-  [SMALL_STATE(206)] = 10134,
-  [SMALL_STATE(207)] = 10147,
-  [SMALL_STATE(208)] = 10160,
-  [SMALL_STATE(209)] = 10173,
-  [SMALL_STATE(210)] = 10186,
-  [SMALL_STATE(211)] = 10199,
-  [SMALL_STATE(212)] = 10212,
-  [SMALL_STATE(213)] = 10225,
-  [SMALL_STATE(214)] = 10238,
-  [SMALL_STATE(215)] = 10251,
-  [SMALL_STATE(216)] = 10264,
-  [SMALL_STATE(217)] = 10277,
-  [SMALL_STATE(218)] = 10290,
-  [SMALL_STATE(219)] = 10303,
-  [SMALL_STATE(220)] = 10316,
-  [SMALL_STATE(221)] = 10329,
-  [SMALL_STATE(222)] = 10342,
-  [SMALL_STATE(223)] = 10355,
-  [SMALL_STATE(224)] = 10368,
-  [SMALL_STATE(225)] = 10381,
-  [SMALL_STATE(226)] = 10394,
-  [SMALL_STATE(227)] = 10407,
-  [SMALL_STATE(228)] = 10420,
-  [SMALL_STATE(229)] = 10433,
-  [SMALL_STATE(230)] = 10446,
-  [SMALL_STATE(231)] = 10459,
-  [SMALL_STATE(232)] = 10472,
-  [SMALL_STATE(233)] = 10476,
-  [SMALL_STATE(234)] = 10480,
+  [SMALL_STATE(98)] = 7096,
+  [SMALL_STATE(99)] = 7160,
+  [SMALL_STATE(100)] = 7202,
+  [SMALL_STATE(101)] = 7243,
+  [SMALL_STATE(102)] = 7308,
+  [SMALL_STATE(103)] = 7348,
+  [SMALL_STATE(104)] = 7410,
+  [SMALL_STATE(105)] = 7472,
+  [SMALL_STATE(106)] = 7510,
+  [SMALL_STATE(107)] = 7550,
+  [SMALL_STATE(108)] = 7612,
+  [SMALL_STATE(109)] = 7674,
+  [SMALL_STATE(110)] = 7736,
+  [SMALL_STATE(111)] = 7798,
+  [SMALL_STATE(112)] = 7860,
+  [SMALL_STATE(113)] = 7922,
+  [SMALL_STATE(114)] = 7962,
+  [SMALL_STATE(115)] = 7999,
+  [SMALL_STATE(116)] = 8038,
+  [SMALL_STATE(117)] = 8073,
+  [SMALL_STATE(118)] = 8108,
+  [SMALL_STATE(119)] = 8144,
+  [SMALL_STATE(120)] = 8177,
+  [SMALL_STATE(121)] = 8210,
+  [SMALL_STATE(122)] = 8243,
+  [SMALL_STATE(123)] = 8276,
+  [SMALL_STATE(124)] = 8309,
+  [SMALL_STATE(125)] = 8342,
+  [SMALL_STATE(126)] = 8375,
+  [SMALL_STATE(127)] = 8408,
+  [SMALL_STATE(128)] = 8441,
+  [SMALL_STATE(129)] = 8474,
+  [SMALL_STATE(130)] = 8507,
+  [SMALL_STATE(131)] = 8540,
+  [SMALL_STATE(132)] = 8573,
+  [SMALL_STATE(133)] = 8606,
+  [SMALL_STATE(134)] = 8639,
+  [SMALL_STATE(135)] = 8672,
+  [SMALL_STATE(136)] = 8705,
+  [SMALL_STATE(137)] = 8738,
+  [SMALL_STATE(138)] = 8771,
+  [SMALL_STATE(139)] = 8804,
+  [SMALL_STATE(140)] = 8837,
+  [SMALL_STATE(141)] = 8870,
+  [SMALL_STATE(142)] = 8903,
+  [SMALL_STATE(143)] = 8936,
+  [SMALL_STATE(144)] = 8969,
+  [SMALL_STATE(145)] = 9002,
+  [SMALL_STATE(146)] = 9035,
+  [SMALL_STATE(147)] = 9068,
+  [SMALL_STATE(148)] = 9098,
+  [SMALL_STATE(149)] = 9127,
+  [SMALL_STATE(150)] = 9156,
+  [SMALL_STATE(151)] = 9182,
+  [SMALL_STATE(152)] = 9215,
+  [SMALL_STATE(153)] = 9250,
+  [SMALL_STATE(154)] = 9277,
+  [SMALL_STATE(155)] = 9304,
+  [SMALL_STATE(156)] = 9326,
+  [SMALL_STATE(157)] = 9344,
+  [SMALL_STATE(158)] = 9366,
+  [SMALL_STATE(159)] = 9394,
+  [SMALL_STATE(160)] = 9420,
+  [SMALL_STATE(161)] = 9448,
+  [SMALL_STATE(162)] = 9476,
+  [SMALL_STATE(163)] = 9499,
+  [SMALL_STATE(164)] = 9522,
+  [SMALL_STATE(165)] = 9541,
+  [SMALL_STATE(166)] = 9560,
+  [SMALL_STATE(167)] = 9583,
+  [SMALL_STATE(168)] = 9608,
+  [SMALL_STATE(169)] = 9629,
+  [SMALL_STATE(170)] = 9647,
+  [SMALL_STATE(171)] = 9665,
+  [SMALL_STATE(172)] = 9687,
+  [SMALL_STATE(173)] = 9709,
+  [SMALL_STATE(174)] = 9727,
+  [SMALL_STATE(175)] = 9747,
+  [SMALL_STATE(176)] = 9769,
+  [SMALL_STATE(177)] = 9788,
+  [SMALL_STATE(178)] = 9803,
+  [SMALL_STATE(179)] = 9820,
+  [SMALL_STATE(180)] = 9839,
+  [SMALL_STATE(181)] = 9854,
+  [SMALL_STATE(182)] = 9869,
+  [SMALL_STATE(183)] = 9888,
+  [SMALL_STATE(184)] = 9903,
+  [SMALL_STATE(185)] = 9922,
+  [SMALL_STATE(186)] = 9941,
+  [SMALL_STATE(187)] = 9960,
+  [SMALL_STATE(188)] = 9975,
+  [SMALL_STATE(189)] = 9992,
+  [SMALL_STATE(190)] = 10007,
+  [SMALL_STATE(191)] = 10026,
+  [SMALL_STATE(192)] = 10043,
+  [SMALL_STATE(193)] = 10062,
+  [SMALL_STATE(194)] = 10081,
+  [SMALL_STATE(195)] = 10097,
+  [SMALL_STATE(196)] = 10113,
+  [SMALL_STATE(197)] = 10129,
+  [SMALL_STATE(198)] = 10145,
+  [SMALL_STATE(199)] = 10161,
+  [SMALL_STATE(200)] = 10174,
+  [SMALL_STATE(201)] = 10187,
+  [SMALL_STATE(202)] = 10200,
+  [SMALL_STATE(203)] = 10213,
+  [SMALL_STATE(204)] = 10226,
+  [SMALL_STATE(205)] = 10239,
+  [SMALL_STATE(206)] = 10252,
+  [SMALL_STATE(207)] = 10265,
+  [SMALL_STATE(208)] = 10278,
+  [SMALL_STATE(209)] = 10291,
+  [SMALL_STATE(210)] = 10304,
+  [SMALL_STATE(211)] = 10317,
+  [SMALL_STATE(212)] = 10330,
+  [SMALL_STATE(213)] = 10343,
+  [SMALL_STATE(214)] = 10356,
+  [SMALL_STATE(215)] = 10369,
+  [SMALL_STATE(216)] = 10382,
+  [SMALL_STATE(217)] = 10395,
+  [SMALL_STATE(218)] = 10408,
+  [SMALL_STATE(219)] = 10421,
+  [SMALL_STATE(220)] = 10434,
+  [SMALL_STATE(221)] = 10447,
+  [SMALL_STATE(222)] = 10460,
+  [SMALL_STATE(223)] = 10473,
+  [SMALL_STATE(224)] = 10486,
+  [SMALL_STATE(225)] = 10499,
+  [SMALL_STATE(226)] = 10512,
+  [SMALL_STATE(227)] = 10525,
+  [SMALL_STATE(228)] = 10538,
+  [SMALL_STATE(229)] = 10551,
+  [SMALL_STATE(230)] = 10564,
+  [SMALL_STATE(231)] = 10577,
+  [SMALL_STATE(232)] = 10590,
+  [SMALL_STATE(233)] = 10603,
+  [SMALL_STATE(234)] = 10616,
+  [SMALL_STATE(235)] = 10629,
+  [SMALL_STATE(236)] = 10642,
+  [SMALL_STATE(237)] = 10655,
+  [SMALL_STATE(238)] = 10668,
+  [SMALL_STATE(239)] = 10681,
+  [SMALL_STATE(240)] = 10694,
+  [SMALL_STATE(241)] = 10707,
+  [SMALL_STATE(242)] = 10720,
+  [SMALL_STATE(243)] = 10724,
+  [SMALL_STATE(244)] = 10728,
 };
 
 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(215),
-  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
+  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
+  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
   [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 0),
-  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
+  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2),
   [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
   [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
-  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
-  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229),
+  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
+  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
   [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121),
-  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227),
-  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43),
-  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90),
-  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
-  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
-  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170),
-  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163),
-  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169),
-  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
-  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, .production_id = 20),
-  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, .production_id = 20),
-  [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1),
-  [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1),
-  [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 20),
-  [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 20),
-  [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1),
-  [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1),
-  [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__prefix_expression, 1),
-  [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__prefix_expression, 1),
-  [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3),
-  [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3),
-  [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 3),
-  [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 3),
-  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2),
-  [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2),
-  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, .production_id = 12),
-  [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, .production_id = 12),
-  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 2),
-  [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 2),
-  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, .production_id = 5),
-  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, .production_id = 5),
-  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, .production_id = 10),
-  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, .production_id = 10),
-  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 1),
-  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 1),
-  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 4),
-  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 4),
-  [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3),
-  [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3),
-  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 25),
-  [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 25),
-  [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89),
-  [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86),
-  [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
-  [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
-  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
-  [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
-  [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
-  [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
-  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
-  [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
-  [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79),
-  [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
+  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239),
+  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
+  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69),
+  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
+  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
+  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174),
+  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(167),
+  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171),
+  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
+  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1),
+  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1),
+  [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 22),
+  [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 22),
+  [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, .production_id = 22),
+  [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, .production_id = 22),
+  [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, .production_id = 10),
+  [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, .production_id = 10),
+  [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 3),
+  [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 3),
+  [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 1),
+  [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 1),
+  [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 4),
+  [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 4),
+  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, .production_id = 12),
+  [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, .production_id = 12),
+  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 2),
+  [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 2),
+  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1),
+  [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1),
+  [79] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__prefix_expression, 1),
+  [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__prefix_expression, 1),
+  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3),
+  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3),
+  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3),
+  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3),
+  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2),
+  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2),
+  [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, .production_id = 5),
+  [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, .production_id = 5),
+  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 2, .production_id = 26),
+  [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 2, .production_id = 26),
+  [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 3, .production_id = 39),
+  [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 3, .production_id = 39),
+  [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 27),
+  [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 27),
+  [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
+  [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
+  [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
+  [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88),
+  [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
+  [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
+  [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 15),
+  [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 15),
   [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
-  [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
-  [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127),
-  [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75),
-  [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
-  [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 15),
-  [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 15),
-  [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 2, .production_id = 13),
-  [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 2, .production_id = 13),
-  [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 3, .production_id = 33),
-  [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 3, .production_id = 33),
-  [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 2, .production_id = 24),
-  [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 2, .production_id = 24),
-  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 1),
-  [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2),
-  [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(3),
-  [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2),
-  [162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(117),
-  [165] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(229),
-  [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(121),
-  [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(227),
-  [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(43),
-  [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(90),
-  [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(44),
-  [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(72),
-  [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(170),
-  [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(163),
-  [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(169),
-  [195] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(71),
-  [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 3, .production_id = 26),
-  [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 14),
-  [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 14),
-  [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
-  [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80),
-  [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 41),
-  [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 41),
+  [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
+  [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77),
+  [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85),
+  [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
+  [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
+  [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83),
+  [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
+  [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142),
+  [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
+  [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
+  [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 2, .production_id = 13),
+  [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 2, .production_id = 13),
+  [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 14),
+  [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 14),
+  [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
+  [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
+  [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2),
+  [163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(2),
+  [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2),
+  [168] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(126),
+  [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(240),
+  [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(121),
+  [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(239),
+  [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(45),
+  [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(69),
+  [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(46),
+  [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(70),
+  [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(174),
+  [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(167),
+  [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(171),
+  [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(75),
+  [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 3, .production_id = 28),
+  [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 1),
+  [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 48),
+  [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 48),
   [212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_statement, 1),
-  [214] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123),
-  [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
-  [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 4, .production_id = 27),
-  [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 4, .production_id = 27),
-  [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
-  [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115),
-  [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131),
-  [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, .production_id = 17),
-  [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, .production_id = 17),
+  [214] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
+  [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 4, .production_id = 29),
+  [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 4, .production_id = 29),
+  [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143),
+  [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86),
+  [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140),
+  [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, .production_id = 17),
+  [228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, .production_id = 17),
+  [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144),
   [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 2),
   [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 1),
-  [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
+  [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
   [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 1),
-  [240] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171),
-  [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
-  [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
+  [240] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179),
+  [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
+  [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
   [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
-  [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
-  [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
-  [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
+  [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
+  [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
+  [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
   [254] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56),
-  [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
-  [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
+  [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
+  [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
   [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
-  [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
+  [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79),
   [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2),
   [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list_repeat1, 2),
-  [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
-  [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
-  [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2),
-  [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 1),
-  [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
-  [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 1),
+  [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
+  [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
+  [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 1),
+  [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
+  [276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 1),
+  [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 3),
   [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1),
-  [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 3),
-  [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
-  [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, .production_id = 14),
-  [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
-  [290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1),
-  [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
-  [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 34),
-  [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 23),
-  [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 23),
-  [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 23), SHIFT_REPEAT(207),
-  [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 5, .production_id = 47),
-  [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
-  [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 5, .production_id = 46),
-  [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 22),
-  [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 22),
-  [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 2, .production_id = 11),
-  [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__name_list, 2, .production_id = 11),
-  [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
-  [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
-  [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 1, .production_id = 4),
-  [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__name_list, 1, .production_id = 4),
-  [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
-  [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
-  [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
-  [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
-  [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
-  [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
-  [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 7, .production_id = 49),
-  [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 42),
-  [341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 42),
-  [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 42), SHIFT_REPEAT(78),
-  [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 32),
-  [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 32),
-  [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2, .production_id = 9),
-  [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2, .production_id = 9),
-  [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
-  [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 4, .production_id = 29),
-  [358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 4, .production_id = 29),
-  [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, .production_id = 48),
-  [362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, .production_id = 48),
-  [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1),
-  [366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1),
-  [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_function_declaration, 4, .production_id = 31),
-  [370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_function_declaration, 4, .production_id = 31),
-  [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 3, .production_id = 16),
-  [374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 3, .production_id = 16),
-  [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 3, .production_id = 18),
-  [378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 3, .production_id = 18),
-  [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 2),
-  [382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 2),
-  [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 2),
-  [386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 2),
-  [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_statement, 3),
-  [390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label_statement, 3),
-  [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 37),
-  [394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 37),
-  [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_statement, 3, .production_id = 19),
-  [398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_statement, 3, .production_id = 19),
-  [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 26),
-  [402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 26),
-  [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 19),
-  [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 19),
-  [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38),
-  [410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 38),
-  [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 36),
-  [414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 36),
-  [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, .production_id = 26),
-  [418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, .production_id = 26),
-  [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 1),
-  [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 1),
-  [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 35),
-  [426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 35),
-  [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 45),
-  [430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 45),
-  [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 44),
-  [434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 44),
-  [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 43),
-  [438] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 43),
-  [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2),
-  [442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2),
-  [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, .production_id = 1),
-  [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1, .production_id = 1),
-  [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1),
-  [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1),
-  [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 2),
-  [454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 2),
-  [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 3),
-  [458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 3),
-  [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 40),
-  [462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 40),
-  [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_sep, 1),
-  [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_sep, 1),
-  [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 2),
-  [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2),
-  [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 3, .production_id = 9),
-  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, .production_id = 9),
-  [476] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2), SHIFT_REPEAT(93),
-  [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 2),
-  [481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 2),
-  [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
-  [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206),
-  [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
-  [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
-  [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
-  [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
-  [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
-  [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 1, .production_id = 4),
-  [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
-  [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 22),
-  [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
-  [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
-  [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
-  [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
-  [511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
-  [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
-  [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
-  [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 39),
-  [519] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 39), SHIFT_REPEAT(75),
-  [522] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 39),
-  [524] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2), SHIFT_REPEAT(143),
-  [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2),
-  [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
-  [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1),
-  [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3),
-  [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3),
-  [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
-  [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
-  [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 1),
-  [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 2),
-  [545] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 2),
-  [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
-  [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
-  [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
-  [553] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104),
-  [555] = {.entry = {.count = 1, .reusable = false}}, SHIFT(204),
-  [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
-  [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
-  [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_index_expression, 3, .production_id = 21),
-  [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_dot_index_expression, 3, .production_id = 20),
-  [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif_statement, 4, .production_id = 36),
-  [567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 4, .production_id = 36),
-  [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 23),
-  [571] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 23), SHIFT_REPEAT(149),
-  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 28),
-  [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 28),
-  [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
-  [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1, .production_id = 4),
-  [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
-  [584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 2, .production_id = 11),
-  [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
-  [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 2, .production_id = 11),
-  [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230),
-  [592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
-  [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1),
-  [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1, .production_id = 7),
-  [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1),
-  [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
-  [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
-  [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
-  [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
-  [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223),
-  [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
-  [612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
-  [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220),
-  [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
-  [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1, .production_id = 8),
-  [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
-  [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
-  [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
-  [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
-  [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
-  [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
-  [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
-  [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_statement, 2, .production_id = 16),
-  [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
-  [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
-  [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
-  [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
-  [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
-  [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
-  [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
-  [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
-  [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 3, .production_id = 4),
-  [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
-  [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
-  [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
-  [660] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215),
-  [662] = {.entry = {.count = 1, .reusable = false}}, SHIFT(232),
-  [664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1),
-  [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
-  [668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 3),
-  [670] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 4, .production_id = 11),
-  [672] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
-  [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
-  [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
-  [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
-  [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_method_index_expression, 3, .production_id = 21),
-  [682] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_generic_clause, 3, .production_id = 30),
-  [684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
-  [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
-  [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
-  [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
-  [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
-  [694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, .production_id = 6),
-  [696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, .production_id = 5),
-  [698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3, .production_id = 12),
+  [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2),
+  [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
+  [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 1, .production_id = 4),
+  [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 1, .production_id = 4),
+  [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223),
+  [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201),
+  [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, .production_id = 14),
+  [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 40),
+  [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
+  [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 5, .production_id = 54),
+  [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
+  [304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1),
+  [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 24),
+  [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 24),
+  [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
+  [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 5, .production_id = 53),
+  [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, .production_id = 20),
+  [316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, .production_id = 20),
+  [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
+  [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
+  [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 35),
+  [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 35),
+  [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 35), SHIFT_REPEAT(223),
+  [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 3, .production_id = 34),
+  [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 3, .production_id = 34),
+  [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
+  [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 7, .production_id = 56),
+  [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
+  [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
+  [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
+  [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
+  [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, .production_id = 19),
+  [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, .production_id = 19),
+  [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 49),
+  [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 49),
+  [353] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 49), SHIFT_REPEAT(72),
+  [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 37),
+  [358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 37),
+  [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attrib, 3),
+  [362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__attrib, 3),
+  [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 3, .production_id = 47),
+  [366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 3, .production_id = 47),
+  [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2, .production_id = 9),
+  [370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2, .production_id = 9),
+  [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
+  [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 46),
+  [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 46),
+  [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 41),
+  [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 41),
+  [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 2),
+  [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 2),
+  [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 50),
+  [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 50),
+  [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 3, .production_id = 18),
+  [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 3, .production_id = 18),
+  [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 1),
+  [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 1),
+  [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1),
+  [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1),
+  [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 51),
+  [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 51),
+  [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_statement, 3, .production_id = 21),
+  [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_statement, 3, .production_id = 21),
+  [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 36),
+  [412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 36),
+  [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 52),
+  [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 52),
+  [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 43),
+  [420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 43),
+  [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44),
+  [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 44),
+  [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_statement, 3),
+  [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label_statement, 3),
+  [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2),
+  [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2),
+  [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, .production_id = 1),
+  [436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1, .production_id = 1),
+  [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, .production_id = 55),
+  [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, .production_id = 55),
+  [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 3, .production_id = 16),
+  [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 3, .production_id = 16),
+  [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_function_declaration, 4, .production_id = 33),
+  [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_function_declaration, 4, .production_id = 33),
+  [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1),
+  [452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1),
+  [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 4, .production_id = 31),
+  [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 4, .production_id = 31),
+  [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 42),
+  [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 42),
+  [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 28),
+  [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 28),
+  [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 2),
+  [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 2),
+  [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, .production_id = 28),
+  [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, .production_id = 28),
+  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 2),
+  [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 2),
+  [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 3),
+  [480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 3),
+  [482] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_sep, 1),
+  [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_sep, 1),
+  [486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 2),
+  [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2),
+  [490] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 3, .production_id = 38),
+  [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, .production_id = 38),
+  [494] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2), SHIFT_REPEAT(80),
+  [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
+  [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
+  [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213),
+  [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
+  [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
+  [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
+  [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
+  [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 1, .production_id = 4),
+  [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
+  [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 2),
+  [517] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 2),
+  [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 24),
+  [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
+  [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
+  [525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
+  [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
+  [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
+  [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
+  [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
+  [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
+  [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 45),
+  [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 45), SHIFT_REPEAT(74),
+  [542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 45),
+  [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3),
+  [546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3),
+  [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1),
+  [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
+  [552] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2), SHIFT_REPEAT(147),
+  [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2),
+  [557] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 25), SHIFT_REPEAT(204),
+  [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 25),
+  [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 1),
+  [564] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94),
+  [566] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215),
+  [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
+  [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
+  [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
+  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 2),
+  [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 2),
+  [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
+  [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
+  [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
+  [584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 1, .production_id = 4),
+  [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
+  [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 24),
+  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif_statement, 4, .production_id = 42),
+  [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 4, .production_id = 42),
+  [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1),
+  [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_dot_index_expression, 3, .production_id = 22),
+  [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203),
+  [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
+  [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1),
+  [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1, .production_id = 7),
+  [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 2, .production_id = 11),
+  [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
+  [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 2, .production_id = 11),
+  [612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 25),
+  [614] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 25), SHIFT_REPEAT(151),
+  [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_index_expression, 3, .production_id = 23),
+  [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
+  [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1, .production_id = 4),
+  [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 30),
+  [625] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 30),
+  [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
+  [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 2, .production_id = 11),
+  [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
+  [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
+  [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
+  [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220),
+  [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221),
+  [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
+  [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230),
+  [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235),
+  [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243),
+  [649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_method_index_expression, 3, .production_id = 23),
+  [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_statement, 2, .production_id = 16),
+  [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219),
+  [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
+  [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181),
+  [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
+  [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
+  [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
+  [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
+  [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 3),
+  [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
+  [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
+  [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
+  [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
+  [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+  [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
+  [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1, .production_id = 8),
+  [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
+  [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
+  [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
+  [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 3, .production_id = 4),
+  [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
+  [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
+  [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
+  [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
+  [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
+  [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
+  [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
+  [705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_generic_clause, 3, .production_id = 32),
+  [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
+  [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 4, .production_id = 11),
+  [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
+  [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233),
+  [715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242),
+  [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
+  [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244),
+  [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
+  [723] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
+  [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
+  [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226),
+  [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1),
+  [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, .production_id = 6),
+  [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, .production_id = 5),
+  [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3, .production_id = 12),
 };
 
 #ifdef __cplusplus
diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h
index cbbc7b4..2b14ac1 100644
--- a/src/tree_sitter/parser.h
+++ b/src/tree_sitter/parser.h
@@ -123,6 +123,7 @@ struct TSLanguage {
     unsigned (*serialize)(void *, char *);
     void (*deserialize)(void *, const char *, unsigned);
   } external_scanner;
+  const TSStateId *primary_state_ids;
 };
 
 /*


Test patch:
diff --git a/test/corpus/statements.txt b/test/corpus/statements.txt
index 0327788..d9e524d 100644
--- a/test/corpus/statements.txt
+++ b/test/corpus/statements.txt
@@ -457,3 +457,38 @@ local v4, v4 = f1(), tbl:f2()
             table: (identifier)
             method: (identifier))
           arguments: (arguments))))))
+
+================================================================================
+variable_declaration ::: attribute [Lua 5.4]
+================================================================================
+
+local c <const>, x <const> = 42
+local f <close> = io.open('/file.lua')
+
+--------------------------------------------------------------------------------
+
+(chunk
+  local_declaration: (variable_declaration
+    (assignment_statement
+      (variable_list
+        name: (identifier)
+        attribute: (attribute
+          (identifier))
+        name: (identifier)
+        attribute: (attribute
+          (identifier)))
+      (expression_list
+        value: (number))))
+  local_declaration: (variable_declaration
+    (assignment_statement
+      (variable_list
+        name: (identifier)
+        attribute: (attribute
+          (identifier)))
+      (expression_list
+        value: (function_call
+          name: (dot_index_expression
+            table: (identifier)
+            field: (identifier))
+          arguments: (arguments
+            (string)))))))