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

Issue:
Expose escape sequences as nodes
Hi, can you please have escape sequences (`\n`, `\t`, ...) be parsed into their own nodes so they can be highlighted? Some other parsers like [tree-sitter-c](https://github.com/tree-sitter/tree-sitter-c) already do this. You can find the list of valid escape sequences for Lua 5.4 under https://www.lua.org/manual/5.4/manual.html#3.1


Discussion / hints:

Fix patch:
diff --git a/grammar.js b/grammar.js
index 4592df7..315f5c1 100644
--- a/grammar.js
+++ b/grammar.js
@@ -33,9 +33,9 @@ module.exports = grammar({
     $._block_comment_content,
     $._block_comment_end,
 
-    $._string_start,
-    $._string_content,
-    $._string_end,
+    $._block_string_start,
+    $._block_string_content,
+    $._block_string_end,
   ],
 
   supertypes: ($) => [$.statement, $.expression, $.declaration, $.variable],
@@ -313,27 +313,23 @@ module.exports = grammar({
       const signed_integer = seq(optional(choice('-', '+')), decimal_digits);
       const decimal_exponent_part = seq(choice('e', 'E'), signed_integer);
 
-      const decimal_integer_literal = choice(
-        '0',
-        seq(optional('0'), /[1-9]/, optional(decimal_digits))
-      );
-
       const hex_digits = /[a-fA-F0-9]+/;
       const hex_exponent_part = seq(choice('p', 'P'), signed_integer);
 
       const decimal_literal = choice(
         seq(
-          decimal_integer_literal,
+          decimal_digits,
           '.',
           optional(decimal_digits),
           optional(decimal_exponent_part)
         ),
         seq('.', decimal_digits, optional(decimal_exponent_part)),
-        seq(decimal_integer_literal, optional(decimal_exponent_part))
+        seq(decimal_digits, optional(decimal_exponent_part))
       );
 
       const hex_literal = seq(
         choice('0x', '0X'),
+        optional('.'),
         hex_digits,
         optional(seq('.', hex_digits)),
         optional(hex_exponent_part)
@@ -343,11 +339,53 @@ module.exports = grammar({
     },
 
     // LiteralString
-    string: ($) =>
+    string: ($) => choice($._quote_string, $._block_string),
+
+    _quote_string: ($) =>
+      choice(
+        seq(
+          field('start', alias('"', '"')),
+          field(
+            'content',
+            optional(alias($._doublequote_string_content, $.string_content))
+          ),
+          field('end', alias('"', '"'))
+        ),
+        seq(
+          field('start', alias("'", "'")),
+          field(
+            'content',
+            optional(alias($._singlequote_string_content, $.string_content))
+          ),
+          field('end', alias("'", "'"))
+        )
+      ),
+
+    _doublequote_string_content: ($) =>
+      repeat1(choice(token.immediate(prec(1, /[^"\\]+/)), $.escape_sequence)),
+
+    _singlequote_string_content: ($) =>
+      repeat1(choice(token.immediate(prec(1, /[^'\\]+/)), $.escape_sequence)),
+
+    _block_string: ($) =>
       seq(
-        field('start', alias($._string_start, 'string_start')),
-        field('content', optional(alias($._string_content, 'string_content'))),
-        field('end', alias($._string_end, 'string_end'))
+        field('start', alias($._block_string_start, '[[')),
+        field('content', alias($._block_string_content, $.string_content)),
+        field('end', alias($._block_string_end, ']]'))
+      ),
+
+    escape_sequence: () =>
+      token.immediate(
+        seq(
+          '\\',
+          choice(
+            /[^xu0-7]/,
+            /[0-9]{1,3}/,
+            /x[0-9a-fA-F]{2}/,
+            /u\{[0-9a-fA-F]{4}\}/,
+            /u{[0-9a-fA-F]+}/
+          )
+        )
       ),
 
     // '...'
diff --git a/queries/highlights.scm b/queries/highlights.scm
index f3009a7..510ed1f 100644
--- a/queries/highlights.scm
+++ b/queries/highlights.scm
@@ -192,3 +192,5 @@
 (number) @number
 
 (string) @string
+
+(escape_sequence) @string.escape
diff --git a/src/grammar.json b/src/grammar.json
index 59b546c..e7f1b7a 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -1182,46 +1182,8 @@
                 "type": "SEQ",
                 "members": [
                   {
-                    "type": "CHOICE",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": "0"
-                      },
-                      {
-                        "type": "SEQ",
-                        "members": [
-                          {
-                            "type": "CHOICE",
-                            "members": [
-                              {
-                                "type": "STRING",
-                                "value": "0"
-                              },
-                              {
-                                "type": "BLANK"
-                              }
-                            ]
-                          },
-                          {
-                            "type": "PATTERN",
-                            "value": "[1-9]"
-                          },
-                          {
-                            "type": "CHOICE",
-                            "members": [
-                              {
-                                "type": "PATTERN",
-                                "value": "[0-9]+"
-                              },
-                              {
-                                "type": "BLANK"
-                              }
-                            ]
-                          }
-                        ]
-                      }
-                    ]
+                    "type": "PATTERN",
+                    "value": "[0-9]+"
                   },
                   {
                     "type": "STRING",
@@ -1370,46 +1332,8 @@
                 "type": "SEQ",
                 "members": [
                   {
-                    "type": "CHOICE",
-                    "members": [
-                      {
-                        "type": "STRING",
-                        "value": "0"
-                      },
-                      {
-                        "type": "SEQ",
-                        "members": [
-                          {
-                            "type": "CHOICE",
-                            "members": [
-                              {
-                                "type": "STRING",
-                                "value": "0"
-                              },
-                              {
-                                "type": "BLANK"
-                              }
-                            ]
-                          },
-                          {
-                            "type": "PATTERN",
-                            "value": "[1-9]"
-                          },
-                          {
-                            "type": "CHOICE",
-                            "members": [
-                              {
-                                "type": "PATTERN",
-                                "value": "[0-9]+"
-                              },
-                              {
-                                "type": "BLANK"
-                              }
-                            ]
-                          }
-                        ]
-                      }
-                    ]
+                    "type": "PATTERN",
+                    "value": "[0-9]+"
                   },
                   {
                     "type": "CHOICE",
@@ -1487,6 +1411,18 @@
                   }
                 ]
               },
+              {
+                "type": "CHOICE",
+                "members": [
+                  {
+                    "type": "STRING",
+                    "value": "."
+                  },
+                  {
+                    "type": "BLANK"
+                  }
+                ]
+              },
               {
                 "type": "PATTERN",
                 "value": "[a-fA-F0-9]+"
@@ -1574,6 +1510,174 @@
       }
     },
     "string": {
+      "type": "CHOICE",
+      "members": [
+        {
+          "type": "SYMBOL",
+          "name": "_quote_string"
+        },
+        {
+          "type": "SYMBOL",
+          "name": "_block_string"
+        }
+      ]
+    },
+    "_quote_string": {
+      "type": "CHOICE",
+      "members": [
+        {
+          "type": "SEQ",
+          "members": [
+            {
+              "type": "FIELD",
+              "name": "start",
+              "content": {
+                "type": "ALIAS",
+                "content": {
+                  "type": "STRING",
+                  "value": "\""
+                },
+                "named": false,
+                "value": "\""
+              }
+            },
+            {
+              "type": "FIELD",
+              "name": "content",
+              "content": {
+                "type": "CHOICE",
+                "members": [
+                  {
+                    "type": "ALIAS",
+                    "content": {
+                      "type": "SYMBOL",
+                      "name": "_doublequote_string_content"
+                    },
+                    "named": true,
+                    "value": "string_content"
+                  },
+                  {
+                    "type": "BLANK"
+                  }
+                ]
+              }
+            },
+            {
+              "type": "FIELD",
+              "name": "end",
+              "content": {
+                "type": "ALIAS",
+                "content": {
+                  "type": "STRING",
+                  "value": "\""
+                },
+                "named": false,
+                "value": "\""
+              }
+            }
+          ]
+        },
+        {
+          "type": "SEQ",
+          "members": [
+            {
+              "type": "FIELD",
+              "name": "start",
+              "content": {
+                "type": "ALIAS",
+                "content": {
+                  "type": "STRING",
+                  "value": "'"
+                },
+                "named": false,
+                "value": "'"
+              }
+            },
+            {
+              "type": "FIELD",
+              "name": "content",
+              "content": {
+                "type": "CHOICE",
+                "members": [
+                  {
+                    "type": "ALIAS",
+                    "content": {
+                      "type": "SYMBOL",
+                      "name": "_singlequote_string_content"
+                    },
+                    "named": true,
+                    "value": "string_content"
+                  },
+                  {
+                    "type": "BLANK"
+                  }
+                ]
+              }
+            },
+            {
+              "type": "FIELD",
+              "name": "end",
+              "content": {
+                "type": "ALIAS",
+                "content": {
+                  "type": "STRING",
+                  "value": "'"
+                },
+                "named": false,
+                "value": "'"
+              }
+            }
+          ]
+        }
+      ]
+    },
+    "_doublequote_string_content": {
+      "type": "REPEAT1",
+      "content": {
+        "type": "CHOICE",
+        "members": [
+          {
+            "type": "IMMEDIATE_TOKEN",
+            "content": {
+              "type": "PREC",
+              "value": 1,
+              "content": {
+                "type": "PATTERN",
+                "value": "[^\"\\\\]+"
+              }
+            }
+          },
+          {
+            "type": "SYMBOL",
+            "name": "escape_sequence"
+          }
+        ]
+      }
+    },
+    "_singlequote_string_content": {
+      "type": "REPEAT1",
+      "content": {
+        "type": "CHOICE",
+        "members": [
+          {
+            "type": "IMMEDIATE_TOKEN",
+            "content": {
+              "type": "PREC",
+              "value": 1,
+              "content": {
+                "type": "PATTERN",
+                "value": "[^'\\\\]+"
+              }
+            }
+          },
+          {
+            "type": "SYMBOL",
+            "name": "escape_sequence"
+          }
+        ]
+      }
+    },
+    "_block_string": {
       "type": "SEQ",
       "members": [
         {
@@ -1583,31 +1687,23 @@
             "type": "ALIAS",
             "content": {
               "type": "SYMBOL",
-              "name": "_string_start"
+              "name": "_block_string_start"
             },
             "named": false,
-            "value": "string_start"
+            "value": "[["
           }
         },
         {
           "type": "FIELD",
           "name": "content",
           "content": {
-            "type": "CHOICE",
-            "members": [
-              {
-                "type": "ALIAS",
-                "content": {
-                  "type": "SYMBOL",
-                  "name": "_string_content"
-                },
-                "named": false,
-                "value": "string_content"
-              },
-              {
-                "type": "BLANK"
-              }
-            ]
+            "type": "ALIAS",
+            "content": {
+              "type": "SYMBOL",
+              "name": "_block_string_content"
+            },
+            "named": true,
+            "value": "string_content"
           }
         },
         {
@@ -1617,14 +1713,51 @@
             "type": "ALIAS",
             "content": {
               "type": "SYMBOL",
-              "name": "_string_end"
+              "name": "_block_string_end"
             },
             "named": false,
-            "value": "string_end"
+            "value": "]]"
           }
         }
       ]
     },
+    "escape_sequence": {
+      "type": "IMMEDIATE_TOKEN",
+      "content": {
+        "type": "SEQ",
+        "members": [
+          {
+            "type": "STRING",
+            "value": "\\"
+          },
+          {
+            "type": "CHOICE",
+            "members": [
+              {
+                "type": "PATTERN",
+                "value": "[^xu0-7]"
+              },
+              {
+                "type": "PATTERN",
+                "value": "[0-9]{1,3}"
+              },
+              {
+                "type": "PATTERN",
+                "value": "x[0-9a-fA-F]{2}"
+              },
+              {
+                "type": "PATTERN",
+                "value": "u\\{[0-9a-fA-F]{4}\\}"
+              },
+              {
+                "type": "PATTERN",
+                "value": "u{[0-9a-fA-F]+}"
+              }
+            ]
+          }
+        ]
+      }
+    },
     "vararg_expression": {
       "type": "STRING",
       "value": "..."
@@ -2926,15 +3059,15 @@
     },
     {
       "type": "SYMBOL",
-      "name": "_string_start"
+      "name": "_block_string_start"
     },
     {
       "type": "SYMBOL",
-      "name": "_string_content"
+      "name": "_block_string_content"
     },
     {
       "type": "SYMBOL",
-      "name": "_string_end"
+      "name": "_block_string_end"
     }
   ],
   "inline": [],
diff --git a/src/node-types.json b/src/node-types.json
index 4aeba16..6ea7a88 100644
--- a/src/node-types.json
+++ b/src/node-types.json
@@ -882,7 +882,7 @@
         "types": [
           {
             "type": "string_content",
-            "named": false
+            "named": true
           }
         ]
       },
@@ -891,7 +891,15 @@
         "required": true,
         "types": [
           {
-            "type": "string_end",
+            "type": "\"",
+            "named": false
+          },
+          {
+            "type": "'",
+            "named": false
+          },
+          {
+            "type": "]]",
             "named": false
           }
         ]
@@ -901,13 +909,36 @@
         "required": true,
         "types": [
           {
-            "type": "string_start",
+            "type": "\"",
+            "named": false
+          },
+          {
+            "type": "'",
+            "named": false
+          },
+          {
+            "type": "[[",
             "named": false
           }
         ]
       }
     }
   },
+  {
+    "type": "string_content",
+    "named": true,
+    "fields": {},
+    "children": {
+      "multiple": true,
+      "required": false,
+      "types": [
+        {
+          "type": "escape_sequence",
+          "named": true
+        }
+      ]
+    }
+  },
   {
     "type": "table_constructor",
     "named": true,
@@ -1010,6 +1041,10 @@
       }
     }
   },
+  {
+    "type": "\"",
+    "named": false
+  },
   {
     "type": "#",
     "named": false
@@ -1022,6 +1057,10 @@
     "type": "&",
     "named": false
   },
+  {
+    "type": "'",
+    "named": false
+  },
   {
     "type": "(",
     "named": false
@@ -1110,10 +1149,18 @@
     "type": "[",
     "named": false
   },
+  {
+    "type": "[[",
+    "named": false
+  },
   {
     "type": "]",
     "named": false
   },
+  {
+    "type": "]]",
+    "named": false
+  },
   {
     "type": "^",
     "named": false
@@ -1154,6 +1201,10 @@
     "type": "end",
     "named": false
   },
+  {
+    "type": "escape_sequence",
+    "named": true
+  },
   {
     "type": "false",
     "named": true
@@ -1214,18 +1265,6 @@
     "type": "return",
     "named": false
   },
-  {
-    "type": "string_content",
-    "named": false
-  },
-  {
-    "type": "string_end",
-    "named": false
-  },
-  {
-    "type": "string_start",
-    "named": false
-  },
   {
     "type": "then",
     "named": false
diff --git a/src/parser.c b/src/parser.c
index f78e9a7..ee159b7 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -6,15 +6,15 @@
 #endif
 
 #define LANGUAGE_VERSION 13
-#define STATE_COUNT 245
+#define STATE_COUNT 263
 #define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 128
+#define SYMBOL_COUNT 137
 #define ALIAS_COUNT 0
-#define TOKEN_COUNT 67
+#define TOKEN_COUNT 72
 #define EXTERNAL_TOKEN_COUNT 6
 #define FIELD_COUNT 21
 #define MAX_ALIAS_SEQUENCE_LENGTH 7
-#define PRODUCTION_ID_COUNT 57
+#define PRODUCTION_ID_COUNT 59
 
 enum {
   sym_identifier = 1,
@@ -47,103 +47,112 @@ enum {
   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,
-  anon_sym_LT_LT = 47,
-  anon_sym_GT_GT = 48,
-  anon_sym_PLUS = 49,
-  anon_sym_DASH = 50,
-  anon_sym_STAR = 51,
-  anon_sym_SLASH = 52,
-  anon_sym_SLASH_SLASH = 53,
-  anon_sym_PERCENT = 54,
-  anon_sym_DOT_DOT = 55,
-  anon_sym_CARET = 56,
-  anon_sym_not = 57,
-  anon_sym_POUND = 58,
-  anon_sym_DASH_DASH = 59,
-  aux_sym_comment_token1 = 60,
-  sym__block_comment_start = 61,
-  sym__block_comment_content = 62,
-  sym__block_comment_end = 63,
-  sym__string_start = 64,
-  sym__string_content = 65,
-  sym__string_end = 66,
-  sym_chunk = 67,
-  sym__block = 68,
-  sym_statement = 69,
-  sym_return_statement = 70,
-  sym_empty_statement = 71,
-  sym_assignment_statement = 72,
-  sym__variable_assignment_varlist = 73,
-  sym__variable_assignment_explist = 74,
-  sym_label_statement = 75,
-  sym_goto_statement = 76,
-  sym_do_statement = 77,
-  sym_while_statement = 78,
-  sym_repeat_statement = 79,
-  sym_if_statement = 80,
-  sym_elseif_statement = 81,
-  sym_else_statement = 82,
-  sym_for_statement = 83,
-  sym_for_generic_clause = 84,
-  sym_for_numeric_clause = 85,
-  sym_declaration = 86,
-  sym_function_declaration = 87,
-  sym__local_function_declaration = 88,
-  sym__function_name = 89,
-  sym__function_name_prefix_expression = 90,
-  sym__function_name_dot_index_expression = 91,
-  sym__function_name_method_index_expression = 92,
-  sym_variable_declaration = 93,
-  sym__local_variable_assignment = 94,
-  sym__name_list = 95,
-  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,
+  anon_sym_DQUOTE = 31,
+  anon_sym_SQUOTE = 32,
+  aux_sym__doublequote_string_content_token1 = 33,
+  aux_sym__singlequote_string_content_token1 = 34,
+  sym_escape_sequence = 35,
+  sym_vararg_expression = 36,
+  anon_sym_LPAREN = 37,
+  anon_sym_RPAREN = 38,
+  anon_sym_LBRACK = 39,
+  anon_sym_RBRACK = 40,
+  anon_sym_LBRACE = 41,
+  anon_sym_RBRACE = 42,
+  anon_sym_or = 43,
+  anon_sym_and = 44,
+  anon_sym_LT_EQ = 45,
+  anon_sym_EQ_EQ = 46,
+  anon_sym_TILDE_EQ = 47,
+  anon_sym_GT_EQ = 48,
+  anon_sym_PIPE = 49,
+  anon_sym_TILDE = 50,
+  anon_sym_AMP = 51,
+  anon_sym_LT_LT = 52,
+  anon_sym_GT_GT = 53,
+  anon_sym_PLUS = 54,
+  anon_sym_DASH = 55,
+  anon_sym_STAR = 56,
+  anon_sym_SLASH = 57,
+  anon_sym_SLASH_SLASH = 58,
+  anon_sym_PERCENT = 59,
+  anon_sym_DOT_DOT = 60,
+  anon_sym_CARET = 61,
+  anon_sym_not = 62,
+  anon_sym_POUND = 63,
+  anon_sym_DASH_DASH = 64,
+  aux_sym_comment_token1 = 65,
+  sym__block_comment_start = 66,
+  sym__block_comment_content = 67,
+  sym__block_comment_end = 68,
+  sym__block_string_start = 69,
+  sym__block_string_content = 70,
+  sym__block_string_end = 71,
+  sym_chunk = 72,
+  sym__block = 73,
+  sym_statement = 74,
+  sym_return_statement = 75,
+  sym_empty_statement = 76,
+  sym_assignment_statement = 77,
+  sym__variable_assignment_varlist = 78,
+  sym__variable_assignment_explist = 79,
+  sym_label_statement = 80,
+  sym_goto_statement = 81,
+  sym_do_statement = 82,
+  sym_while_statement = 83,
+  sym_repeat_statement = 84,
+  sym_if_statement = 85,
+  sym_elseif_statement = 86,
+  sym_else_statement = 87,
+  sym_for_statement = 88,
+  sym_for_generic_clause = 89,
+  sym_for_numeric_clause = 90,
+  sym_declaration = 91,
+  sym_function_declaration = 92,
+  sym__local_function_declaration = 93,
+  sym__function_name = 94,
+  sym__function_name_prefix_expression = 95,
+  sym__function_name_dot_index_expression = 96,
+  sym__function_name_method_index_expression = 97,
+  sym_variable_declaration = 98,
+  sym__local_variable_assignment = 99,
+  sym__name_list = 100,
+  sym__att_name_list = 101,
+  sym__attrib = 102,
+  sym__expression_list = 103,
+  sym_expression = 104,
+  sym_string = 105,
+  sym__quote_string = 106,
+  aux_sym__doublequote_string_content = 107,
+  aux_sym__singlequote_string_content = 108,
+  sym__block_string = 109,
+  sym_function_definition = 110,
+  sym__function_body = 111,
+  sym_parameters = 112,
+  sym__parameter_list = 113,
+  sym__prefix_expression = 114,
+  sym_variable = 115,
+  sym_bracket_index_expression = 116,
+  sym_dot_index_expression = 117,
+  sym_function_call = 118,
+  sym_method_index_expression = 119,
+  sym_arguments = 120,
+  sym_parenthesized_expression = 121,
+  sym_table_constructor = 122,
+  sym__field_list = 123,
+  sym__field_sep = 124,
+  sym_field = 125,
+  sym_binary_expression = 126,
+  sym_unary_expression = 127,
+  sym_comment = 128,
+  aux_sym_chunk_repeat1 = 129,
+  aux_sym__variable_assignment_varlist_repeat1 = 130,
+  aux_sym__variable_assignment_explist_repeat1 = 131,
+  aux_sym_if_statement_repeat1 = 132,
+  aux_sym__name_list_repeat1 = 133,
+  aux_sym__att_name_list_repeat1 = 134,
+  aux_sym__expression_list_repeat1 = 135,
+  aux_sym__field_list_repeat1 = 136,
 };
 
 static const char * const ts_symbol_names[] = {
@@ -178,6 +187,11 @@ static const char * const ts_symbol_names[] = {
   [sym_false] = "false",
   [sym_true] = "true",
   [sym_number] = "number",
+  [anon_sym_DQUOTE] = "\"",
+  [anon_sym_SQUOTE] = "'",
+  [aux_sym__doublequote_string_content_token1] = "_doublequote_string_content_token1",
+  [aux_sym__singlequote_string_content_token1] = "_singlequote_string_content_token1",
+  [sym_escape_sequence] = "escape_sequence",
   [sym_vararg_expression] = "vararg_expression",
   [anon_sym_LPAREN] = "(",
   [anon_sym_RPAREN] = ")",
@@ -211,9 +225,9 @@ static const char * const ts_symbol_names[] = {
   [sym__block_comment_start] = "comment_start",
   [sym__block_comment_content] = "comment_content",
   [sym__block_comment_end] = "comment_end",
-  [sym__string_start] = "string_start",
-  [sym__string_content] = "string_content",
-  [sym__string_end] = "string_end",
+  [sym__block_string_start] = "[[",
+  [sym__block_string_content] = "string_content",
+  [sym__block_string_end] = "]]",
   [sym_chunk] = "chunk",
   [sym__block] = "block",
   [sym_statement] = "statement",
@@ -248,6 +262,10 @@ static const char * const ts_symbol_names[] = {
   [sym__expression_list] = "expression_list",
   [sym_expression] = "expression",
   [sym_string] = "string",
+  [sym__quote_string] = "_quote_string",
+  [aux_sym__doublequote_string_content] = "_doublequote_string_content",
+  [aux_sym__singlequote_string_content] = "_singlequote_string_content",
+  [sym__block_string] = "_block_string",
   [sym_function_definition] = "function_definition",
   [sym__function_body] = "_function_body",
   [sym_parameters] = "parameters",
@@ -309,6 +327,11 @@ static const TSSymbol ts_symbol_map[] = {
   [sym_false] = sym_false,
   [sym_true] = sym_true,
   [sym_number] = sym_number,
+  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
+  [anon_sym_SQUOTE] = anon_sym_SQUOTE,
+  [aux_sym__doublequote_string_content_token1] = aux_sym__doublequote_string_content_token1,
+  [aux_sym__singlequote_string_content_token1] = aux_sym__singlequote_string_content_token1,
+  [sym_escape_sequence] = sym_escape_sequence,
   [sym_vararg_expression] = sym_vararg_expression,
   [anon_sym_LPAREN] = anon_sym_LPAREN,
   [anon_sym_RPAREN] = anon_sym_RPAREN,
@@ -342,9 +365,9 @@ static const TSSymbol ts_symbol_map[] = {
   [sym__block_comment_start] = sym__block_comment_start,
   [sym__block_comment_content] = sym__block_comment_content,
   [sym__block_comment_end] = sym__block_comment_end,
-  [sym__string_start] = sym__string_start,
-  [sym__string_content] = sym__string_content,
-  [sym__string_end] = sym__string_end,
+  [sym__block_string_start] = sym__block_string_start,
+  [sym__block_string_content] = sym__block_string_content,
+  [sym__block_string_end] = sym__block_string_end,
   [sym_chunk] = sym_chunk,
   [sym__block] = sym__block,
   [sym_statement] = sym_statement,
@@ -379,6 +402,10 @@ static const TSSymbol ts_symbol_map[] = {
   [sym__expression_list] = sym__variable_assignment_explist,
   [sym_expression] = sym_expression,
   [sym_string] = sym_string,
+  [sym__quote_string] = sym__quote_string,
+  [aux_sym__doublequote_string_content] = aux_sym__doublequote_string_content,
+  [aux_sym__singlequote_string_content] = aux_sym__singlequote_string_content,
+  [sym__block_string] = sym__block_string,
   [sym_function_definition] = sym_function_definition,
   [sym__function_body] = sym__function_body,
   [sym_parameters] = sym_parameters,
@@ -533,6 +560,26 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = true,
   },
+  [anon_sym_DQUOTE] = {
+    .visible = true,
+    .named = false,
+  },
+  [anon_sym_SQUOTE] = {
+    .visible = true,
+    .named = false,
+  },
+  [aux_sym__doublequote_string_content_token1] = {
+    .visible = false,
+    .named = false,
+  },
+  [aux_sym__singlequote_string_content_token1] = {
+    .visible = false,
+    .named = false,
+  },
+  [sym_escape_sequence] = {
+    .visible = true,
+    .named = true,
+  },
   [sym_vararg_expression] = {
     .visible = true,
     .named = true,
@@ -665,15 +712,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = false,
   },
-  [sym__string_start] = {
+  [sym__block_string_start] = {
     .visible = true,
     .named = false,
   },
-  [sym__string_content] = {
+  [sym__block_string_content] = {
     .visible = true,
-    .named = false,
+    .named = true,
   },
-  [sym__string_end] = {
+  [sym__block_string_end] = {
     .visible = true,
     .named = false,
   },
@@ -816,6 +863,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = true,
   },
+  [sym__quote_string] = {
+    .visible = false,
+    .named = true,
+  },
+  [aux_sym__doublequote_string_content] = {
+    .visible = false,
+    .named = false,
+  },
+  [aux_sym__singlequote_string_content] = {
+    .visible = false,
+    .named = false,
+  },
+  [sym__block_string] = {
+    .visible = false,
+    .named = true,
+  },
   [sym_function_definition] = {
     .visible = true,
     .named = true,
@@ -983,56 +1046,58 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
   [4] = {.index = 6, .length = 1},
   [5] = {.index = 7, .length = 2},
   [6] = {.index = 9, .length = 2},
-  [7] = {.index = 11, .length = 2},
-  [8] = {.index = 13, .length = 2},
-  [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},
+  [7] = {.index = 11, .length = 3},
+  [8] = {.index = 14, .length = 2},
+  [9] = {.index = 16, .length = 2},
+  [10] = {.index = 18, .length = 2},
+  [11] = {.index = 20, .length = 2},
+  [12] = {.index = 22, .length = 2},
+  [13] = {.index = 24, .length = 3},
+  [14] = {.index = 27, .length = 2},
+  [15] = {.index = 29, .length = 1},
+  [16] = {.index = 30, .length = 1},
+  [17] = {.index = 31, .length = 1},
+  [18] = {.index = 32, .length = 1},
+  [19] = {.index = 33, .length = 3},
+  [20] = {.index = 36, .length = 2},
+  [21] = {.index = 38, .length = 3},
+  [22] = {.index = 41, .length = 2},
+  [23] = {.index = 43, .length = 2},
+  [24] = {.index = 45, .length = 2},
+  [25] = {.index = 47, .length = 1},
+  [26] = {.index = 48, .length = 2},
+  [27] = {.index = 50, .length = 1},
+  [28] = {.index = 24, .length = 3},
   [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},
+  [31] = {.index = 54, .length = 2},
+  [32] = {.index = 56, .length = 1},
+  [33] = {.index = 57, .length = 1},
+  [34] = {.index = 58, .length = 1},
+  [35] = {.index = 59, .length = 3},
+  [36] = {.index = 62, .length = 4},
+  [37] = {.index = 66, .length = 4},
+  [38] = {.index = 70, .length = 3},
   [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},
+  [40] = {.index = 75, .length = 1},
+  [41] = {.index = 76, .length = 2},
+  [42] = {.index = 78, .length = 2},
+  [43] = {.index = 80, .length = 2},
+  [44] = {.index = 82, .length = 2},
+  [45] = {.index = 84, .length = 2},
+  [46] = {.index = 86, .length = 2},
+  [47] = {.index = 88, .length = 2},
+  [48] = {.index = 90, .length = 2},
   [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},
+  [50] = {.index = 94, .length = 1},
+  [51] = {.index = 95, .length = 2},
+  [52] = {.index = 97, .length = 3},
+  [53] = {.index = 100, .length = 3},
+  [54] = {.index = 103, .length = 3},
+  [55] = {.index = 106, .length = 3},
+  [56] = {.index = 109, .length = 2},
+  [57] = {.index = 111, .length = 4},
+  [58] = {.index = 115, .length = 4},
 };
 
 static const TSFieldMapEntry ts_field_map_entries[] = {
@@ -1054,156 +1119,160 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
     {field_content, 1},
     {field_start, 0},
   [11] =
+    {field_content, 0, .inherited = true},
+    {field_end, 0, .inherited = true},
+    {field_start, 0, .inherited = true},
+  [14] =
     {field_field, 0, .inherited = true},
     {field_table, 0, .inherited = true},
-  [13] =
+  [16] =
     {field_method, 0, .inherited = true},
     {field_table, 0, .inherited = true},
-  [15] =
+  [18] =
     {field_attribute, 1, .inherited = true},
     {field_name, 1, .inherited = true},
-  [17] =
+  [20] =
     {field_arguments, 1},
     {field_name, 0},
-  [19] =
+  [22] =
     {field_name, 0},
     {field_name, 1, .inherited = true},
-  [21] =
+  [24] =
     {field_content, 1},
     {field_end, 2},
     {field_start, 0},
-  [24] =
+  [27] =
     {field_body, 1, .inherited = true},
     {field_parameters, 1, .inherited = true},
-  [26] =
+  [29] =
     {field_value, 0},
-  [27] =
+  [30] =
     {field_operand, 1},
-  [28] =
+  [31] =
     {field_body, 1},
-  [29] =
+  [32] =
     {field_condition, 2},
-  [30] =
+  [33] =
     {field_body, 2, .inherited = true},
     {field_name, 1},
     {field_parameters, 2, .inherited = true},
-  [33] =
+  [36] =
     {field_attribute, 1},
     {field_name, 0},
-  [35] =
+  [38] =
     {field_attribute, 1, .inherited = true},
     {field_name, 0},
     {field_name, 1, .inherited = true},
-  [38] =
+  [41] =
     {field_name, 0, .inherited = true},
     {field_value, 2, .inherited = true},
-  [40] =
+  [43] =
     {field_field, 2},
     {field_table, 0},
-  [42] =
+  [45] =
     {field_method, 2},
     {field_table, 0},
-  [44] =
+  [47] =
     {field_name, 1},
-  [45] =
+  [48] =
     {field_name, 0, .inherited = true},
     {field_name, 1, .inherited = true},
-  [47] =
+  [50] =
     {field_parameters, 0},
-  [48] =
+  [51] =
     {field_left, 0},
     {field_right, 2},
-  [50] =
+  [53] =
     {field_condition, 1},
-  [51] =
+  [54] =
     {field_body, 1},
     {field_condition, 3},
-  [53] =
+  [56] =
     {field_alternative, 0},
-  [54] =
+  [57] =
     {field_clause, 1},
-  [55] =
+  [58] =
     {field_name, 0, .inherited = true},
-  [56] =
+  [59] =
     {field_body, 3, .inherited = true},
     {field_name, 2},
     {field_parameters, 3, .inherited = true},
-  [59] =
+  [62] =
     {field_attribute, 1},
     {field_attribute, 2, .inherited = true},
     {field_name, 0},
     {field_name, 2, .inherited = true},
-  [63] =
+  [66] =
     {field_attribute, 0, .inherited = true},
     {field_attribute, 1, .inherited = true},
     {field_name, 0, .inherited = true},
     {field_name, 1, .inherited = true},
-  [67] =
+  [70] =
     {field_attribute, 0, .inherited = true},
     {field_name, 0, .inherited = true},
     {field_value, 2, .inherited = true},
-  [70] =
+  [73] =
     {field_value, 0},
     {field_value, 1, .inherited = true},
-  [72] =
+  [75] =
     {field_name, 1, .inherited = true},
-  [73] =
+  [76] =
     {field_body, 1},
     {field_parameters, 0},
-  [75] =
+  [78] =
     {field_name, 0},
     {field_value, 2},
-  [77] =
+  [80] =
     {field_body, 3},
     {field_condition, 1},
-  [79] =
+  [82] =
     {field_condition, 1},
     {field_consequence, 3},
-  [81] =
+  [84] =
     {field_alternative, 3},
     {field_condition, 1},
-  [83] =
+  [86] =
     {field_alternative, 3, .inherited = true},
     {field_condition, 1},
-  [85] =
+  [88] =
     {field_alternative, 0, .inherited = true},
     {field_alternative, 1, .inherited = true},
-  [87] =
+  [90] =
     {field_body, 3},
     {field_clause, 1},
-  [89] =
+  [92] =
     {field_attribute, 2},
     {field_name, 1},
-  [91] =
+  [94] =
     {field_value, 1},
-  [92] =
+  [95] =
     {field_value, 0, .inherited = true},
     {field_value, 1, .inherited = true},
-  [94] =
+  [97] =
     {field_alternative, 4},
     {field_condition, 1},
     {field_consequence, 3},
-  [97] =
+  [100] =
     {field_alternative, 4, .inherited = true},
     {field_condition, 1},
     {field_consequence, 3},
-  [100] =
+  [103] =
     {field_alternative, 3, .inherited = true},
     {field_alternative, 4},
     {field_condition, 1},
-  [103] =
+  [106] =
     {field_end, 4},
     {field_name, 0},
     {field_start, 2},
-  [106] =
+  [109] =
     {field_name, 1},
     {field_value, 4},
-  [108] =
+  [111] =
     {field_alternative, 4, .inherited = true},
     {field_alternative, 5},
     {field_condition, 1},
     {field_consequence, 3},
-  [112] =
+  [115] =
     {field_end, 4},
     {field_name, 0},
     {field_start, 2},
@@ -1212,9 +1281,18 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
 
 static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
   [0] = {0},
+  [28] = {
+    [1] = sym__block_string_content,
+  },
 };
 
 static const uint16_t ts_non_terminal_alias_map[] = {
+  aux_sym__doublequote_string_content, 2,
+    aux_sym__doublequote_string_content,
+    sym__block_string_content,
+  aux_sym__singlequote_string_content, 2,
+    aux_sym__singlequote_string_content,
+    sym__block_string_content,
   0,
 };
 
@@ -1223,302 +1301,463 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
   eof = lexer->eof(lexer);
   switch (state) {
     case 0:
-      if (eof) ADVANCE(9);
-      if (lookahead == '#') ADVANCE(52);
-      if (lookahead == '%') ADVANCE(49);
-      if (lookahead == '&') ADVANCE(41);
-      if (lookahead == '(') ADVANCE(28);
-      if (lookahead == ')') ADVANCE(29);
-      if (lookahead == '*') ADVANCE(46);
-      if (lookahead == '+') ADVANCE(44);
-      if (lookahead == ',') ADVANCE(13);
-      if (lookahead == '-') ADVANCE(45);
-      if (lookahead == '.') ADVANCE(16);
-      if (lookahead == '/') ADVANCE(47);
-      if (lookahead == '0') ADVANCE(21);
-      if (lookahead == ':') ADVANCE(17);
-      if (lookahead == ';') ADVANCE(11);
-      if (lookahead == '<') ADVANCE(18);
-      if (lookahead == '=') ADVANCE(12);
-      if (lookahead == '>') ADVANCE(20);
-      if (lookahead == '[') ADVANCE(30);
-      if (lookahead == ']') ADVANCE(31);
-      if (lookahead == '^') ADVANCE(51);
-      if (lookahead == '{') ADVANCE(32);
-      if (lookahead == '|') ADVANCE(38);
-      if (lookahead == '}') ADVANCE(33);
-      if (lookahead == '~') ADVANCE(40);
+      if (eof) ADVANCE(19);
+      if (lookahead == '"') ADVANCE(37);
+      if (lookahead == '#') ADVANCE(73);
+      if (lookahead == '%') ADVANCE(70);
+      if (lookahead == '&') ADVANCE(62);
+      if (lookahead == '\'') ADVANCE(38);
+      if (lookahead == '(') ADVANCE(49);
+      if (lookahead == ')') ADVANCE(50);
+      if (lookahead == '*') ADVANCE(67);
+      if (lookahead == '+') ADVANCE(65);
+      if (lookahead == ',') ADVANCE(23);
+      if (lookahead == '-') ADVANCE(66);
+      if (lookahead == '.') ADVANCE(26);
+      if (lookahead == '/') ADVANCE(68);
+      if (lookahead == '0') ADVANCE(31);
+      if (lookahead == ':') ADVANCE(27);
+      if (lookahead == ';') ADVANCE(21);
+      if (lookahead == '<') ADVANCE(28);
+      if (lookahead == '=') ADVANCE(22);
+      if (lookahead == '>') ADVANCE(30);
+      if (lookahead == '[') ADVANCE(51);
+      if (lookahead == '\\') ADVANCE(6);
+      if (lookahead == ']') ADVANCE(52);
+      if (lookahead == '^') ADVANCE(72);
+      if (lookahead == '{') ADVANCE(53);
+      if (lookahead == '|') ADVANCE(59);
+      if (lookahead == '}') ADVANCE(54);
+      if (lookahead == '~') ADVANCE(61);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
-          lookahead == ' ') SKIP(0)
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(22);
+          lookahead == ' ') SKIP(16)
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(32);
       if (lookahead != 0 &&
           lookahead > 31 &&
-          lookahead != '"' &&
-          lookahead != '\'' &&
-          lookahead != '\\' &&
-          (lookahead < 127 || 159 < lookahead)) ADVANCE(53);
+          (lookahead < 127 || 159 < lookahead)) ADVANCE(74);
       END_STATE();
     case 1:
-      if (lookahead == '.') ADVANCE(2);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24);
+      if (lookahead == '"') ADVANCE(37);
+      if (lookahead == '-') ADVANCE(40);
+      if (lookahead == '\\') ADVANCE(6);
+      if (lookahead == '\t' ||
+          lookahead == '\n' ||
+          lookahead == '\r' ||
+          lookahead == ' ') ADVANCE(39);
+      if (lookahead != 0) ADVANCE(41);
       END_STATE();
     case 2:
-      if (lookahead == '.') ADVANCE(27);
+      if (lookahead == '\'') ADVANCE(38);
+      if (lookahead == '-') ADVANCE(43);
+      if (lookahead == '\\') ADVANCE(6);
+      if (lookahead == '\t' ||
+          lookahead == '\n' ||
+          lookahead == '\r' ||
+          lookahead == ' ') ADVANCE(42);
+      if (lookahead != 0) ADVANCE(44);
       END_STATE();
     case 3:
-      if (lookahead == '+' ||
-          lookahead == '-') ADVANCE(4);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26);
+      if (lookahead == '.') ADVANCE(4);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34);
       END_STATE();
     case 4:
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26);
+      if (lookahead == '.') ADVANCE(48);
       END_STATE();
     case 5:
+      if (lookahead == '.') ADVANCE(12);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(23);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(33);
       END_STATE();
     case 6:
+      if (lookahead == 'u') ADVANCE(7);
+      if (lookahead == 'x') ADVANCE(15);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47);
+      if (lookahead != 0) ADVANCE(45);
+      END_STATE();
+    case 7:
+      if (lookahead == '{') ADVANCE(13);
+      END_STATE();
+    case 8:
+      if (lookahead == '}') ADVANCE(45);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(25);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(8);
       END_STATE();
-    case 7:
-      if (eof) ADVANCE(9);
-      if (lookahead == '#') ADVANCE(52);
-      if (lookahead == '(') ADVANCE(28);
-      if (lookahead == ')') ADVANCE(29);
-      if (lookahead == '-') ADVANCE(45);
-      if (lookahead == '.') ADVANCE(1);
-      if (lookahead == '0') ADVANCE(21);
-      if (lookahead == ';') ADVANCE(11);
-      if (lookahead == '>') ADVANCE(19);
-      if (lookahead == '[') ADVANCE(30);
-      if (lookahead == '{') ADVANCE(32);
-      if (lookahead == '}') ADVANCE(33);
-      if (lookahead == '~') ADVANCE(39);
+    case 9:
+      if (lookahead == '+' ||
+          lookahead == '-') ADVANCE(10);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36);
+      END_STATE();
+    case 10:
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36);
+      END_STATE();
+    case 11:
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(45);
+      END_STATE();
+    case 12:
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(33);
+      END_STATE();
+    case 13:
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(8);
+      END_STATE();
+    case 14:
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(35);
+      END_STATE();
+    case 15:
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(11);
+      END_STATE();
+    case 16:
+      if (eof) ADVANCE(19);
+      if (lookahead == '"') ADVANCE(37);
+      if (lookahead == '#') ADVANCE(73);
+      if (lookahead == '%') ADVANCE(70);
+      if (lookahead == '&') ADVANCE(62);
+      if (lookahead == '\'') ADVANCE(38);
+      if (lookahead == '(') ADVANCE(49);
+      if (lookahead == ')') ADVANCE(50);
+      if (lookahead == '*') ADVANCE(67);
+      if (lookahead == '+') ADVANCE(65);
+      if (lookahead == ',') ADVANCE(23);
+      if (lookahead == '-') ADVANCE(66);
+      if (lookahead == '.') ADVANCE(26);
+      if (lookahead == '/') ADVANCE(68);
+      if (lookahead == '0') ADVANCE(31);
+      if (lookahead == ':') ADVANCE(27);
+      if (lookahead == ';') ADVANCE(21);
+      if (lookahead == '<') ADVANCE(28);
+      if (lookahead == '=') ADVANCE(22);
+      if (lookahead == '>') ADVANCE(30);
+      if (lookahead == '[') ADVANCE(51);
+      if (lookahead == ']') ADVANCE(52);
+      if (lookahead == '^') ADVANCE(72);
+      if (lookahead == '{') ADVANCE(53);
+      if (lookahead == '|') ADVANCE(59);
+      if (lookahead == '}') ADVANCE(54);
+      if (lookahead == '~') ADVANCE(61);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
-          lookahead == ' ') SKIP(7)
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(22);
+          lookahead == ' ') SKIP(16)
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(32);
+      if (lookahead != 0 &&
+          lookahead > 31 &&
+          lookahead != '\\' &&
+          (lookahead < 127 || 159 < lookahead)) ADVANCE(74);
+      END_STATE();
+    case 17:
+      if (eof) ADVANCE(19);
+      if (lookahead == '"') ADVANCE(37);
+      if (lookahead == '#') ADVANCE(73);
+      if (lookahead == '\'') ADVANCE(38);
+      if (lookahead == '(') ADVANCE(49);
+      if (lookahead == ')') ADVANCE(50);
+      if (lookahead == '-') ADVANCE(66);
+      if (lookahead == '.') ADVANCE(3);
+      if (lookahead == '0') ADVANCE(31);
+      if (lookahead == ';') ADVANCE(21);
+      if (lookahead == '>') ADVANCE(29);
+      if (lookahead == '[') ADVANCE(51);
+      if (lookahead == '{') ADVANCE(53);
+      if (lookahead == '}') ADVANCE(54);
+      if (lookahead == '~') ADVANCE(60);
+      if (lookahead == '\t' ||
+          lookahead == '\n' ||
+          lookahead == '\r' ||
+          lookahead == ' ') SKIP(17)
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(32);
       if (lookahead != 0 &&
           lookahead > 31 &&
-          lookahead != '"' &&
           (lookahead < '%' || '=' < lookahead) &&
           (lookahead < '\\' || '^' < lookahead) &&
-          (lookahead < '|' || 159 < lookahead)) ADVANCE(53);
+          (lookahead < '|' || 159 < lookahead)) ADVANCE(74);
       END_STATE();
-    case 8:
-      if (eof) ADVANCE(9);
-      if (lookahead == '#') ADVANCE(10);
-      if (lookahead == '%') ADVANCE(49);
-      if (lookahead == '&') ADVANCE(41);
-      if (lookahead == '(') ADVANCE(28);
-      if (lookahead == ')') ADVANCE(29);
-      if (lookahead == '*') ADVANCE(46);
-      if (lookahead == '+') ADVANCE(44);
-      if (lookahead == ',') ADVANCE(13);
-      if (lookahead == '-') ADVANCE(45);
-      if (lookahead == '.') ADVANCE(15);
-      if (lookahead == '/') ADVANCE(47);
-      if (lookahead == ':') ADVANCE(17);
-      if (lookahead == ';') ADVANCE(11);
-      if (lookahead == '<') ADVANCE(18);
-      if (lookahead == '=') ADVANCE(12);
-      if (lookahead == '>') ADVANCE(20);
-      if (lookahead == '[') ADVANCE(30);
-      if (lookahead == ']') ADVANCE(31);
-      if (lookahead == '^') ADVANCE(51);
-      if (lookahead == '{') ADVANCE(32);
-      if (lookahead == '|') ADVANCE(38);
-      if (lookahead == '}') ADVANCE(33);
-      if (lookahead == '~') ADVANCE(40);
+    case 18:
+      if (eof) ADVANCE(19);
+      if (lookahead == '"') ADVANCE(37);
+      if (lookahead == '#') ADVANCE(20);
+      if (lookahead == '%') ADVANCE(70);
+      if (lookahead == '&') ADVANCE(62);
+      if (lookahead == '\'') ADVANCE(38);
+      if (lookahead == '(') ADVANCE(49);
+      if (lookahead == ')') ADVANCE(50);
+      if (lookahead == '*') ADVANCE(67);
+      if (lookahead == '+') ADVANCE(65);
+      if (lookahead == ',') ADVANCE(23);
+      if (lookahead == '-') ADVANCE(66);
+      if (lookahead == '.') ADVANCE(25);
+      if (lookahead == '/') ADVANCE(68);
+      if (lookahead == ':') ADVANCE(27);
+      if (lookahead == ';') ADVANCE(21);
+      if (lookahead == '<') ADVANCE(28);
+      if (lookahead == '=') ADVANCE(22);
+      if (lookahead == '>') ADVANCE(30);
+      if (lookahead == '[') ADVANCE(51);
+      if (lookahead == ']') ADVANCE(52);
+      if (lookahead == '^') ADVANCE(72);
+      if (lookahead == '{') ADVANCE(53);
+      if (lookahead == '|') ADVANCE(59);
+      if (lookahead == '}') ADVANCE(54);
+      if (lookahead == '~') ADVANCE(61);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
-          lookahead == ' ') SKIP(8)
+          lookahead == ' ') SKIP(18)
       if (lookahead != 0 &&
           lookahead > 31 &&
-          lookahead != '"' &&
-          (lookahead < '\'' || '9' < lookahead) &&
+          (lookahead < '0' || '9' < lookahead) &&
           lookahead != '\\' &&
-          (lookahead < 127 || 159 < lookahead)) ADVANCE(53);
+          (lookahead < 127 || 159 < lookahead)) ADVANCE(74);
       END_STATE();
-    case 9:
+    case 19:
       ACCEPT_TOKEN(ts_builtin_sym_end);
       END_STATE();
-    case 10:
+    case 20:
       ACCEPT_TOKEN(sym_hash_bang_line);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(10);
+          lookahead != '\n') ADVANCE(20);
       END_STATE();
-    case 11:
+    case 21:
       ACCEPT_TOKEN(anon_sym_SEMI);
       END_STATE();
-    case 12:
+    case 22:
       ACCEPT_TOKEN(anon_sym_EQ);
-      if (lookahead == '=') ADVANCE(35);
+      if (lookahead == '=') ADVANCE(56);
       END_STATE();
-    case 13:
+    case 23:
       ACCEPT_TOKEN(anon_sym_COMMA);
       END_STATE();
-    case 14:
+    case 24:
       ACCEPT_TOKEN(anon_sym_COLON_COLON);
       END_STATE();
-    case 15:
+    case 25:
       ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(50);
+      if (lookahead == '.') ADVANCE(71);
       END_STATE();
-    case 16:
+    case 26:
       ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(50);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24);
+      if (lookahead == '.') ADVANCE(71);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34);
       END_STATE();
-    case 17:
+    case 27:
       ACCEPT_TOKEN(anon_sym_COLON);
-      if (lookahead == ':') ADVANCE(14);
+      if (lookahead == ':') ADVANCE(24);
       END_STATE();
-    case 18:
+    case 28:
       ACCEPT_TOKEN(anon_sym_LT);
-      if (lookahead == '<') ADVANCE(42);
-      if (lookahead == '=') ADVANCE(34);
+      if (lookahead == '<') ADVANCE(63);
+      if (lookahead == '=') ADVANCE(55);
       END_STATE();
-    case 19:
+    case 29:
       ACCEPT_TOKEN(anon_sym_GT);
       END_STATE();
-    case 20:
+    case 30:
       ACCEPT_TOKEN(anon_sym_GT);
-      if (lookahead == '=') ADVANCE(37);
-      if (lookahead == '>') ADVANCE(43);
+      if (lookahead == '=') ADVANCE(58);
+      if (lookahead == '>') ADVANCE(64);
       END_STATE();
-    case 21:
+    case 31:
       ACCEPT_TOKEN(sym_number);
-      if (lookahead == '.') ADVANCE(24);
+      if (lookahead == '.') ADVANCE(34);
       if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(3);
+          lookahead == 'e') ADVANCE(9);
       if (lookahead == 'X' ||
           lookahead == 'x') ADVANCE(5);
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(22);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(32);
       END_STATE();
-    case 22:
+    case 32:
       ACCEPT_TOKEN(sym_number);
-      if (lookahead == '.') ADVANCE(24);
+      if (lookahead == '.') ADVANCE(34);
       if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(3);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(22);
+          lookahead == 'e') ADVANCE(9);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(32);
       END_STATE();
-    case 23:
+    case 33:
       ACCEPT_TOKEN(sym_number);
-      if (lookahead == '.') ADVANCE(6);
+      if (lookahead == '.') ADVANCE(14);
       if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(3);
+          lookahead == 'p') ADVANCE(9);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(23);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(33);
       END_STATE();
-    case 24:
+    case 34:
       ACCEPT_TOKEN(sym_number);
       if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(3);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24);
+          lookahead == 'e') ADVANCE(9);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34);
       END_STATE();
-    case 25:
+    case 35:
       ACCEPT_TOKEN(sym_number);
       if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(3);
+          lookahead == 'p') ADVANCE(9);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(25);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(35);
       END_STATE();
-    case 26:
+    case 36:
       ACCEPT_TOKEN(sym_number);
-      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(26);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36);
       END_STATE();
-    case 27:
+    case 37:
+      ACCEPT_TOKEN(anon_sym_DQUOTE);
+      END_STATE();
+    case 38:
+      ACCEPT_TOKEN(anon_sym_SQUOTE);
+      END_STATE();
+    case 39:
+      ACCEPT_TOKEN(aux_sym__doublequote_string_content_token1);
+      if (lookahead == '-') ADVANCE(40);
+      if (lookahead == '\t' ||
+          lookahead == '\n' ||
+          lookahead == '\r' ||
+          lookahead == ' ') ADVANCE(39);
+      if (lookahead != 0 &&
+          lookahead != '"' &&
+          lookahead != '\\') ADVANCE(41);
+      END_STATE();
+    case 40:
+      ACCEPT_TOKEN(aux_sym__doublequote_string_content_token1);
+      if (lookahead == '-') ADVANCE(41);
+      if (lookahead != 0 &&
+          lookahead != '"' &&
+          lookahead != '\\') ADVANCE(41);
+      END_STATE();
+    case 41:
+      ACCEPT_TOKEN(aux_sym__doublequote_string_content_token1);
+      if (lookahead != 0 &&
+          lookahead != '"' &&
+          lookahead != '\\') ADVANCE(41);
+      END_STATE();
+    case 42:
+      ACCEPT_TOKEN(aux_sym__singlequote_string_content_token1);
+      if (lookahead == '-') ADVANCE(43);
+      if (lookahead == '\t' ||
+          lookahead == '\n' ||
+          lookahead == '\r' ||
+          lookahead == ' ') ADVANCE(42);
+      if (lookahead != 0 &&
+          lookahead != '\'' &&
+          lookahead != '\\') ADVANCE(44);
+      END_STATE();
+    case 43:
+      ACCEPT_TOKEN(aux_sym__singlequote_string_content_token1);
+      if (lookahead == '-') ADVANCE(44);
+      if (lookahead != 0 &&
+          lookahead != '\'' &&
+          lookahead != '\\') ADVANCE(44);
+      END_STATE();
+    case 44:
+      ACCEPT_TOKEN(aux_sym__singlequote_string_content_token1);
+      if (lookahead != 0 &&
+          lookahead != '\'' &&
+          lookahead != '\\') ADVANCE(44);
+      END_STATE();
+    case 45:
+      ACCEPT_TOKEN(sym_escape_sequence);
+      END_STATE();
+    case 46:
+      ACCEPT_TOKEN(sym_escape_sequence);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45);
+      END_STATE();
+    case 47:
+      ACCEPT_TOKEN(sym_escape_sequence);
+      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46);
+      END_STATE();
+    case 48:
       ACCEPT_TOKEN(sym_vararg_expression);
       END_STATE();
-    case 28:
+    case 49:
       ACCEPT_TOKEN(anon_sym_LPAREN);
       END_STATE();
-    case 29:
+    case 50:
       ACCEPT_TOKEN(anon_sym_RPAREN);
       END_STATE();
-    case 30:
+    case 51:
       ACCEPT_TOKEN(anon_sym_LBRACK);
       END_STATE();
-    case 31:
+    case 52:
       ACCEPT_TOKEN(anon_sym_RBRACK);
       END_STATE();
-    case 32:
+    case 53:
       ACCEPT_TOKEN(anon_sym_LBRACE);
       END_STATE();
-    case 33:
+    case 54:
       ACCEPT_TOKEN(anon_sym_RBRACE);
       END_STATE();
-    case 34:
+    case 55:
       ACCEPT_TOKEN(anon_sym_LT_EQ);
       END_STATE();
-    case 35:
+    case 56:
       ACCEPT_TOKEN(anon_sym_EQ_EQ);
       END_STATE();
-    case 36:
+    case 57:
       ACCEPT_TOKEN(anon_sym_TILDE_EQ);
       END_STATE();
-    case 37:
+    case 58:
       ACCEPT_TOKEN(anon_sym_GT_EQ);
       END_STATE();
-    case 38:
+    case 59:
       ACCEPT_TOKEN(anon_sym_PIPE);
       END_STATE();
-    case 39:
+    case 60:
       ACCEPT_TOKEN(anon_sym_TILDE);
       END_STATE();
-    case 40:
+    case 61:
       ACCEPT_TOKEN(anon_sym_TILDE);
-      if (lookahead == '=') ADVANCE(36);
+      if (lookahead == '=') ADVANCE(57);
       END_STATE();
-    case 41:
+    case 62:
       ACCEPT_TOKEN(anon_sym_AMP);
       END_STATE();
-    case 42:
+    case 63:
       ACCEPT_TOKEN(anon_sym_LT_LT);
       END_STATE();
-    case 43:
+    case 64:
       ACCEPT_TOKEN(anon_sym_GT_GT);
       END_STATE();
-    case 44:
+    case 65:
       ACCEPT_TOKEN(anon_sym_PLUS);
       END_STATE();
-    case 45:
+    case 66:
       ACCEPT_TOKEN(anon_sym_DASH);
-      if (lookahead == '-') ADVANCE(54);
+      if (lookahead == '-') ADVANCE(75);
       END_STATE();
-    case 46:
+    case 67:
       ACCEPT_TOKEN(anon_sym_STAR);
       END_STATE();
-    case 47:
+    case 68:
       ACCEPT_TOKEN(anon_sym_SLASH);
-      if (lookahead == '/') ADVANCE(48);
+      if (lookahead == '/') ADVANCE(69);
       END_STATE();
-    case 48:
+    case 69:
       ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
       END_STATE();
-    case 49:
+    case 70:
       ACCEPT_TOKEN(anon_sym_PERCENT);
       END_STATE();
-    case 50:
+    case 71:
       ACCEPT_TOKEN(anon_sym_DOT_DOT);
       END_STATE();
-    case 51:
+    case 72:
       ACCEPT_TOKEN(anon_sym_CARET);
       END_STATE();
-    case 52:
+    case 73:
       ACCEPT_TOKEN(anon_sym_POUND);
       END_STATE();
-    case 53:
+    case 74:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead != 0 &&
           lookahead > ' ' &&
@@ -1527,38 +1766,38 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           (lookahead < '%' || '/' < lookahead) &&
           (lookahead < ':' || '>' < lookahead) &&
           (lookahead < '[' || '^' < lookahead) &&
-          (lookahead < '{' || 159 < lookahead)) ADVANCE(53);
+          (lookahead < '{' || 159 < lookahead)) ADVANCE(74);
       END_STATE();
-    case 54:
+    case 75:
       ACCEPT_TOKEN(anon_sym_DASH_DASH);
       END_STATE();
-    case 55:
+    case 76:
       ACCEPT_TOKEN(anon_sym_DASH_DASH);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(79);
       END_STATE();
-    case 56:
+    case 77:
       ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '-') ADVANCE(57);
+      if (lookahead == '-') ADVANCE(78);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(56);
+          lookahead == ' ') ADVANCE(77);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(79);
       END_STATE();
-    case 57:
+    case 78:
       ACCEPT_TOKEN(aux_sym_comment_token1);
-      if (lookahead == '-') ADVANCE(55);
+      if (lookahead == '-') ADVANCE(76);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(79);
       END_STATE();
-    case 58:
+    case 79:
       ACCEPT_TOKEN(aux_sym_comment_token1);
       if (lookahead != 0 &&
           lookahead != '\n' &&
-          lookahead != '\r') ADVANCE(58);
+          lookahead != '\r') ADVANCE(79);
       END_STATE();
     default:
       return false;
@@ -1838,24 +2077,24 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
 
 static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [0] = {.lex_state = 0, .external_lex_state = 1},
-  [1] = {.lex_state = 8, .external_lex_state = 2},
-  [2] = {.lex_state = 8, .external_lex_state = 3},
-  [3] = {.lex_state = 8, .external_lex_state = 3},
-  [4] = {.lex_state = 8, .external_lex_state = 3},
-  [5] = {.lex_state = 8, .external_lex_state = 3},
-  [6] = {.lex_state = 8, .external_lex_state = 3},
-  [7] = {.lex_state = 8, .external_lex_state = 3},
-  [8] = {.lex_state = 8, .external_lex_state = 3},
-  [9] = {.lex_state = 8, .external_lex_state = 3},
-  [10] = {.lex_state = 8, .external_lex_state = 3},
-  [11] = {.lex_state = 8, .external_lex_state = 3},
-  [12] = {.lex_state = 8, .external_lex_state = 3},
-  [13] = {.lex_state = 8, .external_lex_state = 3},
-  [14] = {.lex_state = 8, .external_lex_state = 3},
-  [15] = {.lex_state = 8, .external_lex_state = 3},
-  [16] = {.lex_state = 0, .external_lex_state = 2},
-  [17] = {.lex_state = 0, .external_lex_state = 2},
-  [18] = {.lex_state = 0, .external_lex_state = 2},
+  [1] = {.lex_state = 18, .external_lex_state = 2},
+  [2] = {.lex_state = 18, .external_lex_state = 3},
+  [3] = {.lex_state = 18, .external_lex_state = 3},
+  [4] = {.lex_state = 18, .external_lex_state = 3},
+  [5] = {.lex_state = 18, .external_lex_state = 3},
+  [6] = {.lex_state = 18, .external_lex_state = 3},
+  [7] = {.lex_state = 18, .external_lex_state = 3},
+  [8] = {.lex_state = 18, .external_lex_state = 3},
+  [9] = {.lex_state = 18, .external_lex_state = 3},
+  [10] = {.lex_state = 18, .external_lex_state = 3},
+  [11] = {.lex_state = 18, .external_lex_state = 3},
+  [12] = {.lex_state = 18, .external_lex_state = 3},
+  [13] = {.lex_state = 18, .external_lex_state = 3},
+  [14] = {.lex_state = 18, .external_lex_state = 3},
+  [15] = {.lex_state = 18, .external_lex_state = 3},
+  [16] = {.lex_state = 18, .external_lex_state = 3},
+  [17] = {.lex_state = 18, .external_lex_state = 3},
+  [18] = {.lex_state = 18, .external_lex_state = 3},
   [19] = {.lex_state = 0, .external_lex_state = 2},
   [20] = {.lex_state = 0, .external_lex_state = 2},
   [21] = {.lex_state = 0, .external_lex_state = 2},
@@ -1890,54 +2129,54 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [50] = {.lex_state = 0, .external_lex_state = 2},
   [51] = {.lex_state = 0, .external_lex_state = 2},
   [52] = {.lex_state = 0, .external_lex_state = 2},
-  [53] = {.lex_state = 7, .external_lex_state = 3},
-  [54] = {.lex_state = 7, .external_lex_state = 3},
-  [55] = {.lex_state = 7, .external_lex_state = 3},
-  [56] = {.lex_state = 8, .external_lex_state = 3},
+  [53] = {.lex_state = 0, .external_lex_state = 2},
+  [54] = {.lex_state = 0, .external_lex_state = 2},
+  [55] = {.lex_state = 0, .external_lex_state = 2},
+  [56] = {.lex_state = 0, .external_lex_state = 2},
   [57] = {.lex_state = 0, .external_lex_state = 2},
   [58] = {.lex_state = 0, .external_lex_state = 2},
-  [59] = {.lex_state = 7, .external_lex_state = 3},
-  [60] = {.lex_state = 7, .external_lex_state = 3},
-  [61] = {.lex_state = 7, .external_lex_state = 3},
-  [62] = {.lex_state = 7, .external_lex_state = 3},
-  [63] = {.lex_state = 7, .external_lex_state = 3},
-  [64] = {.lex_state = 7, .external_lex_state = 3},
-  [65] = {.lex_state = 7, .external_lex_state = 3},
-  [66] = {.lex_state = 7, .external_lex_state = 3},
-  [67] = {.lex_state = 7, .external_lex_state = 3},
-  [68] = {.lex_state = 7, .external_lex_state = 3},
-  [69] = {.lex_state = 7, .external_lex_state = 3},
-  [70] = {.lex_state = 7, .external_lex_state = 3},
-  [71] = {.lex_state = 7, .external_lex_state = 3},
-  [72] = {.lex_state = 7, .external_lex_state = 3},
-  [73] = {.lex_state = 7, .external_lex_state = 3},
-  [74] = {.lex_state = 7, .external_lex_state = 3},
-  [75] = {.lex_state = 7, .external_lex_state = 3},
-  [76] = {.lex_state = 7, .external_lex_state = 3},
-  [77] = {.lex_state = 7, .external_lex_state = 3},
-  [78] = {.lex_state = 7, .external_lex_state = 3},
-  [79] = {.lex_state = 7, .external_lex_state = 3},
-  [80] = {.lex_state = 7, .external_lex_state = 3},
-  [81] = {.lex_state = 7, .external_lex_state = 3},
-  [82] = {.lex_state = 7, .external_lex_state = 3},
-  [83] = {.lex_state = 7, .external_lex_state = 3},
-  [84] = {.lex_state = 7, .external_lex_state = 3},
-  [85] = {.lex_state = 7, .external_lex_state = 3},
-  [86] = {.lex_state = 7, .external_lex_state = 3},
-  [87] = {.lex_state = 7, .external_lex_state = 3},
-  [88] = {.lex_state = 7, .external_lex_state = 3},
-  [89] = {.lex_state = 7, .external_lex_state = 3},
-  [90] = {.lex_state = 7, .external_lex_state = 3},
-  [91] = {.lex_state = 7, .external_lex_state = 3},
-  [92] = {.lex_state = 7, .external_lex_state = 3},
-  [93] = {.lex_state = 7, .external_lex_state = 3},
-  [94] = {.lex_state = 0, .external_lex_state = 2},
-  [95] = {.lex_state = 0, .external_lex_state = 2},
-  [96] = {.lex_state = 0, .external_lex_state = 2},
-  [97] = {.lex_state = 0, .external_lex_state = 2},
+  [59] = {.lex_state = 17, .external_lex_state = 3},
+  [60] = {.lex_state = 17, .external_lex_state = 3},
+  [61] = {.lex_state = 17, .external_lex_state = 3},
+  [62] = {.lex_state = 17, .external_lex_state = 3},
+  [63] = {.lex_state = 17, .external_lex_state = 3},
+  [64] = {.lex_state = 17, .external_lex_state = 3},
+  [65] = {.lex_state = 18, .external_lex_state = 3},
+  [66] = {.lex_state = 17, .external_lex_state = 3},
+  [67] = {.lex_state = 17, .external_lex_state = 3},
+  [68] = {.lex_state = 17, .external_lex_state = 3},
+  [69] = {.lex_state = 17, .external_lex_state = 3},
+  [70] = {.lex_state = 17, .external_lex_state = 3},
+  [71] = {.lex_state = 17, .external_lex_state = 3},
+  [72] = {.lex_state = 17, .external_lex_state = 3},
+  [73] = {.lex_state = 17, .external_lex_state = 3},
+  [74] = {.lex_state = 17, .external_lex_state = 3},
+  [75] = {.lex_state = 17, .external_lex_state = 3},
+  [76] = {.lex_state = 17, .external_lex_state = 3},
+  [77] = {.lex_state = 17, .external_lex_state = 3},
+  [78] = {.lex_state = 17, .external_lex_state = 3},
+  [79] = {.lex_state = 17, .external_lex_state = 3},
+  [80] = {.lex_state = 17, .external_lex_state = 3},
+  [81] = {.lex_state = 17, .external_lex_state = 3},
+  [82] = {.lex_state = 17, .external_lex_state = 3},
+  [83] = {.lex_state = 17, .external_lex_state = 3},
+  [84] = {.lex_state = 17, .external_lex_state = 3},
+  [85] = {.lex_state = 17, .external_lex_state = 3},
+  [86] = {.lex_state = 17, .external_lex_state = 3},
+  [87] = {.lex_state = 17, .external_lex_state = 3},
+  [88] = {.lex_state = 17, .external_lex_state = 3},
+  [89] = {.lex_state = 17, .external_lex_state = 3},
+  [90] = {.lex_state = 17, .external_lex_state = 3},
+  [91] = {.lex_state = 17, .external_lex_state = 3},
+  [92] = {.lex_state = 17, .external_lex_state = 3},
+  [93] = {.lex_state = 17, .external_lex_state = 3},
+  [94] = {.lex_state = 17, .external_lex_state = 3},
+  [95] = {.lex_state = 17, .external_lex_state = 3},
+  [96] = {.lex_state = 17, .external_lex_state = 3},
+  [97] = {.lex_state = 17, .external_lex_state = 3},
   [98] = {.lex_state = 0, .external_lex_state = 2},
-  [99] = {.lex_state = 8, .external_lex_state = 3},
-  [100] = {.lex_state = 0, .external_lex_state = 2},
+  [99] = {.lex_state = 0, .external_lex_state = 2},
+  [100] = {.lex_state = 18, .external_lex_state = 3},
   [101] = {.lex_state = 0, .external_lex_state = 2},
   [102] = {.lex_state = 0, .external_lex_state = 2},
   [103] = {.lex_state = 0, .external_lex_state = 2},
@@ -1984,122 +2223,140 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [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 = 7, .external_lex_state = 3},
+  [147] = {.lex_state = 0, .external_lex_state = 2},
   [148] = {.lex_state = 0, .external_lex_state = 2},
   [149] = {.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 = 8, .external_lex_state = 3},
-  [153] = {.lex_state = 8, .external_lex_state = 3},
+  [152] = {.lex_state = 0, .external_lex_state = 2},
+  [153] = {.lex_state = 17, .external_lex_state = 3},
   [154] = {.lex_state = 0, .external_lex_state = 2},
-  [155] = {.lex_state = 8, .external_lex_state = 3},
-  [156] = {.lex_state = 8, .external_lex_state = 3},
-  [157] = {.lex_state = 0, .external_lex_state = 2},
+  [155] = {.lex_state = 0, .external_lex_state = 2},
+  [156] = {.lex_state = 18, .external_lex_state = 3},
+  [157] = {.lex_state = 18, .external_lex_state = 3},
   [158] = {.lex_state = 0, .external_lex_state = 2},
   [159] = {.lex_state = 0, .external_lex_state = 3},
-  [160] = {.lex_state = 0, .external_lex_state = 2},
+  [160] = {.lex_state = 18, .external_lex_state = 3},
   [161] = {.lex_state = 0, .external_lex_state = 2},
   [162] = {.lex_state = 0, .external_lex_state = 2},
-  [163] = {.lex_state = 0, .external_lex_state = 2},
+  [163] = {.lex_state = 18, .external_lex_state = 3},
   [164] = {.lex_state = 0, .external_lex_state = 2},
   [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 = 0, .external_lex_state = 2},
-  [169] = {.lex_state = 0, .external_lex_state = 2},
+  [169] = {.lex_state = 0, .external_lex_state = 3},
   [170] = {.lex_state = 0, .external_lex_state = 2},
   [171] = {.lex_state = 0, .external_lex_state = 2},
-  [172] = {.lex_state = 7, .external_lex_state = 2},
+  [172] = {.lex_state = 0, .external_lex_state = 2},
   [173] = {.lex_state = 0, .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},
+  [176] = {.lex_state = 2, .external_lex_state = 2},
+  [177] = {.lex_state = 17, .external_lex_state = 2},
   [178] = {.lex_state = 0, .external_lex_state = 2},
-  [179] = {.lex_state = 0, .external_lex_state = 2},
-  [180] = {.lex_state = 8, .external_lex_state = 2},
-  [181] = {.lex_state = 8, .external_lex_state = 2},
-  [182] = {.lex_state = 8, .external_lex_state = 2},
-  [183] = {.lex_state = 8, .external_lex_state = 2},
-  [184] = {.lex_state = 0, .external_lex_state = 2},
-  [185] = {.lex_state = 0, .external_lex_state = 2},
+  [179] = {.lex_state = 2, .external_lex_state = 2},
+  [180] = {.lex_state = 2, .external_lex_state = 2},
+  [181] = {.lex_state = 1, .external_lex_state = 2},
+  [182] = {.lex_state = 0, .external_lex_state = 2},
+  [183] = {.lex_state = 1, .external_lex_state = 2},
+  [184] = {.lex_state = 1, .external_lex_state = 2},
+  [185] = {.lex_state = 1, .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},
+  [187] = {.lex_state = 2, .external_lex_state = 2},
+  [188] = {.lex_state = 2, .external_lex_state = 2},
+  [189] = {.lex_state = 0, .external_lex_state = 2},
   [190] = {.lex_state = 0, .external_lex_state = 2},
   [191] = {.lex_state = 0, .external_lex_state = 2},
-  [192] = {.lex_state = 0, .external_lex_state = 2},
+  [192] = {.lex_state = 1, .external_lex_state = 2},
   [193] = {.lex_state = 0, .external_lex_state = 2},
-  [194] = {.lex_state = 0, .external_lex_state = 4},
-  [195] = {.lex_state = 7, .external_lex_state = 2},
-  [196] = {.lex_state = 0, .external_lex_state = 4},
-  [197] = {.lex_state = 7, .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},
+  [194] = {.lex_state = 1, .external_lex_state = 2},
+  [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},
+  [199] = {.lex_state = 18, .external_lex_state = 2},
+  [200] = {.lex_state = 18, .external_lex_state = 2},
+  [201] = {.lex_state = 18, .external_lex_state = 2},
   [202] = {.lex_state = 0, .external_lex_state = 2},
   [203] = {.lex_state = 0, .external_lex_state = 2},
   [204] = {.lex_state = 0, .external_lex_state = 2},
-  [205] = {.lex_state = 0, .external_lex_state = 2},
+  [205] = {.lex_state = 18, .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 = 6},
+  [208] = {.lex_state = 0, .external_lex_state = 2},
   [209] = {.lex_state = 0, .external_lex_state = 2},
-  [210] = {.lex_state = 0, .external_lex_state = 2},
+  [210] = {.lex_state = 2, .external_lex_state = 2},
   [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},
+  [212] = {.lex_state = 17, .external_lex_state = 2},
+  [213] = {.lex_state = 0, .external_lex_state = 4},
+  [214] = {.lex_state = 17, .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 = 7, .external_lex_state = 2},
+  [219] = {.lex_state = 0, .external_lex_state = 2},
   [220] = {.lex_state = 0, .external_lex_state = 2},
-  [221] = {.lex_state = 0, .external_lex_state = 6},
+  [221] = {.lex_state = 0, .external_lex_state = 2},
   [222] = {.lex_state = 0, .external_lex_state = 2},
   [223] = {.lex_state = 0, .external_lex_state = 2},
   [224] = {.lex_state = 0, .external_lex_state = 2},
-  [225] = {.lex_state = 0, .external_lex_state = 2},
+  [225] = {.lex_state = 17, .external_lex_state = 2},
   [226] = {.lex_state = 0, .external_lex_state = 2},
-  [227] = {.lex_state = 0, .external_lex_state = 2},
+  [227] = {.lex_state = 0, .external_lex_state = 5},
   [228] = {.lex_state = 0, .external_lex_state = 2},
-  [229] = {.lex_state = 0, .external_lex_state = 2},
+  [229] = {.lex_state = 0, .external_lex_state = 6},
   [230] = {.lex_state = 0, .external_lex_state = 2},
   [231] = {.lex_state = 0, .external_lex_state = 2},
   [232] = {.lex_state = 0, .external_lex_state = 2},
-  [233] = {.lex_state = 56, .external_lex_state = 2},
+  [233] = {.lex_state = 0, .external_lex_state = 2},
   [234] = {.lex_state = 0, .external_lex_state = 2},
-  [235] = {.lex_state = 0, .external_lex_state = 7},
+  [235] = {.lex_state = 0, .external_lex_state = 2},
   [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)},
+  [242] = {.lex_state = 0, .external_lex_state = 2},
+  [243] = {.lex_state = 0, .external_lex_state = 2},
+  [244] = {.lex_state = 0, .external_lex_state = 2},
+  [245] = {.lex_state = 0, .external_lex_state = 2},
+  [246] = {.lex_state = 0, .external_lex_state = 2},
+  [247] = {.lex_state = 0, .external_lex_state = 2},
+  [248] = {.lex_state = 0, .external_lex_state = 2},
+  [249] = {.lex_state = 0, .external_lex_state = 6},
+  [250] = {.lex_state = 0, .external_lex_state = 2},
+  [251] = {.lex_state = 0, .external_lex_state = 2},
+  [252] = {.lex_state = 77, .external_lex_state = 2},
+  [253] = {.lex_state = 0, .external_lex_state = 7},
+  [254] = {.lex_state = 0, .external_lex_state = 2},
+  [255] = {.lex_state = 0, .external_lex_state = 2},
+  [256] = {.lex_state = 0, .external_lex_state = 2},
+  [257] = {.lex_state = 0, .external_lex_state = 2},
+  [258] = {.lex_state = 0, .external_lex_state = 5},
+  [259] = {.lex_state = 0, .external_lex_state = 2},
+  [260] = {(TSStateId)(-1)},
+  [261] = {(TSStateId)(-1)},
+  [262] = {(TSStateId)(-1)},
 };
 
 enum {
   ts_external_token__block_comment_start = 0,
   ts_external_token__block_comment_content = 1,
   ts_external_token__block_comment_end = 2,
-  ts_external_token__string_start = 3,
-  ts_external_token__string_content = 4,
-  ts_external_token__string_end = 5,
+  ts_external_token__block_string_start = 3,
+  ts_external_token__block_string_content = 4,
+  ts_external_token__block_string_end = 5,
 };
 
 static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
   [ts_external_token__block_comment_start] = sym__block_comment_start,
   [ts_external_token__block_comment_content] = sym__block_comment_content,
   [ts_external_token__block_comment_end] = sym__block_comment_end,
-  [ts_external_token__string_start] = sym__string_start,
-  [ts_external_token__string_content] = sym__string_content,
-  [ts_external_token__string_end] = sym__string_end,
+  [ts_external_token__block_string_start] = sym__block_string_start,
+  [ts_external_token__block_string_content] = sym__block_string_content,
+  [ts_external_token__block_string_end] = sym__block_string_end,
 };
 
 static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = {
@@ -2107,30 +2364,29 @@ static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = {
     [ts_external_token__block_comment_start] = true,
     [ts_external_token__block_comment_content] = true,
     [ts_external_token__block_comment_end] = true,
-    [ts_external_token__string_start] = true,
-    [ts_external_token__string_content] = true,
-    [ts_external_token__string_end] = true,
+    [ts_external_token__block_string_start] = true,
+    [ts_external_token__block_string_content] = true,
+    [ts_external_token__block_string_end] = true,
   },
   [2] = {
     [ts_external_token__block_comment_start] = true,
   },
   [3] = {
     [ts_external_token__block_comment_start] = true,
-    [ts_external_token__string_start] = true,
+    [ts_external_token__block_string_start] = true,
   },
   [4] = {
     [ts_external_token__block_comment_start] = true,
-    [ts_external_token__string_content] = true,
-    [ts_external_token__string_end] = true,
+    [ts_external_token__block_comment_content] = true,
+    [ts_external_token__block_comment_end] = true,
   },
   [5] = {
     [ts_external_token__block_comment_start] = true,
-    [ts_external_token__block_comment_content] = true,
-    [ts_external_token__block_comment_end] = true,
+    [ts_external_token__block_string_end] = true,
   },
   [6] = {
     [ts_external_token__block_comment_start] = true,
-    [ts_external_token__string_end] = true,
+    [ts_external_token__block_string_content] = true,
   },
   [7] = {
     [ts_external_token__block_comment_start] = true,
@@ -2171,6 +2427,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [sym_false] = ACTIONS(1),
     [sym_true] = ACTIONS(1),
     [sym_number] = ACTIONS(1),
+    [anon_sym_DQUOTE] = ACTIONS(1),
+    [anon_sym_SQUOTE] = ACTIONS(1),
+    [sym_escape_sequence] = ACTIONS(1),
     [anon_sym_LPAREN] = ACTIONS(1),
     [anon_sym_RPAREN] = ACTIONS(1),
     [anon_sym_LBRACK] = ACTIONS(1),
@@ -2202,37 +2461,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [sym__block_comment_start] = ACTIONS(5),
     [sym__block_comment_content] = ACTIONS(1),
     [sym__block_comment_end] = ACTIONS(1),
-    [sym__string_start] = ACTIONS(1),
-    [sym__string_content] = ACTIONS(1),
-    [sym__string_end] = ACTIONS(1),
+    [sym__block_string_start] = ACTIONS(1),
+    [sym__block_string_content] = ACTIONS(1),
+    [sym__block_string_end] = ACTIONS(1),
   },
   [1] = {
-    [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(236),
-    [sym_label_statement] = STATE(121),
-    [sym_goto_statement] = STATE(121),
-    [sym_do_statement] = STATE(121),
-    [sym_while_statement] = STATE(121),
-    [sym_repeat_statement] = STATE(121),
-    [sym_if_statement] = STATE(121),
-    [sym_for_statement] = STATE(121),
-    [sym_declaration] = STATE(135),
-    [sym_function_declaration] = STATE(139),
-    [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_chunk] = STATE(256),
+    [sym_statement] = STATE(134),
+    [sym_return_statement] = STATE(255),
+    [sym_empty_statement] = STATE(136),
+    [sym_assignment_statement] = STATE(136),
+    [sym__variable_assignment_varlist] = STATE(254),
+    [sym_label_statement] = STATE(136),
+    [sym_goto_statement] = STATE(136),
+    [sym_do_statement] = STATE(136),
+    [sym_while_statement] = STATE(136),
+    [sym_repeat_statement] = STATE(136),
+    [sym_if_statement] = STATE(136),
+    [sym_for_statement] = STATE(136),
+    [sym_declaration] = STATE(142),
+    [sym_function_declaration] = STATE(144),
+    [sym__local_function_declaration] = STATE(146),
+    [sym_variable_declaration] = STATE(147),
+    [sym__prefix_expression] = STATE(156),
+    [sym_variable] = STATE(157),
+    [sym_bracket_index_expression] = STATE(4),
+    [sym_dot_index_expression] = STATE(4),
+    [sym_function_call] = STATE(100),
     [sym_method_index_expression] = STATE(159),
-    [sym_parenthesized_expression] = STATE(156),
+    [sym_parenthesized_expression] = STATE(163),
     [sym_comment] = STATE(1),
-    [aux_sym_chunk_repeat1] = STATE(51),
+    [aux_sym_chunk_repeat1] = STATE(58),
     [ts_builtin_sym_end] = ACTIONS(7),
     [sym_identifier] = ACTIONS(9),
     [sym_hash_bang_line] = ACTIONS(11),
@@ -2262,32 +2521,6 @@ static const uint16_t ts_small_parse_table[] = {
       sym__block_comment_start,
     STATE(2), 1,
       sym_comment,
-    ACTIONS(39), 25,
-      sym__string_start,
-      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,
-      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(41), 26,
       anon_sym_return,
       anon_sym_EQ,
@@ -2315,19 +2548,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [65] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(3), 1,
-      sym_comment,
-    ACTIONS(43), 25,
-      sym__string_start,
+    ACTIONS(39), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2348,6 +2576,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [67] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(3), 1,
+      sym_comment,
     ACTIONS(45), 26,
       anon_sym_return,
       anon_sym_EQ,
@@ -2375,19 +2610,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [130] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(4), 1,
-      sym_comment,
-    ACTIONS(47), 25,
-      sym__string_start,
+    ACTIONS(43), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2408,6 +2638,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [134] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(4), 1,
+      sym_comment,
     ACTIONS(49), 26,
       anon_sym_return,
       anon_sym_EQ,
@@ -2435,19 +2672,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [195] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(5), 1,
-      sym_comment,
-    ACTIONS(51), 25,
-      sym__string_start,
+    ACTIONS(47), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2468,6 +2700,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [201] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(5), 1,
+      sym_comment,
     ACTIONS(53), 25,
       anon_sym_return,
       sym_break_statement,
@@ -2494,19 +2733,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [259] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(6), 1,
-      sym_comment,
-    ACTIONS(55), 25,
-      sym__string_start,
+    ACTIONS(51), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2527,6 +2761,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [267] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(6), 1,
+      sym_comment,
     ACTIONS(57), 25,
       anon_sym_return,
       sym_break_statement,
@@ -2553,19 +2794,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [323] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(7), 1,
-      sym_comment,
-    ACTIONS(59), 25,
-      sym__string_start,
+    ACTIONS(55), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2586,6 +2822,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [333] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(7), 1,
+      sym_comment,
     ACTIONS(61), 25,
       anon_sym_return,
       sym_break_statement,
@@ -2612,19 +2855,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [387] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(8), 1,
-      sym_comment,
-    ACTIONS(63), 25,
-      sym__string_start,
+    ACTIONS(59), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2645,6 +2883,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [399] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(8), 1,
+      sym_comment,
     ACTIONS(65), 25,
       anon_sym_return,
       sym_break_statement,
@@ -2671,24 +2916,58 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [451] = 5,
+    ACTIONS(63), 27,
+      sym__block_string_start,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
+      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,
+      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,
+  [465] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(9), 1,
       sym_comment,
-    ACTIONS(67), 25,
-      sym__string_start,
+    ACTIONS(71), 2,
+      anon_sym_DOT,
+      anon_sym_COLON,
+    ACTIONS(73), 6,
+      sym__block_string_start,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
+      anon_sym_LPAREN,
+      anon_sym_LBRACK,
+      anon_sym_LBRACE,
+    ACTIONS(67), 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,
@@ -2704,7 +2983,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(69), 25,
+    ACTIONS(69), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2720,8 +2999,6 @@ 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_LT,
       anon_sym_GT,
       anon_sym_or,
@@ -2730,19 +3007,47 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [515] = 5,
+  [535] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     STATE(10), 1,
       sym_comment,
-    ACTIONS(71), 25,
-      sym__string_start,
+    ACTIONS(77), 25,
+      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_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,
+    ACTIONS(75), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2763,7 +3068,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(73), 25,
+  [601] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(11), 1,
+      sym_comment,
+    ACTIONS(81), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2789,28 +3101,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [579] = 7,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(11), 1,
-      sym_comment,
-    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,
+    ACTIONS(79), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
+      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,
@@ -2826,7 +3129,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(77), 23,
+  [667] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(12), 1,
+      sym_comment,
+    ACTIONS(85), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2842,6 +3152,8 @@ 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_LT,
       anon_sym_GT,
       anon_sym_or,
@@ -2850,19 +3162,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [647] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(12), 1,
-      sym_comment,
-    ACTIONS(83), 25,
-      sym__string_start,
+    ACTIONS(83), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2883,7 +3190,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(85), 25,
+  [733] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(13), 1,
+      sym_comment,
+    ACTIONS(89), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -2909,19 +3223,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [711] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(13), 1,
-      sym_comment,
-    ACTIONS(87), 25,
-      sym__string_start,
+    ACTIONS(87), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -2942,6 +3251,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [799] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(14), 1,
+      sym_comment,
     ACTIONS(89), 25,
       anon_sym_return,
       sym_break_statement,
@@ -2968,19 +3284,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [775] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(14), 1,
-      sym_comment,
-    ACTIONS(91), 25,
-      sym__string_start,
+    ACTIONS(87), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -3001,6 +3312,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [865] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(15), 1,
+      sym_comment,
     ACTIONS(93), 25,
       anon_sym_return,
       sym_break_statement,
@@ -3027,19 +3345,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [839] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(15), 1,
-      sym_comment,
-    ACTIONS(95), 25,
-      sym__string_start,
+    ACTIONS(91), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_LBRACK,
@@ -3060,6 +3373,13 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
+  [931] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(16), 1,
+      sym_comment,
     ACTIONS(97), 25,
       anon_sym_return,
       sym_break_statement,
@@ -3086,21 +3406,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [903] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(16), 1,
-      sym_comment,
-    ACTIONS(99), 22,
+    ACTIONS(95), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       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,
@@ -3116,7 +3434,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(101), 23,
+  [997] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(17), 1,
+      sym_comment,
+    ACTIONS(101), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3132,6 +3457,8 @@ 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_LT,
       anon_sym_GT,
       anon_sym_or,
@@ -3140,21 +3467,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [962] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(17), 1,
-      sym_comment,
-    ACTIONS(103), 22,
+    ACTIONS(99), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       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,
@@ -3170,69 +3495,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(105), 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,
-      anon_sym_SLASH,
-      sym_identifier,
-  [1021] = 11,
+  [1063] = 5,
     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,
     STATE(18), 1,
       sym_comment,
-    ACTIONS(115), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(107), 16,
-      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,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(109), 21,
+    ACTIONS(105), 25,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3248,29 +3518,29 @@ 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_LT,
       anon_sym_GT,
       anon_sym_or,
       anon_sym_and,
       anon_sym_TILDE,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       sym_identifier,
-  [1092] = 6,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
-    STATE(19), 1,
-      sym_comment,
-    ACTIONS(107), 21,
+    ACTIONS(103), 27,
+      sym__block_string_start,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       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,
@@ -3285,46 +3555,15 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
-    ACTIONS(109), 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,
-      anon_sym_SLASH,
-      sym_identifier,
-  [1153] = 8,
+      anon_sym_CARET,
+  [1129] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
-    STATE(20), 1,
+    STATE(19), 1,
       sym_comment,
-    ACTIONS(115), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(107), 18,
+    ACTIONS(99), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3342,8 +3581,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(109), 22,
+      anon_sym_CARET,
+    ACTIONS(101), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3365,17 +3608,16 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
+      anon_sym_SLASH,
       sym_identifier,
-  [1218] = 6,
+  [1188] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
-    STATE(21), 1,
+    STATE(20), 1,
       sym_comment,
-    ACTIONS(123), 21,
+    ACTIONS(67), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -3397,7 +3639,8 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
-    ACTIONS(125), 23,
+      anon_sym_CARET,
+    ACTIONS(69), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -3421,87 +3664,27 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [1279] = 11,
+  [1247] = 12,
     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,
-    STATE(22), 1,
-      sym_comment,
-    ACTIONS(115), 3,
-      anon_sym_STAR,
-      anon_sym_SLASH_SLASH,
-      anon_sym_PERCENT,
-    ACTIONS(107), 16,
-      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,
-      anon_sym_LT_LT,
-      anon_sym_GT_GT,
-    ACTIONS(109), 21,
-      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,
-      sym_identifier,
-  [1350] = 12,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(111), 1,
       anon_sym_PLUS,
-    ACTIONS(113), 1,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    STATE(23), 1,
+    STATE(21), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
@@ -3542,29 +3725,29 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_and,
       anon_sym_TILDE,
       sym_identifier,
-  [1423] = 13,
+  [1320] = 13,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    STATE(24), 1,
+    STATE(22), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
@@ -3604,31 +3787,31 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_and,
       anon_sym_TILDE,
       sym_identifier,
-  [1498] = 14,
+  [1395] = 14,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    STATE(25), 1,
+    STATE(23), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
@@ -3667,40 +3850,40 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_or,
       anon_sym_and,
       sym_identifier,
-  [1575] = 17,
+  [1472] = 17,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    STATE(26), 1,
+    STATE(24), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
@@ -3733,42 +3916,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_or,
       anon_sym_and,
       sym_identifier,
-  [1658] = 18,
+  [1555] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(139), 1,
+    ACTIONS(135), 1,
       anon_sym_and,
-    STATE(27), 1,
+    STATE(25), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
@@ -3800,33 +3983,33 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
       anon_sym_or,
       sym_identifier,
-  [1743] = 15,
+  [1640] = 15,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    STATE(28), 1,
+    STATE(26), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
@@ -3864,105 +4047,17 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_or,
       anon_sym_and,
       sym_identifier,
-  [1822] = 39,
+  [1719] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(9), 1,
-      sym_identifier,
-    ACTIONS(15), 1,
+    STATE(27), 1,
+      sym_comment,
+    ACTIONS(87), 22,
+      ts_builtin_sym_end,
       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(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_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
@@ -3982,7 +4077,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(151), 23,
+    ACTIONS(89), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4006,14 +4101,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2008] = 5,
+  [1778] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(31), 1,
+    STATE(28), 1,
       sym_comment,
-    ACTIONS(55), 22,
+    ACTIONS(51), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4036,7 +4131,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(57), 23,
+    ACTIONS(53), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4060,16 +4155,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2067] = 6,
+  [1837] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
-    STATE(32), 1,
+    STATE(29), 1,
       sym_comment,
-    ACTIONS(107), 21,
+    ACTIONS(103), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4091,7 +4184,8 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
-    ACTIONS(109), 23,
+      anon_sym_CARET,
+    ACTIONS(105), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4115,14 +4209,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2128] = 5,
+  [1896] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(33), 1,
+    STATE(30), 1,
       sym_comment,
-    ACTIONS(95), 22,
+    ACTIONS(137), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4145,7 +4239,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(97), 23,
+    ACTIONS(139), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4169,14 +4263,102 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2187] = 5,
+  [1955] = 39,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(34), 1,
+    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(141), 1,
+      anon_sym_return,
+    ACTIONS(143), 1,
+      anon_sym_end,
+    ACTIONS(145), 1,
+      anon_sym_elseif,
+    ACTIONS(147), 1,
+      anon_sym_else,
+    STATE(31), 1,
       sym_comment,
-    ACTIONS(67), 22,
+    STATE(44), 1,
+      aux_sym_chunk_repeat1,
+    STATE(100), 1,
+      sym_function_call,
+    STATE(134), 1,
+      sym_statement,
+    STATE(142), 1,
+      sym_declaration,
+    STATE(144), 1,
+      sym_function_declaration,
+    STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
+      sym_variable_declaration,
+    STATE(156), 1,
+      sym__prefix_expression,
+    STATE(157), 1,
+      sym_variable,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(164), 1,
+      sym__block,
+    STATE(165), 1,
+      aux_sym_if_statement_repeat1,
+    STATE(191), 1,
+      sym_return_statement,
+    STATE(198), 1,
+      sym_elseif_statement,
+    STATE(243), 1,
+      sym_else_statement,
+    STATE(254), 1,
+      sym__variable_assignment_varlist,
+    STATE(4), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    STATE(136), 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,
+  [2082] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(32), 1,
+      sym_comment,
+    ACTIONS(149), 22,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4199,7 +4381,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
       anon_sym_CARET,
-    ACTIONS(69), 23,
+    ACTIONS(151), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4223,14 +4405,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2246] = 5,
+  [2141] = 8,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(35), 1,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    STATE(33), 1,
       sym_comment,
-    ACTIONS(71), 22,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(107), 18,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4248,12 +4438,8 @@ 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,
-      anon_sym_CARET,
-    ACTIONS(73), 23,
+    ACTIONS(109), 22,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4275,16 +4461,17 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_and,
       anon_sym_TILDE,
       anon_sym_DASH,
-      anon_sym_SLASH,
       sym_identifier,
-  [2305] = 5,
+  [2206] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(36), 1,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    STATE(34), 1,
       sym_comment,
-    ACTIONS(75), 22,
+    ACTIONS(107), 21,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -4306,8 +4493,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
       anon_sym_DOT_DOT,
-      anon_sym_CARET,
-    ACTIONS(77), 23,
+    ACTIONS(109), 23,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4331,58 +4517,45 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_SLASH,
       sym_identifier,
-  [2364] = 21,
+  [2267] = 11,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 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,
+    STATE(35), 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,
+    ACTIONS(117), 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,
+    ACTIONS(107), 16,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(155), 15,
+      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(109), 21,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4392,80 +4565,541 @@ static const uint16_t ts_small_parse_table[] = {
       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,
       sym_identifier,
-  [2452] = 31,
+  [2338] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(161), 1,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    STATE(36), 1,
+      sym_comment,
+    ACTIONS(107), 21,
       ts_builtin_sym_end,
-    ACTIONS(163), 1,
+      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,
+      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,
+      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,
+      anon_sym_SLASH,
+      sym_identifier,
+  [2399] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(37), 1,
+      sym_comment,
+    ACTIONS(95), 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,
+      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(97), 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,
+      anon_sym_SLASH,
+      sym_identifier,
+  [2458] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(38), 1,
+      sym_comment,
+    ACTIONS(153), 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,
+      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(155), 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,
+      anon_sym_SLASH,
+      sym_identifier,
+  [2517] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(39), 1,
+      sym_comment,
+    ACTIONS(91), 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,
+      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(93), 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,
+      anon_sym_SLASH,
+      sym_identifier,
+  [2576] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    STATE(40), 1,
+      sym_comment,
+    ACTIONS(157), 21,
+      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,
+      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(159), 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,
+      anon_sym_SLASH,
+      sym_identifier,
+  [2637] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(41), 1,
+      sym_comment,
+    ACTIONS(87), 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,
+      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(89), 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,
+      anon_sym_SLASH,
       sym_identifier,
-    ACTIONS(168), 1,
+  [2696] = 11,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(113), 1,
+      anon_sym_PLUS,
+    ACTIONS(115), 1,
+      anon_sym_DASH,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    STATE(42), 1,
+      sym_comment,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(107), 16,
+      ts_builtin_sym_end,
       anon_sym_SEMI,
-    ACTIONS(171), 1,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
-    ACTIONS(174), 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,
+      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,
-    ACTIONS(177), 1,
       anon_sym_goto,
-    ACTIONS(180), 1,
       anon_sym_do,
-    ACTIONS(183), 1,
+      anon_sym_end,
       anon_sym_while,
-    ACTIONS(186), 1,
       anon_sym_repeat,
-    ACTIONS(189), 1,
+      anon_sym_until,
       anon_sym_if,
-    ACTIONS(192), 1,
+      anon_sym_then,
+      anon_sym_elseif,
+      anon_sym_else,
       anon_sym_for,
-    ACTIONS(195), 1,
       anon_sym_function,
-    ACTIONS(198), 1,
       anon_sym_local,
-    ACTIONS(201), 1,
+      anon_sym_LT,
+      anon_sym_GT,
+      anon_sym_or,
+      anon_sym_and,
+      anon_sym_TILDE,
+      sym_identifier,
+  [2767] = 21,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(113), 1,
+      anon_sym_PLUS,
+    ACTIONS(115), 1,
+      anon_sym_DASH,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    ACTIONS(125), 1,
+      anon_sym_AMP,
+    ACTIONS(127), 1,
+      anon_sym_TILDE,
+    ACTIONS(133), 1,
+      anon_sym_PIPE,
+    ACTIONS(135), 1,
+      anon_sym_and,
+    ACTIONS(165), 1,
+      anon_sym_COMMA,
+    ACTIONS(167), 1,
+      anon_sym_or,
+    STATE(43), 1,
+      sym_comment,
+    STATE(122), 1,
+      aux_sym__variable_assignment_explist_repeat1,
+    ACTIONS(111), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(129), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(131), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(161), 4,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    STATE(99), 1,
+    ACTIONS(163), 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,
+  [2855] = 33,
+    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(141), 1,
+      anon_sym_return,
+    STATE(44), 1,
+      sym_comment,
+    STATE(46), 1,
+      aux_sym_chunk_repeat1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(236), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(190), 1,
+      sym_return_statement,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(38), 2,
-      sym_comment,
-      aux_sym_chunk_repeat1,
-    ACTIONS(166), 5,
-      anon_sym_return,
+    ACTIONS(169), 4,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
       anon_sym_else,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -4475,7 +5109,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [2560] = 34,
+  [2967] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -4508,44 +5142,44 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    STATE(39), 1,
-      sym_comment,
-    STATE(40), 1,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(99), 1,
+    STATE(45), 1,
+      sym_comment,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(178), 1,
+    STATE(197), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(204), 3,
+    ACTIONS(171), 3,
       anon_sym_end,
       anon_sym_elseif,
       anon_sym_else,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -4555,76 +5189,74 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [2674] = 33,
+  [3081] = 31,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(9), 1,
+    ACTIONS(173), 1,
+      ts_builtin_sym_end,
+    ACTIONS(175), 1,
       sym_identifier,
-    ACTIONS(15), 1,
+    ACTIONS(180), 1,
       anon_sym_SEMI,
-    ACTIONS(17), 1,
+    ACTIONS(183), 1,
       anon_sym_COLON_COLON,
-    ACTIONS(19), 1,
+    ACTIONS(186), 1,
       sym_break_statement,
-    ACTIONS(21), 1,
+    ACTIONS(189), 1,
       anon_sym_goto,
-    ACTIONS(23), 1,
+    ACTIONS(192), 1,
       anon_sym_do,
-    ACTIONS(25), 1,
+    ACTIONS(195), 1,
       anon_sym_while,
-    ACTIONS(27), 1,
+    ACTIONS(198), 1,
       anon_sym_repeat,
-    ACTIONS(29), 1,
+    ACTIONS(201), 1,
       anon_sym_if,
-    ACTIONS(31), 1,
+    ACTIONS(204), 1,
       anon_sym_for,
-    ACTIONS(33), 1,
+    ACTIONS(207), 1,
       anon_sym_function,
-    ACTIONS(35), 1,
+    ACTIONS(210), 1,
       anon_sym_local,
-    ACTIONS(37), 1,
+    ACTIONS(213), 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,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 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,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(206), 4,
+    STATE(46), 2,
+      sym_comment,
+      aux_sym_chunk_repeat1,
+    ACTIONS(178), 5,
+      anon_sym_return,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
       anon_sym_else,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -4634,55 +5266,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [2786] = 19,
+  [3189] = 19,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(139), 1,
+    ACTIONS(135), 1,
       anon_sym_and,
-    ACTIONS(159), 1,
+    ACTIONS(167), 1,
       anon_sym_or,
-    STATE(41), 1,
+    STATE(47), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-    ACTIONS(208), 5,
+    ACTIONS(216), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(210), 15,
+    ACTIONS(218), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4698,7 +5330,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [2869] = 34,
+  [3272] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -4731,42 +5363,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(212), 1,
+    ACTIONS(220), 1,
       anon_sym_end,
-    STATE(40), 1,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(42), 1,
+    STATE(48), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(200), 1,
+    STATE(246), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -4776,7 +5408,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [2981] = 34,
+  [3384] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -4809,42 +5441,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(214), 1,
+    ACTIONS(222), 1,
       anon_sym_end,
-    STATE(40), 1,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(43), 1,
+    STATE(49), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(218), 1,
+    STATE(230), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -4854,54 +5486,54 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3093] = 19,
+  [3496] = 19,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(139), 1,
+    ACTIONS(135), 1,
       anon_sym_and,
-    ACTIONS(159), 1,
+    ACTIONS(167), 1,
       anon_sym_or,
-    STATE(44), 1,
+    STATE(50), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-    ACTIONS(216), 4,
+    ACTIONS(224), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(218), 15,
+    ACTIONS(226), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -4917,7 +5549,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [3175] = 34,
+  [3578] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -4950,42 +5582,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(220), 1,
+    ACTIONS(228), 1,
       anon_sym_end,
-    STATE(40), 1,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(45), 1,
+    STATE(51), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(225), 1,
+    STATE(239), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -4995,7 +5627,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3287] = 34,
+  [3690] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5028,42 +5660,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(222), 1,
-      anon_sym_until,
-    STATE(40), 1,
+    ACTIONS(230), 1,
+      anon_sym_end,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(46), 1,
+    STATE(52), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(224), 1,
+    STATE(237), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -5073,7 +5705,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3399] = 34,
+  [3802] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5106,42 +5738,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(224), 1,
+    ACTIONS(232), 1,
       anon_sym_end,
-    STATE(40), 1,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(47), 1,
+    STATE(53), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(232), 1,
+    STATE(219), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -5151,54 +5783,54 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3511] = 19,
+  [3914] = 19,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(139), 1,
+    ACTIONS(135), 1,
       anon_sym_and,
-    ACTIONS(159), 1,
+    ACTIONS(167), 1,
       anon_sym_or,
-    STATE(48), 1,
+    STATE(54), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-    ACTIONS(226), 4,
+    ACTIONS(234), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(228), 15,
+    ACTIONS(236), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -5214,7 +5846,7 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [3593] = 34,
+  [3996] = 34,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5247,42 +5879,42 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_LPAREN,
     ACTIONS(141), 1,
       anon_sym_return,
-    ACTIONS(230), 1,
-      anon_sym_end,
-    STATE(40), 1,
+    ACTIONS(238), 1,
+      anon_sym_until,
+    STATE(44), 1,
       aux_sym_chunk_repeat1,
-    STATE(49), 1,
+    STATE(55), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(170), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(191), 1,
       sym_return_statement,
-    STATE(217), 1,
+    STATE(245), 1,
       sym__block,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -5292,7 +5924,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3705] = 33,
+  [4108] = 33,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5325,40 +5957,40 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(232), 1,
+    ACTIONS(240), 1,
       ts_builtin_sym_end,
-    STATE(38), 1,
-      aux_sym_chunk_repeat1,
-    STATE(50), 1,
+    STATE(56), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(57), 1,
+      aux_sym_chunk_repeat1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(209), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(250), 1,
       sym_return_statement,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -5368,7 +6000,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3814] = 33,
+  [4217] = 33,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5401,40 +6033,40 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(234), 1,
+    ACTIONS(242), 1,
       ts_builtin_sym_end,
-    STATE(38), 1,
+    STATE(46), 1,
       aux_sym_chunk_repeat1,
-    STATE(51), 1,
+    STATE(57), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(231), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(215), 1,
       sym_return_statement,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -5444,7 +6076,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [3923] = 33,
+  [4326] = 33,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5477,40 +6109,40 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_local,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(234), 1,
+    ACTIONS(240), 1,
       ts_builtin_sym_end,
-    STATE(50), 1,
+    STATE(46), 1,
       aux_sym_chunk_repeat1,
-    STATE(52), 1,
+    STATE(58), 1,
       sym_comment,
-    STATE(99), 1,
+    STATE(100), 1,
       sym_function_call,
-    STATE(125), 1,
+    STATE(134), 1,
       sym_statement,
-    STATE(135), 1,
+    STATE(142), 1,
       sym_declaration,
-    STATE(139), 1,
+    STATE(144), 1,
       sym_function_declaration,
-    STATE(145), 1,
-      sym__local_function_declaration,
     STATE(146), 1,
+      sym__local_function_declaration,
+    STATE(147), 1,
       sym_variable_declaration,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(153), 1,
+    STATE(157), 1,
       sym_variable,
-    STATE(156), 1,
-      sym_parenthesized_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(231), 1,
+    STATE(163), 1,
+      sym_parenthesized_expression,
+    STATE(250), 1,
       sym_return_statement,
-    STATE(236), 1,
+    STATE(254), 1,
       sym__variable_assignment_varlist,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    STATE(121), 9,
+    STATE(136), 9,
       sym_empty_statement,
       sym_assignment_statement,
       sym_label_statement,
@@ -5520,7 +6152,7 @@ static const uint16_t ts_small_parse_table[] = {
       sym_repeat_statement,
       sym_if_statement,
       sym_for_statement,
-  [4032] = 21,
+  [4435] = 25,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5529,374 +6161,257 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(236), 1,
+    ACTIONS(244), 1,
       anon_sym_SEMI,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(53), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(59), 1,
       sym_comment,
-    STATE(58), 1,
+    STATE(99), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(157), 1,
-      sym__expression_list,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    STATE(166), 1,
+      sym__expression_list,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    ACTIONS(238), 4,
+    ACTIONS(246), 4,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
       anon_sym_else,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4111] = 22,
+  [4526] = 26,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
-      anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
     ACTIONS(254), 1,
-      sym_identifier,
+      anon_sym_DQUOTE,
     ACTIONS(256), 1,
-      anon_sym_LBRACK,
+      anon_sym_SQUOTE,
     ACTIONS(258), 1,
-      anon_sym_RBRACE,
-    STATE(54), 1,
-      sym_comment,
-    STATE(95), 1,
-      sym_expression,
-    STATE(152), 1,
-      sym__prefix_expression,
-    STATE(159), 1,
-      sym_method_index_expression,
-    STATE(166), 1,
-      sym_field,
-    STATE(206), 1,
-      sym__field_list,
-    ACTIONS(244), 2,
-      sym_number,
-      sym_vararg_expression,
-    ACTIONS(248), 2,
-      anon_sym_TILDE,
-      anon_sym_POUND,
-    ACTIONS(250), 2,
-      anon_sym_DASH,
-      anon_sym_not,
-    STATE(2), 2,
-      sym_bracket_index_expression,
-      sym_dot_index_expression,
-    ACTIONS(242), 3,
-      sym_nil,
-      sym_false,
-      sym_true,
-    STATE(11), 3,
-      sym_variable,
-      sym_function_call,
-      sym_parenthesized_expression,
-    STATE(36), 5,
-      sym_string,
-      sym_function_definition,
-      sym_table_constructor,
-      sym_binary_expression,
-      sym_unary_expression,
-  [4190] = 22,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(37), 1,
-      anon_sym_LPAREN,
-    ACTIONS(240), 1,
-      anon_sym_function,
-    ACTIONS(246), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    ACTIONS(254), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(266), 1,
       sym_identifier,
-    ACTIONS(256), 1,
+    ACTIONS(268), 1,
       anon_sym_LBRACK,
-    ACTIONS(260), 1,
+    ACTIONS(270), 1,
       anon_sym_RBRACE,
-    STATE(55), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(60), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(104), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(166), 1,
+    STATE(174), 1,
       sym_field,
-    STATE(210), 1,
+    STATE(251), 1,
       sym__field_list,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
-      sym_false,
-      sym_true,
-    STATE(11), 3,
-      sym_variable,
-      sym_function_call,
-      sym_parenthesized_expression,
-    STATE(36), 5,
-      sym_string,
-      sym_function_definition,
-      sym_table_constructor,
-      sym_binary_expression,
-      sym_unary_expression,
-  [4269] = 6,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(262), 1,
-      anon_sym_EQ,
-    STATE(56), 1,
-      sym_comment,
-    ACTIONS(41), 6,
-      anon_sym_DOT,
-      anon_sym_LT,
-      anon_sym_GT,
-      anon_sym_TILDE,
-      anon_sym_DASH,
-      anon_sym_SLASH,
-    ACTIONS(39), 24,
-      sym__string_start,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-      anon_sym_COLON,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-      anon_sym_RBRACE,
-      anon_sym_or,
-      anon_sym_and,
-      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,
-  [4316] = 19,
-    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(266), 1,
-      anon_sym_else,
-    ACTIONS(268), 1,
-      anon_sym_or,
-    ACTIONS(270), 1,
-      anon_sym_and,
-    STATE(57), 1,
-      sym_comment,
-    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(264), 8,
-      ts_builtin_sym_end,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-      anon_sym_do,
-      anon_sym_end,
-      anon_sym_until,
-      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,
+      sym_false,
+      sym_true,
+    STATE(9), 3,
+      sym_variable,
+      sym_function_call,
+      sym_parenthesized_expression,
+    STATE(20), 5,
+      sym_string,
+      sym_function_definition,
+      sym_table_constructor,
+      sym_binary_expression,
+      sym_unary_expression,
+  [4617] = 26,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
-      anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
     ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
+      anon_sym_LBRACE,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(266), 1,
       sym_identifier,
+    ACTIONS(268), 1,
+      anon_sym_LBRACK,
+    ACTIONS(272), 1,
+      anon_sym_RBRACE,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(61), 1,
+      sym_comment,
+    STATE(104), 1,
+      sym_expression,
+    STATE(156), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(174), 1,
+      sym_field,
+    STATE(224), 1,
+      sym__field_list,
+    ACTIONS(252), 2,
+      sym_number,
+      sym_vararg_expression,
+    ACTIONS(260), 2,
+      anon_sym_TILDE,
+      anon_sym_POUND,
+    ACTIONS(262), 2,
+      anon_sym_DASH,
+      anon_sym_not,
+    STATE(4), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    ACTIONS(250), 3,
+      sym_nil,
+      sym_false,
+      sym_true,
+    STATE(9), 3,
+      sym_variable,
+      sym_function_call,
+      sym_parenthesized_expression,
+    STATE(20), 5,
+      sym_string,
+      sym_function_definition,
+      sym_table_constructor,
+      sym_binary_expression,
+      sym_unary_expression,
+  [4708] = 25,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(37), 1,
+      anon_sym_LPAREN,
+    ACTIONS(248), 1,
+      anon_sym_function,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
     ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
+      anon_sym_LBRACE,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(266), 1,
+      sym_identifier,
+    ACTIONS(268), 1,
       anon_sym_LBRACK,
-    ACTIONS(278), 1,
+    ACTIONS(274), 1,
       anon_sym_RBRACE,
-    STATE(59), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(62), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(104), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(187), 1,
+    STATE(211), 1,
       sym_field,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4540] = 21,
+  [4796] = 25,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -5905,161 +6420,228 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(236), 1,
+    ACTIONS(244), 1,
       anon_sym_SEMI,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    ACTIONS(280), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(276), 1,
       ts_builtin_sym_end,
-    STATE(58), 1,
-      sym_expression,
-    STATE(60), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(63), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(99), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
-    STATE(157), 1,
-      sym__expression_list,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    STATE(166), 1,
+      sym__expression_list,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4616] = 21,
+  [4884] = 25,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
-      anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
     ACTIONS(254), 1,
-      sym_identifier,
+      anon_sym_DQUOTE,
     ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
+      anon_sym_LBRACE,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(266), 1,
+      sym_identifier,
+    ACTIONS(268), 1,
       anon_sym_LBRACK,
-    ACTIONS(282), 1,
+    ACTIONS(278), 1,
       anon_sym_RBRACE,
-    STATE(61), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(64), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(104), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(187), 1,
+    STATE(211), 1,
       sym_field,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4692] = 20,
+  [4972] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(280), 1,
+      anon_sym_EQ,
+    STATE(65), 1,
+      sym_comment,
+    ACTIONS(49), 6,
+      anon_sym_DOT,
+      anon_sym_LT,
+      anon_sym_GT,
+      anon_sym_TILDE,
+      anon_sym_DASH,
+      anon_sym_SLASH,
+    ACTIONS(47), 26,
+      sym__block_string_start,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
+      anon_sym_LPAREN,
+      anon_sym_LBRACK,
+      anon_sym_LBRACE,
+      anon_sym_RBRACE,
+      anon_sym_or,
+      anon_sym_and,
+      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,
+  [5021] = 24,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
-      anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
     ACTIONS(254), 1,
-      sym_identifier,
+      anon_sym_DQUOTE,
     ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
+      anon_sym_LBRACE,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(266), 1,
+      sym_identifier,
+    ACTIONS(268), 1,
       anon_sym_LBRACK,
-    STATE(62), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(66), 1,
       sym_comment,
-    STATE(95), 1,
+    STATE(104), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(187), 1,
+    STATE(211), 1,
       sym_field,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4765] = 19,
+  [5106] = 23,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6068,49 +6650,57 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(37), 1,
-      sym_expression,
-    STATE(63), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    ACTIONS(282), 1,
+      anon_sym_RPAREN,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(67), 1,
       sym_comment,
-    STATE(128), 1,
-      sym__variable_assignment_explist,
-    STATE(152), 1,
+    STATE(103), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4835] = 19,
+  [5188] = 23,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6119,49 +6709,57 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(58), 1,
-      sym_expression,
-    STATE(64), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(68), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(99), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    STATE(228), 1,
+    STATE(226), 1,
       sym__expression_list,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4905] = 19,
+  [5270] = 23,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6170,49 +6768,57 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(37), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(43), 1,
       sym_expression,
-    STATE(65), 1,
+    STATE(69), 1,
       sym_comment,
-    STATE(129), 1,
+    STATE(140), 1,
       sym__variable_assignment_explist,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [4975] = 19,
+  [5352] = 23,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6221,49 +6827,57 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    ACTIONS(284), 1,
-      anon_sym_RPAREN,
-    STATE(66), 1,
-      sym_comment,
-    STATE(97), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(43), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(70), 1,
+      sym_comment,
+    STATE(137), 1,
+      sym__variable_assignment_explist,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5045] = 18,
+  [5434] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6272,47 +6886,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(21), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(22), 1,
       sym_expression,
-    STATE(67), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(71), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5112] = 18,
+  [5513] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6321,47 +6943,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
-      anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(68), 1,
-      sym_comment,
-    STATE(101), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
+      anon_sym_LBRACE,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(36), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(72), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5179] = 18,
+  [5592] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6370,47 +7000,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(69), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(73), 1,
       sym_comment,
-    STATE(109), 1,
+    STATE(108), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5246] = 18,
+  [5671] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6419,47 +7057,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(70), 1,
-      sym_comment,
-    STATE(103), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(54), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(74), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5313] = 18,
+  [5750] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6468,47 +7114,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(71), 1,
-      sym_comment,
-    STATE(98), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(47), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(75), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5380] = 18,
+  [5829] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6517,47 +7171,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(41), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(40), 1,
       sym_expression,
-    STATE(72), 1,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(76), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5447] = 18,
+  [5908] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6566,47 +7228,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(23), 1,
-      sym_expression,
-    STATE(73), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(77), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(101), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5514] = 18,
+  [5987] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6615,47 +7285,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(74), 1,
-      sym_comment,
-    STATE(104), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(35), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(78), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5581] = 18,
+  [6066] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6664,47 +7342,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(75), 1,
-      sym_comment,
-    STATE(110), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(34), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(79), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5648] = 18,
+  [6145] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6713,47 +7399,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(22), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(33), 1,
       sym_expression,
-    STATE(76), 1,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(80), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5715] = 18,
+  [6224] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6762,47 +7456,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(24), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(42), 1,
       sym_expression,
-    STATE(77), 1,
+    STATE(81), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5782] = 18,
+  [6303] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6811,47 +7513,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(78), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(82), 1,
       sym_comment,
-    STATE(108), 1,
+    STATE(109), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5849] = 18,
+  [6382] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6860,47 +7570,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(79), 1,
-      sym_comment,
-    STATE(96), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(23), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(83), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5916] = 18,
+  [6461] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6909,47 +7627,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(57), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(24), 1,
       sym_expression,
-    STATE(80), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(84), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [5983] = 18,
+  [6540] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -6958,47 +7684,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(25), 1,
-      sym_expression,
-    STATE(81), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(85), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(102), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6050] = 18,
+  [6619] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7007,47 +7741,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(82), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(86), 1,
       sym_comment,
-    STATE(112), 1,
+    STATE(116), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6117] = 18,
+  [6698] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7056,47 +7798,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(26), 1,
-      sym_expression,
-    STATE(83), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(87), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(115), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6184] = 18,
+  [6777] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7105,47 +7855,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(27), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(25), 1,
       sym_expression,
-    STATE(84), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(88), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6251] = 18,
+  [6856] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7154,47 +7912,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(28), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(26), 1,
       sym_expression,
-    STATE(85), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(89), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6318] = 18,
+  [6935] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7203,47 +7969,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(48), 1,
-      sym_expression,
-    STATE(86), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(90), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(98), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6385] = 18,
+  [7014] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7252,47 +8026,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(20), 1,
-      sym_expression,
-    STATE(87), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(91), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(119), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6452] = 18,
+  [7093] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7301,47 +8083,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(19), 1,
-      sym_expression,
-    STATE(88), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(92), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(110), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6519] = 18,
+  [7172] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7350,47 +8140,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(89), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(93), 1,
       sym_comment,
-    STATE(111), 1,
+    STATE(114), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6586] = 18,
+  [7251] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7399,47 +8197,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(18), 1,
-      sym_expression,
-    STATE(90), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(94), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(106), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6653] = 18,
+  [7330] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7448,47 +8254,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(32), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(50), 1,
       sym_expression,
-    STATE(91), 1,
+    STATE(95), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6720] = 18,
+  [7409] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7497,47 +8311,55 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(44), 1,
-      sym_expression,
-    STATE(92), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(96), 1,
       sym_comment,
-    STATE(152), 1,
+    STATE(111), 1,
+      sym_expression,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6787] = 18,
+  [7488] = 22,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
@@ -7546,323 +8368,184 @@ static const uint16_t ts_small_parse_table[] = {
       sym_identifier,
     ACTIONS(37), 1,
       anon_sym_LPAREN,
-    ACTIONS(240), 1,
+    ACTIONS(248), 1,
       anon_sym_function,
-    ACTIONS(246), 1,
+    ACTIONS(254), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(256), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(258), 1,
       anon_sym_LBRACE,
-    ACTIONS(252), 1,
-      sym__string_start,
-    STATE(93), 1,
-      sym_comment,
-    STATE(107), 1,
+    ACTIONS(264), 1,
+      sym__block_string_start,
+    STATE(21), 1,
       sym_expression,
-    STATE(152), 1,
+    STATE(27), 1,
+      sym__quote_string,
+    STATE(41), 1,
+      sym__block_string,
+    STATE(97), 1,
+      sym_comment,
+    STATE(156), 1,
       sym__prefix_expression,
     STATE(159), 1,
       sym_method_index_expression,
-    ACTIONS(244), 2,
+    ACTIONS(252), 2,
       sym_number,
       sym_vararg_expression,
-    ACTIONS(248), 2,
+    ACTIONS(260), 2,
       anon_sym_TILDE,
       anon_sym_POUND,
-    ACTIONS(250), 2,
+    ACTIONS(262), 2,
       anon_sym_DASH,
       anon_sym_not,
-    STATE(2), 2,
+    STATE(4), 2,
       sym_bracket_index_expression,
       sym_dot_index_expression,
-    ACTIONS(242), 3,
+    ACTIONS(250), 3,
       sym_nil,
       sym_false,
       sym_true,
-    STATE(11), 3,
+    STATE(9), 3,
       sym_variable,
       sym_function_call,
       sym_parenthesized_expression,
-    STATE(36), 5,
+    STATE(20), 5,
       sym_string,
       sym_function_definition,
       sym_table_constructor,
       sym_binary_expression,
       sym_unary_expression,
-  [6854] = 9,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(290), 1,
-      anon_sym_COMMA,
-    ACTIONS(292), 1,
-      anon_sym_LT,
-    STATE(94), 1,
-      sym_comment,
-    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,
-      anon_sym_LPAREN,
-    ACTIONS(288), 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,
-  [6900] = 18,
+  [7567] = 19,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(286), 1,
+      anon_sym_else,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    STATE(95), 1,
+    STATE(98), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(294), 3,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [6964] = 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,
-    STATE(96), 1,
-      sym_comment,
-    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(296), 3,
+    ACTIONS(284), 8,
+      ts_builtin_sym_end,
       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] = 20,
+      anon_sym_do,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+      anon_sym_RPAREN,
+  [7639] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(274), 1,
+    ACTIONS(294), 1,
       anon_sym_COMMA,
-    ACTIONS(298), 1,
-      anon_sym_RPAREN,
-    STATE(97), 1,
+    ACTIONS(296), 1,
+      anon_sym_else,
+    STATE(99), 1,
       sym_comment,
-    STATE(192), 1,
+    STATE(162), 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,
-  [7096] = 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,
-    STATE(98), 1,
-      sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(300), 3,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-      anon_sym_RBRACE,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7160] = 7,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(79), 1,
-      anon_sym_COLON,
-    STATE(99), 1,
-      sym_comment,
-    ACTIONS(302), 3,
+    ACTIONS(292), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
-      anon_sym_COLON_COLON,
-    ACTIONS(81), 5,
-      sym__string_start,
-      anon_sym_DOT,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-    ACTIONS(304), 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,
-  [7202] = 7,
+  [7715] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(292), 1,
-      anon_sym_LT,
+    ACTIONS(71), 1,
+      anon_sym_COLON,
     STATE(100), 1,
       sym_comment,
-    STATE(117), 1,
-      sym__attrib,
-    ACTIONS(306), 6,
+    ACTIONS(298), 3,
       ts_builtin_sym_end,
       anon_sym_SEMI,
-      anon_sym_EQ,
-      anon_sym_COMMA,
       anon_sym_COLON_COLON,
+    ACTIONS(73), 7,
+      sym__block_string_start,
+      anon_sym_DOT,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
-    ACTIONS(308), 15,
+      anon_sym_LBRACK,
+      anon_sym_LBRACE,
+    ACTIONS(300), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -7878,190 +8561,214 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7243] = 19,
+  [7759] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(310), 1,
-      anon_sym_COMMA,
-    ACTIONS(312), 1,
-      anon_sym_do,
     STATE(101), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(302), 3,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7308] = 7,
+  [7823] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
+    ACTIONS(113), 1,
+      anon_sym_PLUS,
+    ACTIONS(115), 1,
+      anon_sym_DASH,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    ACTIONS(125), 1,
+      anon_sym_AMP,
+    ACTIONS(127), 1,
+      anon_sym_TILDE,
+    ACTIONS(133), 1,
+      anon_sym_PIPE,
+    ACTIONS(288), 1,
+      anon_sym_or,
     ACTIONS(290), 1,
-      anon_sym_COMMA,
+      anon_sym_and,
     STATE(102), 1,
       sym_comment,
-    STATE(105), 1,
-      aux_sym__att_name_list_repeat1,
-    ACTIONS(314), 5,
-      ts_builtin_sym_end,
+    ACTIONS(111), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(129), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(304), 3,
       anon_sym_SEMI,
-      anon_sym_EQ,
-      anon_sym_COLON_COLON,
-      anon_sym_LPAREN,
-    ACTIONS(316), 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,
-  [7348] = 18,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+    ACTIONS(131), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+  [7887] = 20,
     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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(318), 1,
-      anon_sym_then,
+    ACTIONS(294), 1,
+      anon_sym_COMMA,
+    ACTIONS(306), 1,
+      anon_sym_RPAREN,
     STATE(103), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    STATE(203), 1,
+      aux_sym__expression_list_repeat1,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7410] = 18,
+  [7955] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(320), 1,
-      anon_sym_then,
     STATE(104), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(308), 3,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7472] = 6,
+  [8019] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(326), 1,
+    ACTIONS(314), 1,
       anon_sym_COMMA,
-    STATE(105), 2,
+    ACTIONS(316), 1,
+      anon_sym_LT,
+    STATE(105), 1,
       sym_comment,
+    STATE(117), 1,
       aux_sym__att_name_list_repeat1,
-    ACTIONS(322), 5,
+    STATE(118), 1,
+      sym__attrib,
+    ACTIONS(310), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_EQ,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(324), 15,
+    ACTIONS(312), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8077,24 +8784,71 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7510] = 7,
+  [8065] = 19,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
+    ACTIONS(113), 1,
+      anon_sym_PLUS,
+    ACTIONS(115), 1,
+      anon_sym_DASH,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    ACTIONS(125), 1,
+      anon_sym_AMP,
+    ACTIONS(127), 1,
+      anon_sym_TILDE,
+    ACTIONS(133), 1,
+      anon_sym_PIPE,
+    ACTIONS(288), 1,
+      anon_sym_or,
     ACTIONS(290), 1,
+      anon_sym_and,
+    ACTIONS(318), 1,
       anon_sym_COMMA,
-    STATE(105), 1,
-      aux_sym__att_name_list_repeat1,
+    ACTIONS(320), 1,
+      anon_sym_do,
     STATE(106), 1,
       sym_comment,
-    ACTIONS(329), 5,
+    ACTIONS(111), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(129), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(131), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+  [8130] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(316), 1,
+      anon_sym_LT,
+    STATE(107), 1,
+      sym_comment,
+    STATE(121), 1,
+      sym__attrib,
+    ACTIONS(322), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_EQ,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(331), 15,
+    ACTIONS(324), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8110,288 +8864,397 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7550] = 18,
+  [8171] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(333), 1,
+    ACTIONS(326), 1,
       anon_sym_COMMA,
-    STATE(107), 1,
+    STATE(108), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7612] = 18,
+  [8233] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(335), 1,
+    ACTIONS(328), 1,
       anon_sym_do,
-    STATE(108), 1,
+    STATE(109), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7674] = 18,
+  [8295] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(121), 1,
       anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    ACTIONS(125), 1,
+      anon_sym_AMP,
+    ACTIONS(127), 1,
+      anon_sym_TILDE,
+    ACTIONS(133), 1,
+      anon_sym_PIPE,
+    ACTIONS(288), 1,
+      anon_sym_or,
+    ACTIONS(290), 1,
+      anon_sym_and,
+    ACTIONS(330), 1,
+      anon_sym_then,
+    STATE(110), 1,
+      sym_comment,
+    ACTIONS(111), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(129), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(131), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+  [8357] = 18,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(113), 1,
+      anon_sym_PLUS,
+    ACTIONS(115), 1,
+      anon_sym_DASH,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(337), 1,
-      anon_sym_do,
-    STATE(109), 1,
+    ACTIONS(332), 1,
+      anon_sym_RBRACK,
+    STATE(111), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7736] = 18,
+  [8419] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(314), 1,
+      anon_sym_COMMA,
+    STATE(112), 1,
+      sym_comment,
+    STATE(113), 1,
+      aux_sym__att_name_list_repeat1,
+    ACTIONS(334), 5,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(336), 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,
+  [8459] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(342), 1,
+      anon_sym_COMMA,
+    STATE(113), 2,
+      sym_comment,
+      aux_sym__att_name_list_repeat1,
+    ACTIONS(338), 5,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(340), 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,
+  [8497] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(339), 1,
+    ACTIONS(345), 1,
       anon_sym_RPAREN,
-    STATE(110), 1,
+    STATE(114), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7798] = 18,
+  [8559] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(341), 1,
-      anon_sym_RBRACK,
-    STATE(111), 1,
+    ACTIONS(347), 1,
+      anon_sym_do,
+    STATE(115), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7860] = 18,
+  [8621] = 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_PLUS,
+    ACTIONS(115), 1,
       anon_sym_DASH,
-    ACTIONS(117), 1,
-      anon_sym_SLASH,
     ACTIONS(119), 1,
-      anon_sym_DOT_DOT,
+      anon_sym_SLASH,
     ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
       anon_sym_CARET,
-    ACTIONS(129), 1,
+    ACTIONS(125), 1,
       anon_sym_AMP,
-    ACTIONS(131), 1,
+    ACTIONS(127), 1,
       anon_sym_TILDE,
-    ACTIONS(137), 1,
+    ACTIONS(133), 1,
       anon_sym_PIPE,
-    ACTIONS(268), 1,
+    ACTIONS(288), 1,
       anon_sym_or,
-    ACTIONS(270), 1,
+    ACTIONS(290), 1,
       anon_sym_and,
-    ACTIONS(343), 1,
+    ACTIONS(349), 1,
       anon_sym_RBRACK,
-    STATE(112), 1,
+    STATE(116), 1,
       sym_comment,
-    ACTIONS(127), 2,
+    ACTIONS(111), 2,
       anon_sym_LT_LT,
       anon_sym_GT_GT,
-    ACTIONS(133), 2,
+    ACTIONS(129), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(115), 3,
+    ACTIONS(117), 3,
       anon_sym_STAR,
       anon_sym_SLASH_SLASH,
       anon_sym_PERCENT,
-    ACTIONS(135), 4,
+    ACTIONS(131), 4,
       anon_sym_LT_EQ,
       anon_sym_EQ_EQ,
       anon_sym_TILDE_EQ,
       anon_sym_GT_EQ,
-  [7922] = 7,
+  [8683] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(290), 1,
+    ACTIONS(314), 1,
       anon_sym_COMMA,
-    STATE(106), 1,
-      aux_sym__att_name_list_repeat1,
     STATE(113), 1,
+      aux_sym__att_name_list_repeat1,
+    STATE(117), 1,
       sym_comment,
-    ACTIONS(345), 5,
+    ACTIONS(351), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_EQ,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(347), 15,
+    ACTIONS(353), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8407,22 +9270,24 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7962] = 6,
+  [8723] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(353), 1,
+    ACTIONS(314), 1,
       anon_sym_COMMA,
-    STATE(114), 2,
+    STATE(112), 1,
+      aux_sym__att_name_list_repeat1,
+    STATE(118), 1,
       sym_comment,
-      aux_sym__variable_assignment_explist_repeat1,
-    ACTIONS(349), 4,
+    ACTIONS(355), 5,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_EQ,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(351), 15,
+    ACTIONS(357), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8438,23 +9303,65 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [7999] = 7,
+  [8763] = 18,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(157), 1,
-      anon_sym_COMMA,
-    STATE(114), 1,
-      aux_sym__variable_assignment_explist_repeat1,
-    STATE(115), 1,
+    ACTIONS(113), 1,
+      anon_sym_PLUS,
+    ACTIONS(115), 1,
+      anon_sym_DASH,
+    ACTIONS(119), 1,
+      anon_sym_SLASH,
+    ACTIONS(121), 1,
+      anon_sym_DOT_DOT,
+    ACTIONS(123), 1,
+      anon_sym_CARET,
+    ACTIONS(125), 1,
+      anon_sym_AMP,
+    ACTIONS(127), 1,
+      anon_sym_TILDE,
+    ACTIONS(133), 1,
+      anon_sym_PIPE,
+    ACTIONS(288), 1,
+      anon_sym_or,
+    ACTIONS(290), 1,
+      anon_sym_and,
+    ACTIONS(359), 1,
+      anon_sym_then,
+    STATE(119), 1,
+      sym_comment,
+    ACTIONS(111), 2,
+      anon_sym_LT_LT,
+      anon_sym_GT_GT,
+    ACTIONS(129), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(117), 3,
+      anon_sym_STAR,
+      anon_sym_SLASH_SLASH,
+      anon_sym_PERCENT,
+    ACTIONS(131), 4,
+      anon_sym_LT_EQ,
+      anon_sym_EQ_EQ,
+      anon_sym_TILDE_EQ,
+      anon_sym_GT_EQ,
+  [8825] = 5,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(120), 1,
       sym_comment,
-    ACTIONS(356), 4,
+    ACTIONS(361), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
+      anon_sym_EQ,
+      anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(358), 15,
+    ACTIONS(363), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8470,21 +9377,21 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8038] = 5,
+  [8860] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(116), 1,
+    STATE(121), 1,
       sym_comment,
-    ACTIONS(360), 6,
+    ACTIONS(365), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_EQ,
       anon_sym_COMMA,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(362), 15,
+    ACTIONS(367), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8500,21 +9407,54 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8073] = 5,
+  [8895] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(117), 1,
+    ACTIONS(165), 1,
+      anon_sym_COMMA,
+    STATE(122), 1,
       sym_comment,
-    ACTIONS(364), 6,
+    STATE(123), 1,
+      aux_sym__variable_assignment_explist_repeat1,
+    ACTIONS(369), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
-      anon_sym_EQ,
+      anon_sym_COLON_COLON,
+      anon_sym_LPAREN,
+    ACTIONS(371), 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,
+  [8934] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(377), 1,
       anon_sym_COMMA,
+    STATE(123), 2,
+      sym_comment,
+      aux_sym__variable_assignment_explist_repeat1,
+    ACTIONS(373), 4,
+      ts_builtin_sym_end,
+      anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(366), 15,
+    ACTIONS(375), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8530,21 +9470,21 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8108] = 6,
+  [8971] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(372), 1,
+    ACTIONS(384), 1,
       anon_sym_EQ,
-    STATE(118), 1,
+    STATE(124), 1,
       sym_comment,
-    ACTIONS(368), 4,
+    ACTIONS(380), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(370), 15,
+    ACTIONS(382), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8560,19 +9500,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8144] = 5,
+  [9007] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(119), 1,
+    STATE(125), 1,
       sym_comment,
-    ACTIONS(374), 4,
+    ACTIONS(386), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(376), 15,
+    ACTIONS(388), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8588,19 +9528,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8177] = 5,
+  [9040] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(120), 1,
+    STATE(126), 1,
       sym_comment,
-    ACTIONS(378), 4,
+    ACTIONS(390), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(380), 15,
+    ACTIONS(392), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8616,19 +9556,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8210] = 5,
+  [9073] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(121), 1,
+    STATE(127), 1,
       sym_comment,
-    ACTIONS(302), 4,
+    ACTIONS(394), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(304), 15,
+    ACTIONS(396), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8644,19 +9584,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8243] = 5,
+  [9106] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(122), 1,
+    STATE(128), 1,
       sym_comment,
-    ACTIONS(382), 4,
+    ACTIONS(398), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(384), 15,
+    ACTIONS(400), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8672,19 +9612,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8276] = 5,
+  [9139] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(123), 1,
+    STATE(129), 1,
       sym_comment,
-    ACTIONS(386), 4,
+    ACTIONS(402), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(388), 15,
+    ACTIONS(404), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8700,19 +9640,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8309] = 5,
+  [9172] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(124), 1,
+    STATE(130), 1,
       sym_comment,
-    ACTIONS(390), 4,
+    ACTIONS(406), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(392), 15,
+    ACTIONS(408), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8728,19 +9668,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8342] = 5,
+  [9205] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(125), 1,
+    STATE(131), 1,
       sym_comment,
-    ACTIONS(394), 4,
+    ACTIONS(410), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(396), 15,
+    ACTIONS(412), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8756,19 +9696,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8375] = 5,
+  [9238] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(126), 1,
+    STATE(132), 1,
       sym_comment,
-    ACTIONS(398), 4,
+    ACTIONS(414), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(400), 15,
+    ACTIONS(416), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8784,19 +9724,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8408] = 5,
+  [9271] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(127), 1,
+    STATE(133), 1,
       sym_comment,
-    ACTIONS(402), 4,
+    ACTIONS(418), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(404), 15,
+    ACTIONS(420), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8812,19 +9752,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8441] = 5,
+  [9304] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(128), 1,
+    STATE(134), 1,
       sym_comment,
-    ACTIONS(406), 4,
+    ACTIONS(422), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(408), 15,
+    ACTIONS(424), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8840,19 +9780,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8474] = 5,
+  [9337] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(129), 1,
+    STATE(135), 1,
       sym_comment,
-    ACTIONS(410), 4,
+    ACTIONS(426), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(412), 15,
+    ACTIONS(428), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8868,19 +9808,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8507] = 5,
+  [9370] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(130), 1,
+    STATE(136), 1,
       sym_comment,
-    ACTIONS(414), 4,
+    ACTIONS(298), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(416), 15,
+    ACTIONS(300), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8896,19 +9836,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8540] = 5,
+  [9403] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(131), 1,
+    STATE(137), 1,
       sym_comment,
-    ACTIONS(418), 4,
+    ACTIONS(430), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(420), 15,
+    ACTIONS(432), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8924,19 +9864,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8573] = 5,
+  [9436] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(132), 1,
+    STATE(138), 1,
       sym_comment,
-    ACTIONS(422), 4,
+    ACTIONS(434), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(424), 15,
+    ACTIONS(436), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8952,19 +9892,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8606] = 5,
+  [9469] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(133), 1,
+    STATE(139), 1,
       sym_comment,
-    ACTIONS(426), 4,
+    ACTIONS(438), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(428), 15,
+    ACTIONS(440), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -8980,19 +9920,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8639] = 5,
+  [9502] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(134), 1,
+    STATE(140), 1,
       sym_comment,
-    ACTIONS(430), 4,
+    ACTIONS(442), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(432), 15,
+    ACTIONS(444), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9008,19 +9948,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8672] = 5,
+  [9535] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(135), 1,
+    STATE(141), 1,
       sym_comment,
-    ACTIONS(434), 4,
+    ACTIONS(446), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(436), 15,
+    ACTIONS(448), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9036,19 +9976,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8705] = 5,
+  [9568] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(136), 1,
+    STATE(142), 1,
       sym_comment,
-    ACTIONS(438), 4,
+    ACTIONS(450), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(440), 15,
+    ACTIONS(452), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9064,19 +10004,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8738] = 5,
+  [9601] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(137), 1,
+    STATE(143), 1,
       sym_comment,
-    ACTIONS(442), 4,
+    ACTIONS(454), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(444), 15,
+    ACTIONS(456), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9092,19 +10032,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8771] = 5,
+  [9634] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(138), 1,
+    STATE(144), 1,
       sym_comment,
-    ACTIONS(446), 4,
+    ACTIONS(458), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(448), 15,
+    ACTIONS(460), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9120,19 +10060,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8804] = 5,
+  [9667] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(139), 1,
+    STATE(145), 1,
       sym_comment,
-    ACTIONS(450), 4,
+    ACTIONS(462), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(452), 15,
+    ACTIONS(464), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9148,19 +10088,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8837] = 5,
+  [9700] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(140), 1,
+    STATE(146), 1,
       sym_comment,
-    ACTIONS(454), 4,
+    ACTIONS(466), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(456), 15,
+    ACTIONS(468), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9176,19 +10116,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8870] = 5,
+  [9733] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(141), 1,
+    STATE(147), 1,
       sym_comment,
-    ACTIONS(458), 4,
+    ACTIONS(470), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(460), 15,
+    ACTIONS(472), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9204,19 +10144,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8903] = 5,
+  [9766] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(142), 1,
+    STATE(148), 1,
       sym_comment,
-    ACTIONS(462), 4,
+    ACTIONS(474), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(464), 15,
+    ACTIONS(476), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9232,19 +10172,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8936] = 5,
+  [9799] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(143), 1,
+    STATE(149), 1,
       sym_comment,
-    ACTIONS(466), 4,
+    ACTIONS(478), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(468), 15,
+    ACTIONS(480), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9260,19 +10200,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [8969] = 5,
+  [9832] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(144), 1,
+    STATE(150), 1,
       sym_comment,
-    ACTIONS(470), 4,
+    ACTIONS(482), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(472), 15,
+    ACTIONS(484), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9288,19 +10228,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [9002] = 5,
+  [9865] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(145), 1,
+    STATE(151), 1,
       sym_comment,
-    ACTIONS(474), 4,
+    ACTIONS(486), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(476), 15,
+    ACTIONS(488), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9316,19 +10256,19 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [9035] = 5,
+  [9898] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(146), 1,
+    STATE(152), 1,
       sym_comment,
-    ACTIONS(478), 4,
+    ACTIONS(490), 4,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(480), 15,
+    ACTIONS(492), 15,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9344,14 +10284,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [9068] = 5,
+  [9931] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(147), 1,
+    STATE(153), 1,
       sym_comment,
-    ACTIONS(482), 7,
+    ACTIONS(494), 7,
       anon_sym_function,
       sym_nil,
       sym_false,
@@ -9359,9 +10299,11 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_DASH,
       anon_sym_not,
       sym_identifier,
-    ACTIONS(484), 9,
-      sym__string_start,
+    ACTIONS(496), 11,
+      sym__block_string_start,
       sym_number,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       sym_vararg_expression,
       anon_sym_LPAREN,
       anon_sym_LBRACK,
@@ -9369,18 +10311,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_RBRACE,
       anon_sym_TILDE,
       anon_sym_POUND,
-  [9098] = 5,
+  [9963] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(148), 1,
+    STATE(154), 1,
       sym_comment,
-    ACTIONS(488), 3,
+    ACTIONS(500), 3,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(486), 12,
+    ACTIONS(498), 12,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9393,18 +10335,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [9127] = 5,
+  [9992] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(149), 1,
+    STATE(155), 1,
       sym_comment,
-    ACTIONS(492), 3,
+    ACTIONS(504), 3,
       anon_sym_SEMI,
       anon_sym_COLON_COLON,
       anon_sym_LPAREN,
-    ACTIONS(490), 12,
+    ACTIONS(502), 12,
       anon_sym_return,
       sym_break_statement,
       anon_sym_goto,
@@ -9417,19 +10359,73 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_function,
       anon_sym_local,
       sym_identifier,
-  [9156] = 6,
+  [10021] = 15,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(266), 1,
+    ACTIONS(506), 1,
+      anon_sym_DOT,
+    ACTIONS(508), 1,
+      anon_sym_COLON,
+    ACTIONS(510), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(512), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(514), 1,
+      anon_sym_LPAREN,
+    ACTIONS(516), 1,
+      anon_sym_LBRACK,
+    ACTIONS(518), 1,
+      anon_sym_LBRACE,
+    ACTIONS(520), 1,
+      sym__block_string_start,
+    STATE(6), 1,
+      sym_arguments,
+    STATE(13), 1,
+      sym__quote_string,
+    STATE(14), 1,
+      sym__block_string,
+    STATE(156), 1,
+      sym_comment,
+    STATE(7), 2,
+      sym_string,
+      sym_table_constructor,
+  [10068] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(522), 1,
+      anon_sym_EQ,
+    ACTIONS(524), 1,
+      anon_sym_COMMA,
+    STATE(157), 1,
+      sym_comment,
+    STATE(207), 1,
+      aux_sym__variable_assignment_varlist_repeat1,
+    ACTIONS(73), 8,
+      sym__block_string_start,
+      anon_sym_DOT,
+      anon_sym_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
+      anon_sym_LPAREN,
+      anon_sym_LBRACK,
+      anon_sym_LBRACE,
+  [10097] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(286), 1,
       anon_sym_else,
-    ACTIONS(494), 1,
+    ACTIONS(526), 1,
       anon_sym_COMMA,
-    STATE(150), 2,
+    STATE(158), 2,
       sym_comment,
       aux_sym__expression_list_repeat1,
-    ACTIONS(264), 7,
+    ACTIONS(284), 7,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_do,
@@ -9437,1699 +10433,1865 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_until,
       anon_sym_elseif,
       anon_sym_RPAREN,
-  [9182] = 10,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    ACTIONS(37), 1,
-      anon_sym_LPAREN,
-    ACTIONS(497), 1,
-      sym_identifier,
-    STATE(151), 1,
-      sym_comment,
-    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,
+  [10123] = 12,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(499), 1,
-      anon_sym_DOT,
-    ACTIONS(501), 1,
-      anon_sym_COLON,
-    ACTIONS(503), 1,
+    ACTIONS(510), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(512), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(514), 1,
       anon_sym_LPAREN,
-    ACTIONS(505), 1,
-      anon_sym_LBRACK,
-    ACTIONS(507), 1,
+    ACTIONS(518), 1,
       anon_sym_LBRACE,
-    ACTIONS(509), 1,
-      sym__string_start,
-    STATE(5), 1,
+    ACTIONS(520), 1,
+      sym__block_string_start,
+    STATE(6), 1,
       sym_arguments,
-    STATE(152), 1,
+    STATE(13), 1,
+      sym__quote_string,
+    STATE(14), 1,
+      sym__block_string,
+    STATE(159), 1,
       sym_comment,
     STATE(7), 2,
       sym_string,
       sym_table_constructor,
-  [9250] = 7,
+  [10161] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(511), 1,
+    STATE(160), 1,
+      sym_comment,
+    ACTIONS(529), 2,
       anon_sym_EQ,
-    ACTIONS(513), 1,
       anon_sym_COMMA,
-    STATE(153), 1,
-      sym_comment,
-    STATE(184), 1,
-      aux_sym__variable_assignment_varlist_repeat1,
-    ACTIONS(81), 6,
-      sym__string_start,
+    ACTIONS(73), 8,
+      sym__block_string_start,
       anon_sym_DOT,
       anon_sym_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_LBRACK,
       anon_sym_LBRACE,
-  [9277] = 7,
+  [10185] = 10,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(274), 1,
+    ACTIONS(37), 1,
+      anon_sym_LPAREN,
+    ACTIONS(531), 1,
+      sym_identifier,
+    STATE(156), 1,
+      sym__prefix_expression,
+    STATE(159), 1,
+      sym_method_index_expression,
+    STATE(160), 1,
+      sym_variable,
+    STATE(161), 1,
+      sym_comment,
+    STATE(4), 2,
+      sym_bracket_index_expression,
+      sym_dot_index_expression,
+    STATE(163), 2,
+      sym_function_call,
+      sym_parenthesized_expression,
+  [10218] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(294), 1,
       anon_sym_COMMA,
-    ACTIONS(517), 1,
+    ACTIONS(535), 1,
       anon_sym_else,
-    STATE(150), 1,
+    STATE(158), 1,
       aux_sym__expression_list_repeat1,
-    STATE(154), 1,
+    STATE(162), 1,
       sym_comment,
-    ACTIONS(515), 6,
+    ACTIONS(533), 6,
       ts_builtin_sym_end,
       anon_sym_SEMI,
       anon_sym_do,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
-  [9304] = 5,
+  [10245] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(155), 1,
+    STATE(163), 1,
       sym_comment,
-    ACTIONS(519), 2,
-      anon_sym_EQ,
-      anon_sym_COMMA,
-    ACTIONS(81), 6,
-      sym__string_start,
+    ACTIONS(73), 8,
+      sym__block_string_start,
       anon_sym_DOT,
       anon_sym_COLON,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
       anon_sym_LBRACK,
       anon_sym_LBRACE,
-  [9326] = 4,
+  [10265] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(156), 1,
+    ACTIONS(147), 1,
+      anon_sym_else,
+    ACTIONS(537), 1,
+      anon_sym_end,
+    ACTIONS(539), 1,
+      anon_sym_elseif,
+    STATE(164), 1,
       sym_comment,
-    ACTIONS(81), 6,
-      sym__string_start,
-      anon_sym_DOT,
-      anon_sym_COLON,
-      anon_sym_LPAREN,
-      anon_sym_LBRACK,
-      anon_sym_LBRACE,
-  [9344] = 6,
+    STATE(167), 1,
+      aux_sym_if_statement_repeat1,
+    STATE(198), 1,
+      sym_elseif_statement,
+    STATE(220), 1,
+      sym_else_statement,
+  [10293] = 9,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(147), 1,
+      anon_sym_else,
+    ACTIONS(539), 1,
+      anon_sym_elseif,
+    ACTIONS(541), 1,
+      anon_sym_end,
+    STATE(165), 1,
+      sym_comment,
+    STATE(175), 1,
+      aux_sym_if_statement_repeat1,
+    STATE(198), 1,
+      sym_elseif_statement,
+    STATE(222), 1,
+      sym_else_statement,
+  [10321] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(523), 1,
+    ACTIONS(545), 1,
       anon_sym_SEMI,
-    ACTIONS(525), 1,
+    ACTIONS(547), 1,
       anon_sym_else,
-    STATE(157), 1,
+    STATE(166), 1,
       sym_comment,
-    ACTIONS(521), 4,
+    ACTIONS(543), 4,
       ts_builtin_sym_end,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
-  [9366] = 9,
+  [10343] = 9,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
     ACTIONS(147), 1,
       anon_sym_else,
-    ACTIONS(527), 1,
-      anon_sym_end,
-    ACTIONS(529), 1,
+    ACTIONS(539), 1,
       anon_sym_elseif,
-    STATE(158), 1,
+    ACTIONS(549), 1,
+      anon_sym_end,
+    STATE(167), 1,
       sym_comment,
-    STATE(163), 1,
+    STATE(175), 1,
       aux_sym_if_statement_repeat1,
-    STATE(191), 1,
+    STATE(198), 1,
       sym_elseif_statement,
-    STATE(227), 1,
+    STATE(216), 1,
       sym_else_statement,
-  [9394] = 8,
+  [10371] = 8,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(551), 1,
+      sym_identifier,
+    STATE(168), 1,
+      sym_comment,
+    STATE(193), 1,
+      sym__function_name,
+    STATE(200), 1,
+      sym__function_name_prefix_expression,
+    STATE(201), 1,
+      sym__function_name_dot_index_expression,
+    STATE(236), 1,
+      sym__function_name_method_index_expression,
+  [10396] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(503), 1,
+    STATE(169), 1,
+      sym_comment,
+    ACTIONS(553), 5,
+      sym__block_string_start,
+      anon_sym_DQUOTE,
+      anon_sym_SQUOTE,
       anon_sym_LPAREN,
-    ACTIONS(507), 1,
       anon_sym_LBRACE,
-    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,
+  [10413] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(147), 1,
+    ACTIONS(557), 1,
       anon_sym_else,
-    ACTIONS(529), 1,
-      anon_sym_elseif,
-    ACTIONS(531), 1,
-      anon_sym_end,
-    STATE(158), 1,
-      aux_sym_if_statement_repeat1,
-    STATE(160), 1,
+    STATE(170), 1,
       sym_comment,
-    STATE(191), 1,
-      sym_elseif_statement,
-    STATE(207), 1,
-      sym_else_statement,
-  [9448] = 9,
+    ACTIONS(555), 4,
+      ts_builtin_sym_end,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [10432] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(147), 1,
+    ACTIONS(547), 1,
       anon_sym_else,
-    ACTIONS(529), 1,
-      anon_sym_elseif,
-    ACTIONS(533), 1,
+    STATE(171), 1,
+      sym_comment,
+    ACTIONS(543), 4,
+      ts_builtin_sym_end,
       anon_sym_end,
-    STATE(161), 1,
+      anon_sym_until,
+      anon_sym_elseif,
+  [10451] = 6,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(562), 1,
+      anon_sym_RBRACE,
+    STATE(66), 1,
+      sym__field_sep,
+    ACTIONS(559), 2,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+    STATE(172), 2,
       sym_comment,
-    STATE(163), 1,
-      aux_sym_if_statement_repeat1,
-    STATE(191), 1,
-      sym_elseif_statement,
-    STATE(211), 1,
-      sym_else_statement,
-  [9476] = 7,
+      aux_sym__field_list_repeat1,
+  [10472] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(282), 1,
+    ACTIONS(274), 1,
       anon_sym_RBRACE,
-    STATE(59), 1,
+    STATE(64), 1,
       sym__field_sep,
-    STATE(162), 1,
+    STATE(172), 1,
+      aux_sym__field_list_repeat1,
+    STATE(173), 1,
       sym_comment,
-    STATE(168), 1,
+    ACTIONS(564), 2,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+  [10495] = 7,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(566), 1,
+      anon_sym_RBRACE,
+    STATE(62), 1,
+      sym__field_sep,
+    STATE(173), 1,
       aux_sym__field_list_repeat1,
-    ACTIONS(535), 2,
+    STATE(174), 1,
+      sym_comment,
+    ACTIONS(564), 2,
       anon_sym_SEMI,
       anon_sym_COMMA,
-  [9499] = 7,
+  [10518] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(537), 1,
+    ACTIONS(568), 1,
       anon_sym_end,
-    ACTIONS(539), 1,
+    ACTIONS(570), 1,
       anon_sym_elseif,
-    ACTIONS(542), 1,
+    ACTIONS(573), 1,
       anon_sym_else,
-    STATE(191), 1,
+    STATE(198), 1,
       sym_elseif_statement,
-    STATE(163), 2,
+    STATE(175), 2,
       sym_comment,
       aux_sym_if_statement_repeat1,
-  [9522] = 5,
+  [10541] = 6,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(575), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    STATE(176), 1,
+      sym_comment,
+    STATE(180), 1,
+      aux_sym__singlequote_string_content,
+    ACTIONS(577), 2,
+      aux_sym__singlequote_string_content_token1,
+      sym_escape_sequence,
+  [10561] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(546), 1,
-      anon_sym_else,
-    STATE(164), 1,
+    ACTIONS(581), 1,
+      sym_identifier,
+    ACTIONS(583), 1,
+      sym_vararg_expression,
+    ACTIONS(585), 1,
+      anon_sym_RPAREN,
+    STATE(177), 1,
       sym_comment,
-    ACTIONS(544), 4,
-      ts_builtin_sym_end,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9541] = 5,
+    STATE(248), 1,
+      sym__parameter_list,
+  [10583] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(525), 1,
-      anon_sym_else,
-    STATE(165), 1,
+    ACTIONS(587), 1,
+      anon_sym_COMMA,
+    ACTIONS(590), 2,
+      anon_sym_in,
+      anon_sym_RPAREN,
+    STATE(178), 2,
       sym_comment,
-    ACTIONS(521), 4,
-      ts_builtin_sym_end,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9560] = 7,
-    ACTIONS(3), 1,
+      aux_sym__name_list_repeat1,
+  [10601] = 6,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(579), 1,
       anon_sym_DASH_DASH,
+    ACTIONS(592), 1,
+      anon_sym_SQUOTE,
+    STATE(179), 1,
+      sym_comment,
+    STATE(180), 1,
+      aux_sym__singlequote_string_content,
+    ACTIONS(577), 2,
+      aux_sym__singlequote_string_content_token1,
+      sym_escape_sequence,
+  [10621] = 5,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(548), 1,
-      anon_sym_RBRACE,
-    STATE(61), 1,
-      sym__field_sep,
-    STATE(162), 1,
-      aux_sym__field_list_repeat1,
-    STATE(166), 1,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(594), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(596), 2,
+      aux_sym__singlequote_string_content_token1,
+      sym_escape_sequence,
+    STATE(180), 2,
+      aux_sym__singlequote_string_content,
       sym_comment,
-    ACTIONS(535), 2,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-  [9583] = 8,
+  [10639] = 5,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(599), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(601), 2,
+      aux_sym__doublequote_string_content_token1,
+      sym_escape_sequence,
+    STATE(181), 2,
+      aux_sym__doublequote_string_content,
+      sym_comment,
+  [10657] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(550), 1,
+    ACTIONS(604), 1,
       sym_identifier,
-    STATE(167), 1,
-      sym_comment,
-    STATE(176), 1,
-      sym__function_name,
+    ACTIONS(606), 1,
+      anon_sym_function,
+    STATE(124), 1,
+      sym__att_name_list,
+    STATE(145), 1,
+      sym__local_variable_assignment,
     STATE(182), 1,
-      sym__function_name_prefix_expression,
+      sym_comment,
+  [10679] = 6,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(592), 1,
+      anon_sym_DQUOTE,
+    STATE(181), 1,
+      aux_sym__doublequote_string_content,
     STATE(183), 1,
-      sym__function_name_dot_index_expression,
-    STATE(216), 1,
-      sym__function_name_method_index_expression,
-  [9608] = 6,
-    ACTIONS(3), 1,
+      sym_comment,
+    ACTIONS(608), 2,
+      aux_sym__doublequote_string_content_token1,
+      sym_escape_sequence,
+  [10699] = 6,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(579), 1,
       anon_sym_DASH_DASH,
+    ACTIONS(610), 1,
+      anon_sym_DQUOTE,
+    STATE(183), 1,
+      aux_sym__doublequote_string_content,
+    STATE(184), 1,
+      sym_comment,
+    ACTIONS(608), 2,
+      aux_sym__doublequote_string_content_token1,
+      sym_escape_sequence,
+  [10719] = 6,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(555), 1,
-      anon_sym_RBRACE,
-    STATE(62), 1,
-      sym__field_sep,
-    ACTIONS(552), 2,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-    STATE(168), 2,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(612), 1,
+      anon_sym_DQUOTE,
+    STATE(185), 1,
       sym_comment,
-      aux_sym__field_list_repeat1,
-  [9629] = 5,
+    STATE(192), 1,
+      aux_sym__doublequote_string_content,
+    ACTIONS(608), 2,
+      aux_sym__doublequote_string_content_token1,
+      sym_escape_sequence,
+  [10739] = 7,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(557), 1,
+    ACTIONS(614), 1,
+      anon_sym_EQ,
+    ACTIONS(616), 1,
       anon_sym_COMMA,
-    ACTIONS(560), 2,
+    ACTIONS(618), 1,
       anon_sym_in,
-      anon_sym_RPAREN,
-    STATE(169), 2,
+    STATE(186), 1,
       sym_comment,
+    STATE(209), 1,
       aux_sym__name_list_repeat1,
-  [9647] = 5,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
+  [10761] = 6,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(206), 1,
-      anon_sym_else,
-    STATE(170), 1,
-      sym_comment,
-    ACTIONS(562), 3,
-      anon_sym_end,
-      anon_sym_until,
-      anon_sym_elseif,
-  [9665] = 7,
-    ACTIONS(3), 1,
+    ACTIONS(579), 1,
       anon_sym_DASH_DASH,
+    ACTIONS(612), 1,
+      anon_sym_SQUOTE,
+    STATE(176), 1,
+      aux_sym__singlequote_string_content,
+    STATE(187), 1,
+      sym_comment,
+    ACTIONS(577), 2,
+      aux_sym__singlequote_string_content_token1,
+      sym_escape_sequence,
+  [10781] = 6,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    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,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(610), 1,
+      anon_sym_SQUOTE,
+    STATE(179), 1,
+      aux_sym__singlequote_string_content,
+    STATE(188), 1,
       sym_comment,
-  [9687] = 7,
+    ACTIONS(577), 2,
+      aux_sym__singlequote_string_content_token1,
+      sym_escape_sequence,
+  [10801] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(568), 1,
+    ACTIONS(620), 1,
       sym_identifier,
-    ACTIONS(570), 1,
-      sym_vararg_expression,
-    ACTIONS(572), 1,
-      anon_sym_RPAREN,
-    STATE(172), 1,
+    STATE(189), 1,
       sym_comment,
-    STATE(229), 1,
-      sym__parameter_list,
-  [9709] = 5,
+    STATE(242), 1,
+      sym__name_list,
+    STATE(244), 2,
+      sym_for_generic_clause,
+      sym_for_numeric_clause,
+  [10821] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(576), 1,
+    ACTIONS(624), 1,
       anon_sym_else,
-    STATE(173), 1,
+    STATE(190), 1,
       sym_comment,
-    ACTIONS(574), 3,
+    ACTIONS(622), 3,
       anon_sym_end,
       anon_sym_until,
       anon_sym_elseif,
-  [9727] = 6,
+  [10839] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(578), 1,
-      sym_identifier,
-    STATE(174), 1,
+    ACTIONS(169), 1,
+      anon_sym_else,
+    STATE(191), 1,
       sym_comment,
-    STATE(205), 1,
-      sym__name_list,
-    STATE(234), 2,
-      sym_for_generic_clause,
-      sym_for_numeric_clause,
-  [9747] = 7,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
+    ACTIONS(626), 3,
+      anon_sym_end,
+      anon_sym_until,
+      anon_sym_elseif,
+  [10857] = 6,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(580), 1,
-      anon_sym_EQ,
-    ACTIONS(582), 1,
-      anon_sym_COMMA,
-    ACTIONS(584), 1,
-      anon_sym_in,
-    STATE(175), 1,
+    ACTIONS(575), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    STATE(181), 1,
+      aux_sym__doublequote_string_content,
+    STATE(192), 1,
       sym_comment,
-    STATE(193), 1,
-      aux_sym__name_list_repeat1,
-  [9769] = 6,
+    ACTIONS(608), 2,
+      aux_sym__doublequote_string_content_token1,
+      sym_escape_sequence,
+  [10877] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(586), 1,
+    ACTIONS(628), 1,
       anon_sym_LPAREN,
-    STATE(43), 1,
+    STATE(52), 1,
       sym_parameters,
-    STATE(124), 1,
+    STATE(125), 1,
       sym__function_body,
-    STATE(176), 1,
+    STATE(193), 1,
       sym_comment,
-  [9788] = 4,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
+  [10896] = 5,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(177), 1,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(630), 1,
+      anon_sym_DQUOTE,
+    STATE(194), 1,
       sym_comment,
-    ACTIONS(588), 3,
-      anon_sym_COMMA,
-      anon_sym_in,
-      anon_sym_RPAREN,
-  [9803] = 5,
+    ACTIONS(632), 2,
+      aux_sym__doublequote_string_content_token1,
+      sym_escape_sequence,
+  [10913] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(592), 1,
-      anon_sym_else,
-    STATE(178), 1,
+    ACTIONS(634), 1,
+      anon_sym_COMMA,
+    ACTIONS(636), 1,
+      anon_sym_RPAREN,
+    STATE(195), 1,
       sym_comment,
-    ACTIONS(590), 2,
-      anon_sym_end,
-      anon_sym_elseif,
-  [9820] = 6,
+    STATE(206), 1,
+      aux_sym__name_list_repeat1,
+  [10932] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(586), 1,
+    ACTIONS(628), 1,
       anon_sym_LPAREN,
-    STATE(30), 1,
+    STATE(32), 1,
       sym__function_body,
-    STATE(43), 1,
+    STATE(52), 1,
       sym_parameters,
-    STATE(179), 1,
+    STATE(196), 1,
       sym_comment,
-  [9839] = 4,
+  [10951] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(180), 1,
+    ACTIONS(640), 1,
+      anon_sym_else,
+    STATE(197), 1,
       sym_comment,
-    ACTIONS(594), 3,
-      anon_sym_DOT,
-      anon_sym_COLON,
-      anon_sym_LPAREN,
-  [9854] = 4,
+    ACTIONS(638), 2,
+      anon_sym_end,
+      anon_sym_elseif,
+  [10968] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(181), 1,
+    ACTIONS(644), 1,
+      anon_sym_else,
+    STATE(198), 1,
+      sym_comment,
+    ACTIONS(642), 2,
+      anon_sym_end,
+      anon_sym_elseif,
+  [10985] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    STATE(199), 1,
       sym_comment,
-    ACTIONS(596), 3,
+    ACTIONS(646), 3,
       anon_sym_DOT,
       anon_sym_COLON,
       anon_sym_LPAREN,
-  [9869] = 6,
+  [11000] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(598), 1,
+    ACTIONS(648), 1,
       anon_sym_DOT,
-    ACTIONS(600), 1,
+    ACTIONS(650), 1,
       anon_sym_COLON,
-    ACTIONS(602), 1,
+    ACTIONS(652), 1,
       anon_sym_LPAREN,
-    STATE(182), 1,
+    STATE(200), 1,
       sym_comment,
-  [9888] = 4,
+  [11019] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(183), 1,
+    STATE(201), 1,
       sym_comment,
-    ACTIONS(604), 3,
+    ACTIONS(654), 3,
       anon_sym_DOT,
       anon_sym_COLON,
       anon_sym_LPAREN,
-  [9903] = 6,
+  [11034] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(513), 1,
-      anon_sym_COMMA,
-    ACTIONS(606), 1,
-      anon_sym_EQ,
-    STATE(184), 1,
+    STATE(202), 1,
       sym_comment,
-    STATE(188), 1,
-      aux_sym__variable_assignment_varlist_repeat1,
-  [9922] = 6,
+    ACTIONS(656), 3,
+      anon_sym_COMMA,
+      anon_sym_in,
+      anon_sym_RPAREN,
+  [11049] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(608), 1,
+    ACTIONS(294), 1,
       anon_sym_COMMA,
-    ACTIONS(610), 1,
+    ACTIONS(658), 1,
       anon_sym_RPAREN,
-    STATE(169), 1,
-      aux_sym__name_list_repeat1,
-    STATE(185), 1,
+    STATE(158), 1,
+      aux_sym__expression_list_repeat1,
+    STATE(203), 1,
       sym_comment,
-  [9941] = 6,
+  [11068] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(586), 1,
+    ACTIONS(628), 1,
       anon_sym_LPAREN,
-    STATE(43), 1,
+    STATE(52), 1,
       sym_parameters,
-    STATE(138), 1,
-      sym__function_body,
-    STATE(186), 1,
-      sym_comment,
-  [9960] = 4,
-    ACTIONS(3), 1,
-      anon_sym_DASH_DASH,
-    ACTIONS(5), 1,
-      sym__block_comment_start,
-    STATE(187), 1,
-      sym_comment,
-    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(612), 1,
-      anon_sym_EQ,
-    ACTIONS(614), 1,
-      anon_sym_COMMA,
-    STATE(188), 2,
+    STATE(149), 1,
+      sym__function_body,
+    STATE(204), 1,
       sym_comment,
-      aux_sym__variable_assignment_varlist_repeat1,
-  [9992] = 4,
+  [11087] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    STATE(189), 1,
+    STATE(205), 1,
       sym_comment,
-    ACTIONS(617), 3,
-      sym__string_start,
+    ACTIONS(660), 3,
+      anon_sym_DOT,
+      anon_sym_COLON,
       anon_sym_LPAREN,
-      anon_sym_LBRACE,
-  [10007] = 6,
+  [11102] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(619), 1,
+    ACTIONS(662), 1,
       anon_sym_COMMA,
-    ACTIONS(621), 1,
+    ACTIONS(664), 1,
       anon_sym_RPAREN,
-    STATE(185), 1,
+    STATE(178), 1,
       aux_sym__name_list_repeat1,
-    STATE(190), 1,
+    STATE(206), 1,
       sym_comment,
-  [10026] = 5,
+  [11121] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(625), 1,
-      anon_sym_else,
-    STATE(191), 1,
+    ACTIONS(524), 1,
+      anon_sym_COMMA,
+    ACTIONS(666), 1,
+      anon_sym_EQ,
+    STATE(207), 1,
       sym_comment,
-    ACTIONS(623), 2,
-      anon_sym_end,
-      anon_sym_elseif,
-  [10043] = 6,
+    STATE(208), 1,
+      aux_sym__variable_assignment_varlist_repeat1,
+  [11140] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(274), 1,
+    ACTIONS(668), 1,
+      anon_sym_EQ,
+    ACTIONS(670), 1,
       anon_sym_COMMA,
-    ACTIONS(627), 1,
-      anon_sym_RPAREN,
-    STATE(150), 1,
-      aux_sym__expression_list_repeat1,
-    STATE(192), 1,
+    STATE(208), 2,
       sym_comment,
-  [10062] = 6,
+      aux_sym__variable_assignment_varlist_repeat1,
+  [11157] = 6,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(582), 1,
+    ACTIONS(616), 1,
       anon_sym_COMMA,
-    ACTIONS(629), 1,
+    ACTIONS(673), 1,
       anon_sym_in,
-    STATE(169), 1,
+    STATE(178), 1,
       aux_sym__name_list_repeat1,
-    STATE(193), 1,
+    STATE(209), 1,
+      sym_comment,
+  [11176] = 5,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(579), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(675), 1,
+      anon_sym_SQUOTE,
+    STATE(210), 1,
       sym_comment,
-  [10081] = 5,
+    ACTIONS(677), 2,
+      aux_sym__singlequote_string_content_token1,
+      sym_escape_sequence,
+  [11193] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(631), 1,
-      sym__string_content,
-    ACTIONS(633), 1,
-      sym__string_end,
-    STATE(194), 1,
+    STATE(211), 1,
       sym_comment,
-  [10097] = 5,
+    ACTIONS(562), 3,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_RBRACE,
+  [11208] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(635), 1,
+    ACTIONS(679), 1,
       sym_identifier,
-    ACTIONS(637), 1,
+    ACTIONS(681), 1,
       sym_vararg_expression,
-    STATE(195), 1,
+    STATE(212), 1,
       sym_comment,
-  [10113] = 5,
+  [11224] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(639), 1,
-      sym__string_content,
-    ACTIONS(641), 1,
-      sym__string_end,
-    STATE(196), 1,
+    ACTIONS(683), 1,
+      sym__block_comment_content,
+    ACTIONS(685), 1,
+      sym__block_comment_end,
+    STATE(213), 1,
       sym_comment,
-  [10129] = 5,
+  [11240] = 5,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(635), 1,
+    ACTIONS(679), 1,
       sym_identifier,
-    ACTIONS(643), 1,
+    ACTIONS(687), 1,
       sym_vararg_expression,
-    STATE(197), 1,
+    STATE(214), 1,
       sym_comment,
-  [10145] = 5,
+  [11256] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(645), 1,
-      sym__block_comment_content,
-    ACTIONS(647), 1,
-      sym__block_comment_end,
-    STATE(198), 1,
+    ACTIONS(689), 1,
+      ts_builtin_sym_end,
+    STATE(215), 1,
       sym_comment,
-  [10161] = 4,
+  [11269] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(649), 1,
-      anon_sym_LPAREN,
-    STATE(199), 1,
+    ACTIONS(691), 1,
+      anon_sym_end,
+    STATE(216), 1,
       sym_comment,
-  [10174] = 4,
+  [11282] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(651), 1,
-      anon_sym_end,
-    STATE(200), 1,
+    ACTIONS(693), 1,
+      sym_identifier,
+    STATE(217), 1,
       sym_comment,
-  [10187] = 4,
+  [11295] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(653), 1,
+    ACTIONS(695), 1,
       sym_identifier,
-    STATE(201), 1,
+    STATE(218), 1,
       sym_comment,
-  [10200] = 4,
+  [11308] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(655), 1,
-      anon_sym_EQ,
-    STATE(202), 1,
+    ACTIONS(697), 1,
+      anon_sym_end,
+    STATE(219), 1,
       sym_comment,
-  [10213] = 4,
+  [11321] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(657), 1,
-      sym_identifier,
-    STATE(203), 1,
+    ACTIONS(699), 1,
+      anon_sym_end,
+    STATE(220), 1,
       sym_comment,
-  [10226] = 4,
+  [11334] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(635), 1,
+    ACTIONS(701), 1,
       sym_identifier,
-    STATE(204), 1,
+    STATE(221), 1,
       sym_comment,
-  [10239] = 4,
+  [11347] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(659), 1,
-      anon_sym_in,
-    STATE(205), 1,
+    ACTIONS(703), 1,
+      anon_sym_end,
+    STATE(222), 1,
+      sym_comment,
+  [11360] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(679), 1,
+      sym_identifier,
+    STATE(223), 1,
       sym_comment,
-  [10252] = 4,
+  [11373] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(661), 1,
+    ACTIONS(705), 1,
       anon_sym_RBRACE,
-    STATE(206), 1,
+    STATE(224), 1,
       sym_comment,
-  [10265] = 4,
+  [11386] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(663), 1,
-      anon_sym_end,
-    STATE(207), 1,
+    ACTIONS(707), 1,
+      anon_sym_GT,
+    STATE(225), 1,
       sym_comment,
-  [10278] = 4,
+  [11399] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(665), 1,
-      sym__string_end,
-    STATE(208), 1,
+    ACTIONS(709), 1,
+      anon_sym_do,
+    STATE(226), 1,
       sym_comment,
-  [10291] = 4,
+  [11412] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(667), 1,
-      ts_builtin_sym_end,
-    STATE(209), 1,
+    ACTIONS(711), 1,
+      sym__block_string_end,
+    STATE(227), 1,
       sym_comment,
-  [10304] = 4,
+  [11425] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(669), 1,
-      anon_sym_RBRACE,
-    STATE(210), 1,
+    ACTIONS(713), 1,
+      anon_sym_EQ,
+    STATE(228), 1,
+      sym_comment,
+  [11438] = 4,
+    ACTIONS(3), 1,
+      anon_sym_DASH_DASH,
+    ACTIONS(5), 1,
+      sym__block_comment_start,
+    ACTIONS(715), 1,
+      sym__block_string_content,
+    STATE(229), 1,
       sym_comment,
-  [10317] = 4,
+  [11451] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(671), 1,
+    ACTIONS(717), 1,
       anon_sym_end,
-    STATE(211), 1,
+    STATE(230), 1,
       sym_comment,
-  [10330] = 4,
+  [11464] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(673), 1,
-      sym_identifier,
-    STATE(212), 1,
+    ACTIONS(719), 1,
+      anon_sym_RPAREN,
+    STATE(231), 1,
       sym_comment,
-  [10343] = 4,
+  [11477] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(675), 1,
-      sym_identifier,
-    STATE(213), 1,
+    ACTIONS(721), 1,
+      anon_sym_RPAREN,
+    STATE(232), 1,
       sym_comment,
-  [10356] = 4,
+  [11490] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(677), 1,
+    ACTIONS(723), 1,
       sym_identifier,
-    STATE(214), 1,
+    STATE(233), 1,
       sym_comment,
-  [10369] = 4,
+  [11503] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(679), 1,
+    ACTIONS(725), 1,
       sym_identifier,
-    STATE(215), 1,
+    STATE(234), 1,
       sym_comment,
-  [10382] = 4,
+  [11516] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(681), 1,
-      anon_sym_LPAREN,
-    STATE(216), 1,
+    ACTIONS(727), 1,
+      sym_identifier,
+    STATE(235), 1,
       sym_comment,
-  [10395] = 4,
+  [11529] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(683), 1,
-      anon_sym_end,
-    STATE(217), 1,
+    ACTIONS(729), 1,
+      anon_sym_LPAREN,
+    STATE(236), 1,
       sym_comment,
-  [10408] = 4,
+  [11542] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(685), 1,
+    ACTIONS(731), 1,
       anon_sym_end,
-    STATE(218), 1,
+    STATE(237), 1,
       sym_comment,
-  [10421] = 4,
+  [11555] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(687), 1,
-      anon_sym_GT,
-    STATE(219), 1,
+    ACTIONS(733), 1,
+      anon_sym_LPAREN,
+    STATE(238), 1,
       sym_comment,
-  [10434] = 4,
+  [11568] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(689), 1,
-      anon_sym_RPAREN,
-    STATE(220), 1,
+    ACTIONS(735), 1,
+      anon_sym_end,
+    STATE(239), 1,
       sym_comment,
-  [10447] = 4,
+  [11581] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(691), 1,
-      sym__string_end,
-    STATE(221), 1,
+    ACTIONS(737), 1,
+      sym_identifier,
+    STATE(240), 1,
       sym_comment,
-  [10460] = 4,
+  [11594] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(693), 1,
-      anon_sym_end,
-    STATE(222), 1,
+    ACTIONS(739), 1,
+      anon_sym_RPAREN,
+    STATE(241), 1,
       sym_comment,
-  [10473] = 4,
+  [11607] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(695), 1,
-      sym_identifier,
-    STATE(223), 1,
+    ACTIONS(741), 1,
+      anon_sym_in,
+    STATE(242), 1,
       sym_comment,
-  [10486] = 4,
+  [11620] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(697), 1,
-      anon_sym_until,
-    STATE(224), 1,
+    ACTIONS(743), 1,
+      anon_sym_end,
+    STATE(243), 1,
       sym_comment,
-  [10499] = 4,
+  [11633] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(699), 1,
-      anon_sym_end,
-    STATE(225), 1,
+    ACTIONS(745), 1,
+      anon_sym_do,
+    STATE(244), 1,
       sym_comment,
-  [10512] = 4,
+  [11646] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(701), 1,
-      anon_sym_COLON_COLON,
-    STATE(226), 1,
+    ACTIONS(747), 1,
+      anon_sym_until,
+    STATE(245), 1,
       sym_comment,
-  [10525] = 4,
+  [11659] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(703), 1,
+    ACTIONS(749), 1,
       anon_sym_end,
-    STATE(227), 1,
+    STATE(246), 1,
       sym_comment,
-  [10538] = 4,
+  [11672] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(705), 1,
-      anon_sym_do,
-    STATE(228), 1,
+    ACTIONS(751), 1,
+      anon_sym_COLON_COLON,
+    STATE(247), 1,
       sym_comment,
-  [10551] = 4,
+  [11685] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(707), 1,
+    ACTIONS(753), 1,
       anon_sym_RPAREN,
-    STATE(229), 1,
+    STATE(248), 1,
       sym_comment,
-  [10564] = 4,
+  [11698] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(709), 1,
-      anon_sym_RPAREN,
-    STATE(230), 1,
+    ACTIONS(755), 1,
+      sym__block_string_content,
+    STATE(249), 1,
       sym_comment,
-  [10577] = 4,
+  [11711] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(232), 1,
+    ACTIONS(242), 1,
       ts_builtin_sym_end,
-    STATE(231), 1,
+    STATE(250), 1,
       sym_comment,
-  [10590] = 4,
+  [11724] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(711), 1,
-      anon_sym_end,
-    STATE(232), 1,
+    ACTIONS(757), 1,
+      anon_sym_RBRACE,
+    STATE(251), 1,
       sym_comment,
-  [10603] = 4,
+  [11737] = 4,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(713), 1,
+    ACTIONS(579), 1,
       anon_sym_DASH_DASH,
-    ACTIONS(715), 1,
+    ACTIONS(759), 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,
+    STATE(252), 1,
       sym_comment,
-  [10629] = 4,
+  [11750] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(719), 1,
+    ACTIONS(761), 1,
       sym__block_comment_end,
-    STATE(235), 1,
+    STATE(253), 1,
       sym_comment,
-  [10642] = 4,
+  [11763] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(721), 1,
+    ACTIONS(763), 1,
       anon_sym_EQ,
-    STATE(236), 1,
+    STATE(254), 1,
       sym_comment,
-  [10655] = 4,
+  [11776] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(234), 1,
+    ACTIONS(240), 1,
       ts_builtin_sym_end,
-    STATE(237), 1,
+    STATE(255), 1,
       sym_comment,
-  [10668] = 4,
+  [11789] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(723), 1,
+    ACTIONS(765), 1,
       ts_builtin_sym_end,
-    STATE(238), 1,
+    STATE(256), 1,
       sym_comment,
-  [10681] = 4,
+  [11802] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(725), 1,
+    ACTIONS(767), 1,
       sym_identifier,
-    STATE(239), 1,
+    STATE(257), 1,
       sym_comment,
-  [10694] = 4,
+  [11815] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(727), 1,
-      sym_identifier,
-    STATE(240), 1,
+    ACTIONS(769), 1,
+      sym__block_string_end,
+    STATE(258), 1,
       sym_comment,
-  [10707] = 4,
+  [11828] = 4,
     ACTIONS(3), 1,
       anon_sym_DASH_DASH,
     ACTIONS(5), 1,
       sym__block_comment_start,
-    ACTIONS(729), 1,
-      anon_sym_RPAREN,
-    STATE(241), 1,
+    ACTIONS(771), 1,
+      sym_identifier,
+    STATE(259), 1,
       sym_comment,
-  [10720] = 1,
-    ACTIONS(731), 1,
+  [11841] = 1,
+    ACTIONS(773), 1,
       ts_builtin_sym_end,
-  [10724] = 1,
-    ACTIONS(733), 1,
+  [11845] = 1,
+    ACTIONS(775), 1,
       ts_builtin_sym_end,
-  [10728] = 1,
-    ACTIONS(735), 1,
+  [11849] = 1,
+    ACTIONS(777), 1,
       ts_builtin_sym_end,
 };
 
 static const uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(2)] = 0,
-  [SMALL_STATE(3)] = 65,
-  [SMALL_STATE(4)] = 130,
-  [SMALL_STATE(5)] = 195,
-  [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,
-  [SMALL_STATE(15)] = 839,
-  [SMALL_STATE(16)] = 903,
-  [SMALL_STATE(17)] = 962,
-  [SMALL_STATE(18)] = 1021,
-  [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)] = 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)] = 3175,
-  [SMALL_STATE(46)] = 3287,
-  [SMALL_STATE(47)] = 3399,
-  [SMALL_STATE(48)] = 3511,
-  [SMALL_STATE(49)] = 3593,
-  [SMALL_STATE(50)] = 3705,
-  [SMALL_STATE(51)] = 3814,
-  [SMALL_STATE(52)] = 3923,
-  [SMALL_STATE(53)] = 4032,
-  [SMALL_STATE(54)] = 4111,
-  [SMALL_STATE(55)] = 4190,
-  [SMALL_STATE(56)] = 4269,
-  [SMALL_STATE(57)] = 4316,
-  [SMALL_STATE(58)] = 4388,
-  [SMALL_STATE(59)] = 4464,
-  [SMALL_STATE(60)] = 4540,
-  [SMALL_STATE(61)] = 4616,
-  [SMALL_STATE(62)] = 4692,
-  [SMALL_STATE(63)] = 4765,
-  [SMALL_STATE(64)] = 4835,
-  [SMALL_STATE(65)] = 4905,
-  [SMALL_STATE(66)] = 4975,
-  [SMALL_STATE(67)] = 5045,
-  [SMALL_STATE(68)] = 5112,
-  [SMALL_STATE(69)] = 5179,
-  [SMALL_STATE(70)] = 5246,
-  [SMALL_STATE(71)] = 5313,
-  [SMALL_STATE(72)] = 5380,
-  [SMALL_STATE(73)] = 5447,
-  [SMALL_STATE(74)] = 5514,
-  [SMALL_STATE(75)] = 5581,
-  [SMALL_STATE(76)] = 5648,
-  [SMALL_STATE(77)] = 5715,
-  [SMALL_STATE(78)] = 5782,
-  [SMALL_STATE(79)] = 5849,
-  [SMALL_STATE(80)] = 5916,
-  [SMALL_STATE(81)] = 5983,
-  [SMALL_STATE(82)] = 6050,
-  [SMALL_STATE(83)] = 6117,
-  [SMALL_STATE(84)] = 6184,
-  [SMALL_STATE(85)] = 6251,
-  [SMALL_STATE(86)] = 6318,
-  [SMALL_STATE(87)] = 6385,
-  [SMALL_STATE(88)] = 6452,
-  [SMALL_STATE(89)] = 6519,
-  [SMALL_STATE(90)] = 6586,
-  [SMALL_STATE(91)] = 6653,
-  [SMALL_STATE(92)] = 6720,
-  [SMALL_STATE(93)] = 6787,
-  [SMALL_STATE(94)] = 6854,
-  [SMALL_STATE(95)] = 6900,
-  [SMALL_STATE(96)] = 6964,
-  [SMALL_STATE(97)] = 7028,
-  [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,
+  [SMALL_STATE(3)] = 67,
+  [SMALL_STATE(4)] = 134,
+  [SMALL_STATE(5)] = 201,
+  [SMALL_STATE(6)] = 267,
+  [SMALL_STATE(7)] = 333,
+  [SMALL_STATE(8)] = 399,
+  [SMALL_STATE(9)] = 465,
+  [SMALL_STATE(10)] = 535,
+  [SMALL_STATE(11)] = 601,
+  [SMALL_STATE(12)] = 667,
+  [SMALL_STATE(13)] = 733,
+  [SMALL_STATE(14)] = 799,
+  [SMALL_STATE(15)] = 865,
+  [SMALL_STATE(16)] = 931,
+  [SMALL_STATE(17)] = 997,
+  [SMALL_STATE(18)] = 1063,
+  [SMALL_STATE(19)] = 1129,
+  [SMALL_STATE(20)] = 1188,
+  [SMALL_STATE(21)] = 1247,
+  [SMALL_STATE(22)] = 1320,
+  [SMALL_STATE(23)] = 1395,
+  [SMALL_STATE(24)] = 1472,
+  [SMALL_STATE(25)] = 1555,
+  [SMALL_STATE(26)] = 1640,
+  [SMALL_STATE(27)] = 1719,
+  [SMALL_STATE(28)] = 1778,
+  [SMALL_STATE(29)] = 1837,
+  [SMALL_STATE(30)] = 1896,
+  [SMALL_STATE(31)] = 1955,
+  [SMALL_STATE(32)] = 2082,
+  [SMALL_STATE(33)] = 2141,
+  [SMALL_STATE(34)] = 2206,
+  [SMALL_STATE(35)] = 2267,
+  [SMALL_STATE(36)] = 2338,
+  [SMALL_STATE(37)] = 2399,
+  [SMALL_STATE(38)] = 2458,
+  [SMALL_STATE(39)] = 2517,
+  [SMALL_STATE(40)] = 2576,
+  [SMALL_STATE(41)] = 2637,
+  [SMALL_STATE(42)] = 2696,
+  [SMALL_STATE(43)] = 2767,
+  [SMALL_STATE(44)] = 2855,
+  [SMALL_STATE(45)] = 2967,
+  [SMALL_STATE(46)] = 3081,
+  [SMALL_STATE(47)] = 3189,
+  [SMALL_STATE(48)] = 3272,
+  [SMALL_STATE(49)] = 3384,
+  [SMALL_STATE(50)] = 3496,
+  [SMALL_STATE(51)] = 3578,
+  [SMALL_STATE(52)] = 3690,
+  [SMALL_STATE(53)] = 3802,
+  [SMALL_STATE(54)] = 3914,
+  [SMALL_STATE(55)] = 3996,
+  [SMALL_STATE(56)] = 4108,
+  [SMALL_STATE(57)] = 4217,
+  [SMALL_STATE(58)] = 4326,
+  [SMALL_STATE(59)] = 4435,
+  [SMALL_STATE(60)] = 4526,
+  [SMALL_STATE(61)] = 4617,
+  [SMALL_STATE(62)] = 4708,
+  [SMALL_STATE(63)] = 4796,
+  [SMALL_STATE(64)] = 4884,
+  [SMALL_STATE(65)] = 4972,
+  [SMALL_STATE(66)] = 5021,
+  [SMALL_STATE(67)] = 5106,
+  [SMALL_STATE(68)] = 5188,
+  [SMALL_STATE(69)] = 5270,
+  [SMALL_STATE(70)] = 5352,
+  [SMALL_STATE(71)] = 5434,
+  [SMALL_STATE(72)] = 5513,
+  [SMALL_STATE(73)] = 5592,
+  [SMALL_STATE(74)] = 5671,
+  [SMALL_STATE(75)] = 5750,
+  [SMALL_STATE(76)] = 5829,
+  [SMALL_STATE(77)] = 5908,
+  [SMALL_STATE(78)] = 5987,
+  [SMALL_STATE(79)] = 6066,
+  [SMALL_STATE(80)] = 6145,
+  [SMALL_STATE(81)] = 6224,
+  [SMALL_STATE(82)] = 6303,
+  [SMALL_STATE(83)] = 6382,
+  [SMALL_STATE(84)] = 6461,
+  [SMALL_STATE(85)] = 6540,
+  [SMALL_STATE(86)] = 6619,
+  [SMALL_STATE(87)] = 6698,
+  [SMALL_STATE(88)] = 6777,
+  [SMALL_STATE(89)] = 6856,
+  [SMALL_STATE(90)] = 6935,
+  [SMALL_STATE(91)] = 7014,
+  [SMALL_STATE(92)] = 7093,
+  [SMALL_STATE(93)] = 7172,
+  [SMALL_STATE(94)] = 7251,
+  [SMALL_STATE(95)] = 7330,
+  [SMALL_STATE(96)] = 7409,
+  [SMALL_STATE(97)] = 7488,
+  [SMALL_STATE(98)] = 7567,
+  [SMALL_STATE(99)] = 7639,
+  [SMALL_STATE(100)] = 7715,
+  [SMALL_STATE(101)] = 7759,
+  [SMALL_STATE(102)] = 7823,
+  [SMALL_STATE(103)] = 7887,
+  [SMALL_STATE(104)] = 7955,
+  [SMALL_STATE(105)] = 8019,
+  [SMALL_STATE(106)] = 8065,
+  [SMALL_STATE(107)] = 8130,
+  [SMALL_STATE(108)] = 8171,
+  [SMALL_STATE(109)] = 8233,
+  [SMALL_STATE(110)] = 8295,
+  [SMALL_STATE(111)] = 8357,
+  [SMALL_STATE(112)] = 8419,
+  [SMALL_STATE(113)] = 8459,
+  [SMALL_STATE(114)] = 8497,
+  [SMALL_STATE(115)] = 8559,
+  [SMALL_STATE(116)] = 8621,
+  [SMALL_STATE(117)] = 8683,
+  [SMALL_STATE(118)] = 8723,
+  [SMALL_STATE(119)] = 8763,
+  [SMALL_STATE(120)] = 8825,
+  [SMALL_STATE(121)] = 8860,
+  [SMALL_STATE(122)] = 8895,
+  [SMALL_STATE(123)] = 8934,
+  [SMALL_STATE(124)] = 8971,
+  [SMALL_STATE(125)] = 9007,
+  [SMALL_STATE(126)] = 9040,
+  [SMALL_STATE(127)] = 9073,
+  [SMALL_STATE(128)] = 9106,
+  [SMALL_STATE(129)] = 9139,
+  [SMALL_STATE(130)] = 9172,
+  [SMALL_STATE(131)] = 9205,
+  [SMALL_STATE(132)] = 9238,
+  [SMALL_STATE(133)] = 9271,
+  [SMALL_STATE(134)] = 9304,
+  [SMALL_STATE(135)] = 9337,
+  [SMALL_STATE(136)] = 9370,
+  [SMALL_STATE(137)] = 9403,
+  [SMALL_STATE(138)] = 9436,
+  [SMALL_STATE(139)] = 9469,
+  [SMALL_STATE(140)] = 9502,
+  [SMALL_STATE(141)] = 9535,
+  [SMALL_STATE(142)] = 9568,
+  [SMALL_STATE(143)] = 9601,
+  [SMALL_STATE(144)] = 9634,
+  [SMALL_STATE(145)] = 9667,
+  [SMALL_STATE(146)] = 9700,
+  [SMALL_STATE(147)] = 9733,
+  [SMALL_STATE(148)] = 9766,
+  [SMALL_STATE(149)] = 9799,
+  [SMALL_STATE(150)] = 9832,
+  [SMALL_STATE(151)] = 9865,
+  [SMALL_STATE(152)] = 9898,
+  [SMALL_STATE(153)] = 9931,
+  [SMALL_STATE(154)] = 9963,
+  [SMALL_STATE(155)] = 9992,
+  [SMALL_STATE(156)] = 10021,
+  [SMALL_STATE(157)] = 10068,
+  [SMALL_STATE(158)] = 10097,
+  [SMALL_STATE(159)] = 10123,
+  [SMALL_STATE(160)] = 10161,
+  [SMALL_STATE(161)] = 10185,
+  [SMALL_STATE(162)] = 10218,
+  [SMALL_STATE(163)] = 10245,
+  [SMALL_STATE(164)] = 10265,
+  [SMALL_STATE(165)] = 10293,
+  [SMALL_STATE(166)] = 10321,
+  [SMALL_STATE(167)] = 10343,
+  [SMALL_STATE(168)] = 10371,
+  [SMALL_STATE(169)] = 10396,
+  [SMALL_STATE(170)] = 10413,
+  [SMALL_STATE(171)] = 10432,
+  [SMALL_STATE(172)] = 10451,
+  [SMALL_STATE(173)] = 10472,
+  [SMALL_STATE(174)] = 10495,
+  [SMALL_STATE(175)] = 10518,
+  [SMALL_STATE(176)] = 10541,
+  [SMALL_STATE(177)] = 10561,
+  [SMALL_STATE(178)] = 10583,
+  [SMALL_STATE(179)] = 10601,
+  [SMALL_STATE(180)] = 10621,
+  [SMALL_STATE(181)] = 10639,
+  [SMALL_STATE(182)] = 10657,
+  [SMALL_STATE(183)] = 10679,
+  [SMALL_STATE(184)] = 10699,
+  [SMALL_STATE(185)] = 10719,
+  [SMALL_STATE(186)] = 10739,
+  [SMALL_STATE(187)] = 10761,
+  [SMALL_STATE(188)] = 10781,
+  [SMALL_STATE(189)] = 10801,
+  [SMALL_STATE(190)] = 10821,
+  [SMALL_STATE(191)] = 10839,
+  [SMALL_STATE(192)] = 10857,
+  [SMALL_STATE(193)] = 10877,
+  [SMALL_STATE(194)] = 10896,
+  [SMALL_STATE(195)] = 10913,
+  [SMALL_STATE(196)] = 10932,
+  [SMALL_STATE(197)] = 10951,
+  [SMALL_STATE(198)] = 10968,
+  [SMALL_STATE(199)] = 10985,
+  [SMALL_STATE(200)] = 11000,
+  [SMALL_STATE(201)] = 11019,
+  [SMALL_STATE(202)] = 11034,
+  [SMALL_STATE(203)] = 11049,
+  [SMALL_STATE(204)] = 11068,
+  [SMALL_STATE(205)] = 11087,
+  [SMALL_STATE(206)] = 11102,
+  [SMALL_STATE(207)] = 11121,
+  [SMALL_STATE(208)] = 11140,
+  [SMALL_STATE(209)] = 11157,
+  [SMALL_STATE(210)] = 11176,
+  [SMALL_STATE(211)] = 11193,
+  [SMALL_STATE(212)] = 11208,
+  [SMALL_STATE(213)] = 11224,
+  [SMALL_STATE(214)] = 11240,
+  [SMALL_STATE(215)] = 11256,
+  [SMALL_STATE(216)] = 11269,
+  [SMALL_STATE(217)] = 11282,
+  [SMALL_STATE(218)] = 11295,
+  [SMALL_STATE(219)] = 11308,
+  [SMALL_STATE(220)] = 11321,
+  [SMALL_STATE(221)] = 11334,
+  [SMALL_STATE(222)] = 11347,
+  [SMALL_STATE(223)] = 11360,
+  [SMALL_STATE(224)] = 11373,
+  [SMALL_STATE(225)] = 11386,
+  [SMALL_STATE(226)] = 11399,
+  [SMALL_STATE(227)] = 11412,
+  [SMALL_STATE(228)] = 11425,
+  [SMALL_STATE(229)] = 11438,
+  [SMALL_STATE(230)] = 11451,
+  [SMALL_STATE(231)] = 11464,
+  [SMALL_STATE(232)] = 11477,
+  [SMALL_STATE(233)] = 11490,
+  [SMALL_STATE(234)] = 11503,
+  [SMALL_STATE(235)] = 11516,
+  [SMALL_STATE(236)] = 11529,
+  [SMALL_STATE(237)] = 11542,
+  [SMALL_STATE(238)] = 11555,
+  [SMALL_STATE(239)] = 11568,
+  [SMALL_STATE(240)] = 11581,
+  [SMALL_STATE(241)] = 11594,
+  [SMALL_STATE(242)] = 11607,
+  [SMALL_STATE(243)] = 11620,
+  [SMALL_STATE(244)] = 11633,
+  [SMALL_STATE(245)] = 11646,
+  [SMALL_STATE(246)] = 11659,
+  [SMALL_STATE(247)] = 11672,
+  [SMALL_STATE(248)] = 11685,
+  [SMALL_STATE(249)] = 11698,
+  [SMALL_STATE(250)] = 11711,
+  [SMALL_STATE(251)] = 11724,
+  [SMALL_STATE(252)] = 11737,
+  [SMALL_STATE(253)] = 11750,
+  [SMALL_STATE(254)] = 11763,
+  [SMALL_STATE(255)] = 11776,
+  [SMALL_STATE(256)] = 11789,
+  [SMALL_STATE(257)] = 11802,
+  [SMALL_STATE(258)] = 11815,
+  [SMALL_STATE(259)] = 11828,
+  [SMALL_STATE(260)] = 11841,
+  [SMALL_STATE(261)] = 11845,
+  [SMALL_STATE(262)] = 11849,
 };
 
 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(233),
-  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
+  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252),
+  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213),
   [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 0),
-  [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(126),
-  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
-  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121),
-  [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),
+  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
+  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
+  [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
+  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
+  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259),
+  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136),
+  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257),
+  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48),
+  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
+  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
+  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
+  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189),
+  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168),
+  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182),
+  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
+  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 23),
+  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 23),
+  [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, .production_id = 23),
+  [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, .production_id = 23),
+  [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1),
+  [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1),
+  [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 3),
+  [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 3),
+  [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, .production_id = 11),
+  [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, .production_id = 11),
   [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 = 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(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(165),
-  [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 1),
-  [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(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(89),
-  [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
-  [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
-  [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(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),
+  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1),
+  [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1),
+  [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__prefix_expression, 1),
+  [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__prefix_expression, 1),
+  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3),
+  [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3),
+  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3),
+  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3),
+  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2),
+  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2),
+  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, .production_id = 7),
+  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, .production_id = 7),
+  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quote_string, 2, .production_id = 5),
+  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quote_string, 2, .production_id = 5),
+  [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 2),
+  [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 2),
+  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block_string, 3, .production_id = 13),
+  [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block_string, 3, .production_id = 13),
+  [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quote_string, 3, .production_id = 28),
+  [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quote_string, 3, .production_id = 28),
+  [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 29),
+  [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 29),
+  [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
+  [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
+  [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80),
+  [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
+  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79),
+  [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
+  [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
+  [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
+  [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
+  [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89),
+  [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
+  [133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
+  [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
+  [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 2, .production_id = 27),
+  [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 2, .production_id = 27),
+  [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59),
+  [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151),
+  [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91),
+  [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
+  [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 2, .production_id = 14),
+  [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 2, .production_id = 14),
+  [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 3, .production_id = 41),
+  [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 3, .production_id = 41),
+  [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 16),
+  [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 16),
+  [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 15),
+  [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 15),
+  [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
+  [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88),
+  [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 1),
+  [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 3, .production_id = 30),
+  [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2),
+  [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(4),
+  [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2),
+  [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(131),
+  [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(259),
+  [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(136),
+  [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(257),
+  [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(48),
+  [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(87),
+  [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(55),
+  [201] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(92),
+  [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(189),
+  [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(168),
+  [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(182),
+  [213] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(93),
+  [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 50),
+  [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 50),
+  [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133),
+  [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150),
+  [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, .production_id = 18),
+  [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, .production_id = 18),
+  [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148),
+  [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30),
+  [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_statement, 1),
+  [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 4, .production_id = 31),
+  [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 4, .production_id = 31),
+  [238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95),
+  [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 1),
+  [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 2),
+  [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
+  [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 1),
+  [248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196),
+  [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20),
+  [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
+  [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
+  [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
+  [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
+  [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
+  [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76),
+  [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249),
+  [266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65),
+  [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
+  [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
+  [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
+  [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2),
+  [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 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, 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),
+  [280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77),
+  [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
+  [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2),
+  [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list_repeat1, 2),
+  [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
+  [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
+  [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 1),
+  [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
+  [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 1),
+  [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
+  [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1),
+  [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 42),
+  [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 5, .production_id = 56),
+  [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
+  [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, .production_id = 15),
+  [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 1, .production_id = 4),
+  [312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 1, .production_id = 4),
+  [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218),
+  [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
+  [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
+  [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 5, .production_id = 55),
+  [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 25),
+  [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 25),
+  [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
+  [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 7, .production_id = 58),
+  [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
+  [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
+  [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 3, .production_id = 36),
+  [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 3, .production_id = 36),
+  [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 37),
+  [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 37),
+  [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 37), SHIFT_REPEAT(218),
+  [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
+  [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
+  [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
+  [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, .production_id = 21),
+  [353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, .production_id = 21),
+  [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, .production_id = 20),
+  [357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, .production_id = 20),
+  [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
+  [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attrib, 3),
+  [363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__attrib, 3),
+  [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 3, .production_id = 49),
+  [367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 3, .production_id = 49),
+  [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 39),
+  [371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 39),
+  [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 51),
+  [375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 51),
+  [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 51), SHIFT_REPEAT(75),
+  [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2, .production_id = 10),
+  [382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2, .production_id = 10),
+  [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
+  [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 3, .production_id = 19),
+  [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 3, .production_id = 19),
+  [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 48),
+  [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 48),
+  [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 46),
+  [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 46),
+  [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 45),
+  [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 45),
+  [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, .production_id = 57),
+  [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, .production_id = 57),
+  [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44),
+  [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 44),
+  [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1),
+  [412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1),
+  [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 43),
+  [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 43),
+  [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 2),
+  [420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 2),
+  [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 1),
+  [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 1),
+  [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 3, .production_id = 17),
+  [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 3, .production_id = 17),
+  [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_statement, 3, .production_id = 22),
+  [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_statement, 3, .production_id = 22),
+  [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_statement, 3),
+  [436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label_statement, 3),
+  [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 54),
+  [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 54),
+  [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 38),
+  [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 38),
+  [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 53),
+  [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 53),
+  [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, .production_id = 1),
+  [452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1, .production_id = 1),
+  [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 52),
+  [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 52),
+  [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1),
+  [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1),
+  [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2),
+  [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2),
+  [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 2),
+  [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 2),
+  [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 3),
+  [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 3),
+  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, .production_id = 30),
+  [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, .production_id = 30),
+  [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_function_declaration, 4, .production_id = 35),
+  [480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_function_declaration, 4, .production_id = 35),
+  [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 4, .production_id = 33),
+  [484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 4, .production_id = 33),
+  [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 30),
+  [488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 30),
+  [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 2),
+  [492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 2),
+  [494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_sep, 1),
+  [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_sep, 1),
+  [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 2),
+  [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2),
+  [502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 3, .production_id = 40),
+  [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, .production_id = 40),
+  [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
+  [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
+  [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
+  [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
+  [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
+  [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
+  [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
+  [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229),
+  [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 1, .production_id = 4),
+  [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
+  [526] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2), SHIFT_REPEAT(90),
+  [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 25),
+  [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+  [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 2),
+  [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 2),
+  [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
+  [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
+  [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
+  [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
+  [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
+  [547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
+  [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
+  [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
+  [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_index_expression, 3, .production_id = 24),
+  [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3),
+  [557] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3),
+  [559] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2), SHIFT_REPEAT(153),
+  [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2),
+  [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153),
+  [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1),
+  [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 47),
+  [570] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 47), SHIFT_REPEAT(91),
+  [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 47),
+  [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
+  [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
+  [579] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252),
+  [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
+  [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232),
+  [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154),
+  [587] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 26), SHIFT_REPEAT(223),
+  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 26),
+  [592] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
+  [594] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__singlequote_string_content, 2),
+  [596] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__singlequote_string_content, 2), SHIFT_REPEAT(210),
+  [599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__doublequote_string_content, 2),
+  [601] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__doublequote_string_content, 2), SHIFT_REPEAT(194),
+  [604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105),
+  [606] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235),
+  [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
+  [610] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39),
+  [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
+  [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
+  [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223),
+  [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 1, .production_id = 4),
+  [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
+  [622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 2),
+  [624] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 2),
+  [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 1),
+  [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
+  [630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__doublequote_string_content, 1),
+  [632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__doublequote_string_content, 1),
+  [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
+  [636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1, .production_id = 4),
+  [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif_statement, 4, .production_id = 44),
+  [640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 4, .production_id = 44),
+  [642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32),
+  [644] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32),
+  [646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1),
+  [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221),
+  [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217),
+  [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1),
+  [654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1, .production_id = 8),
+  [656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 25),
+  [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
+  [660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_dot_index_expression, 3, .production_id = 23),
+  [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
+  [664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 2, .production_id = 12),
+  [666] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 2, .production_id = 12),
+  [668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 26),
+  [670] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 26), SHIFT_REPEAT(161),
+  [673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 2, .production_id = 12),
+  [675] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__singlequote_string_content, 1),
+  [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__singlequote_string_content, 1),
+  [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
+  [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231),
+  [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253),
+  [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260),
+  [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
+  [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 3),
+  [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
+  [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238),
+  [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
+  [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_statement, 2, .production_id = 17),
+  [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
+  [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
+  [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
+  [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
+  [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
+  [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_generic_clause, 3, .production_id = 34),
+  [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
+  [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
+  [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258),
+  [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
+  [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 3, .production_id = 4),
+  [721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1),
+  [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
+  [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
+  [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
+  [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1, .production_id = 9),
+  [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
+  [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_method_index_expression, 3, .production_id = 24),
+  [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
+  [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
+  [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 4, .production_id = 12),
+  [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
+  [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
+  [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
+  [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
+  [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
+  [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
+  [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
+  [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227),
+  [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
+  [759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261),
+  [761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262),
+  [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
+  [765] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
+  [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
+  [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
+  [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247),
+  [773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, .production_id = 5),
+  [775] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, .production_id = 6),
+  [777] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3, .production_id = 13),
 };
 
 #ifdef __cplusplus
diff --git a/src/scanner.c b/src/scanner.c
index b9890c4..90ca088 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -1,18 +1,19 @@
+#include <stdio.h>
 #include <tree_sitter/parser.h>
 #include <wctype.h>
-#include <stdio.h>
 
 enum TokenType {
   BLOCK_COMMENT_START,
   BLOCK_COMMENT_CONTENT,
   BLOCK_COMMENT_END,
 
-  STRING_START,
-  STRING_CONTENT,
-  STRING_END,
+  BLOCK_STRING_START,
+  BLOCK_STRING_CONTENT,
+  BLOCK_STRING_END,
 };
 
 static inline void consume(TSLexer *lexer) { lexer->advance(lexer, false); }
+
 static inline void skip(TSLexer *lexer) { lexer->advance(lexer, true); }
 
 static inline bool consume_char(char c, TSLexer *lexer) {
@@ -40,6 +41,7 @@ static inline void skip_whitespaces(TSLexer *lexer) {
 }
 
 void *tree_sitter_lua_external_scanner_create() { return NULL; }
+
 void tree_sitter_lua_external_scanner_destroy(void *payload) {}
 
 char ending_char = 0;
@@ -141,64 +143,15 @@ static bool scan_comment_content(TSLexer *lexer) {
   return false;
 }
 
-static bool scan_string_start(TSLexer *lexer) {
-  if (lexer->lookahead == '"' || lexer->lookahead == '\'') {
-    ending_char = lexer->lookahead;
-    consume(lexer);
-    return true;
-  }
-
-  if (scan_block_start(lexer)) {
-    return true;
-  }
-
-  return false;
-}
-
-static bool scan_string_end(TSLexer *lexer) {
-  if (ending_char == 0) { // block string
-    return scan_block_end(lexer);
-  }
-
-  if (consume_char(ending_char, lexer)) {
-    return true;
-  }
-
-  return false;
-}
-
-static bool scan_string_content(TSLexer *lexer) {
-  if (ending_char == 0) { // block string
-    return scan_block_content(lexer);
-  }
-
-  while (lexer->lookahead != '\n' && lexer->lookahead != 0 && lexer->lookahead != ending_char) {
-    if (consume_char('\\', lexer) && consume_char('z', lexer)) {
-      while (iswspace(lexer->lookahead)) {
-        consume(lexer);
-      }
-      continue;
-    };
-
-    if (lexer->lookahead == 0) {
-      return true;
-    }
-
-    consume(lexer);
-  }
-
-  return true;
-}
-
 bool tree_sitter_lua_external_scanner_scan(void *payload, TSLexer *lexer, const bool *valid_symbols) {
-  if (valid_symbols[STRING_END] && scan_string_end(lexer)) {
+  if (valid_symbols[BLOCK_STRING_END] && scan_block_end(lexer)) {
     reset_state();
-    lexer->result_symbol = STRING_END;
+    lexer->result_symbol = BLOCK_STRING_END;
     return true;
   }
 
-  if (valid_symbols[STRING_CONTENT] && scan_string_content(lexer)) {
-    lexer->result_symbol = STRING_CONTENT;
+  if (valid_symbols[BLOCK_STRING_CONTENT] && scan_block_content(lexer)) {
+    lexer->result_symbol = BLOCK_STRING_CONTENT;
     return true;
   }
 
@@ -214,8 +167,8 @@ bool tree_sitter_lua_external_scanner_scan(void *payload, TSLexer *lexer, const
 
   skip_whitespaces(lexer);
 
-  if (valid_symbols[STRING_START] && scan_string_start(lexer)) {
-    lexer->result_symbol = STRING_START;
+  if (valid_symbols[BLOCK_STRING_START] && scan_block_start(lexer)) {
+    lexer->result_symbol = BLOCK_STRING_START;
     return true;
   }
 


Test patch:
diff --git a/test/corpus/comments.txt b/test/corpus/comments.txt
index 9b9c17c..f38a17f 100644
--- a/test/corpus/comments.txt
+++ b/test/corpus/comments.txt
@@ -62,7 +62,8 @@ print("not level 2 block comment")
   (function_call
     name: (identifier)
     arguments: (arguments
-      (string)))
+      (string
+        content: (string_content))))
   (comment)
   (comment)
   (comment)
@@ -76,5 +77,6 @@ print("not level 2 block comment")
   (function_call
     name: (identifier)
     arguments: (arguments
-      (string)))
+      (string
+        content: (string_content))))
   (comment))
diff --git a/test/corpus/expressions.txt b/test/corpus/expressions.txt
index f3748f1..737db35 100644
--- a/test/corpus/expressions.txt
+++ b/test/corpus/expressions.txt
@@ -56,6 +56,8 @@ exp(
   34e1,
   0x0.1E,
   0xA23p-4,
+  0x.0p-3,
+  0x.FfffFFFF,
   0X1.921FB54442D18P+1
 )
 
@@ -76,6 +78,8 @@ exp(
       (number)
       (number)
       (number)
+      (number)
+      (number)
       (number))))
 
 ================================================================================
@@ -85,15 +89,6 @@ string
 exp(
   "string",
   'string',
-  "a\
-  b",
-  'a\z',
-  'a\z
-  ',
-  'a\z
-  b',
-  "'a\z\
-  b'",
   "c",
   'c',
   "0",
@@ -125,31 +120,80 @@ exp(
 )
 
 
+--------------------------------------------------------------------------------
+
+(chunk
+  (function_call
+    (identifier)
+    (arguments
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content))
+      (string
+        (string_content)))))
+
+================================================================================
+string :: escape_sequence
+================================================================================
+
+exp(
+  "a\
+  b",
+  'a\z',
+  'a\z
+  ',
+  'a\z
+  b',
+  "'a\z\
+  b'"
+)
+
+
 --------------------------------------------------------------------------------
 
 (chunk
   (function_call
     name: (identifier)
     arguments: (arguments
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string)
-      (string))))
+      (string
+        content: (string_content
+          (escape_sequence)))
+      (string
+        content: (string_content
+          (escape_sequence)))
+      (string
+        content: (string_content
+          (escape_sequence)))
+      (string
+        content: (string_content
+          (escape_sequence)))
+      (string
+        content: (string_content
+          (escape_sequence)
+          (escape_sequence))))))
 
 ================================================================================
 vararg_expression
@@ -296,7 +340,8 @@ v4 = tbk[getK1()][getK2()]
         table: (bracket_index_expression
           table: (identifier)
           field: (identifier))
-        field: (string))))
+        field: (string
+          content: (string_content)))))
   (assignment_statement
     (variable_list
       name: (identifier))
@@ -364,7 +409,8 @@ v3 = tbl[k1] "a1"
           field: (identifier))
         arguments: (arguments
           (identifier)
-          (string)
+          (string
+            content: (string_content))
           (function_call
             name: (identifier)
             arguments: (arguments))))))
@@ -390,7 +436,8 @@ v3 = tbl[k1] "a1"
           table: (identifier)
           field: (identifier))
         arguments: (arguments
-          (string))))))
+          (string
+            content: (string_content)))))))
 
 ================================================================================
 function_call ::: method_index_expression
@@ -413,7 +460,8 @@ tbl:m1 "a1"
       method: (identifier))
     arguments: (arguments
       (identifier)
-      (string)))
+      (string
+        content: (string_content))))
   (function_call
     name: (method_index_expression
       table: (bracket_index_expression
@@ -425,13 +473,15 @@ tbl:m1 "a1"
         (field
           value: (identifier))
         (field
-          value: (string)))))
+          value: (string
+            content: (string_content))))))
   (function_call
     name: (method_index_expression
       table: (identifier)
       method: (identifier))
     arguments: (arguments
-      (string))))
+      (string
+        content: (string_content)))))
 
 ================================================================================
 parenthesized_expression
@@ -486,10 +536,12 @@ local tbl3 = { "v1", k1 = "v2" }
     (expression_list
       value: (table_constructor
         (field
-          name: (string)
+          name: (string
+            content: (string_content))
           value: (table_constructor
             (field
-              name: (string)
+              name: (string
+                content: (string_content))
               value: (true))
             (field
               name: (identifier)
@@ -506,9 +558,11 @@ local tbl3 = { "v1", k1 = "v2" }
               (field
                 value: (table_constructor
                   (field
-                    value: (string))
+                    value: (string
+                      content: (string_content)))
                   (field
-                    value: (string))))))))))
+                    value: (string
+                      content: (string_content)))))))))))
   local_declaration: (variable_declaration
     (assignment_statement
       (variable_list
@@ -516,10 +570,12 @@ local tbl3 = { "v1", k1 = "v2" }
       (expression_list
         value: (table_constructor
           (field
-            value: (string))
+            value: (string
+              content: (string_content)))
           (field
             name: (identifier)
-            value: (string)))))))
+            value: (string
+              content: (string_content))))))))
 
 ================================================================================
 binary_expression
diff --git a/test/corpus/statements.txt b/test/corpus/statements.txt
index d9e524d..077f3d6 100644
--- a/test/corpus/statements.txt
+++ b/test/corpus/statements.txt
@@ -77,7 +77,8 @@ f4(a1)("a2") { a3 = "a3" }
   (function_call
     name: (bracket_index_expression
       table: (identifier)
-      field: (string))
+      field: (string
+        content: (string_content)))
     arguments: (arguments))
   (function_call
     name: (method_index_expression
@@ -93,12 +94,14 @@ f4(a1)("a2") { a3 = "a3" }
         arguments: (arguments
           (identifier)))
       arguments: (arguments
-        (string)))
+        (string
+          content: (string_content))))
     arguments: (arguments
       (table_constructor
         (field
           name: (identifier)
-          value: (string))))))
+          value: (string
+            content: (string_content)))))))
 
 ================================================================================
 label_statement
@@ -271,7 +274,8 @@ if c1 then elseif c2 then else end
       (function_call
         name: (identifier)
         arguments: (arguments
-          (string))))
+          (string
+            content: (string_content)))))
     alternative: (elseif_statement
       condition: (binary_expression
         left: (binary_expression
@@ -282,13 +286,15 @@ if c1 then elseif c2 then else end
         (function_call
           name: (identifier)
           arguments: (arguments
-            (string)))))
+            (string
+              content: (string_content))))))
     alternative: (else_statement
       body: (block
         (function_call
           name: (identifier)
           arguments: (arguments
-            (string))))))
+            (string
+              content: (string_content)))))))
   (if_statement
     condition: (identifier))
   (if_statement
@@ -412,7 +418,8 @@ local function f5() end
       (function_call
         name: (identifier)
         arguments: (arguments
-          (string)))))
+          (string
+            content: (string_content))))))
   local_declaration: (function_declaration
     name: (identifier)
     parameters: (parameters)))
@@ -491,4 +498,5 @@ local f <close> = io.open('/file.lua')
             table: (identifier)
             field: (identifier))
           arguments: (arguments
-            (string)))))))
+            (string
+              content: (string_content))))))))