]> git.r.bdr.sh - rbdr/tree-sitter-api-notation/commitdiff
Add optionals
authorRuben Beltran del Rio <redacted>
Wed, 4 Oct 2023 12:06:17 +0000 (14:06 +0200)
committerRuben Beltran del Rio <redacted>
Wed, 4 Oct 2023 12:06:17 +0000 (14:06 +0200)
grammar.js
queries/highlights.scm
src/grammar.json
src/node-types.json
src/parser.c
test/corpus/notation.txt
test/highlight/notation.api

index e74c27b6a9cd718f5f73b087acc0ea31fc57669c..db1219dab138467c5861408015009e6a81f216e9 100644 (file)
@@ -83,12 +83,20 @@ module.exports = grammar({
       )
     ),
     identifier: $ => prec.left(seq(
-      $._label,
+      choice(
+        $.optional_value,
+        $._label,
+      ),
       optional($.type_annotation),
       optional($.parameter_list),
       optional($.return_statement),
       optional($.throw_statement),
     )),
+    optional_value: $ => seq(
+      '[',
+      $._label,
+      ']'
+    ),
     type_annotation: $ => seq(
       '<',
       $._entry_list,
index 9536ffdd2c787d9870b633919b5dde0724d4f877..b4e04e4d2f34acfda9558d0f5151d3fe9f766898 100644 (file)
@@ -2,7 +2,8 @@
 (member_type) @operator
 (member) @property
 (parameter_list) @function
-(parameter_list (identifier) @parameter)
+(parameter_list (identifier (optional_value) @variable.parameter.optional))
+(parameter_list (identifier) @variable.parameter)
 (identifier) @keyword
 (throw_statement) @operator
 (return_statement) @operator
index 1d2d121d4fb51a72c6441010308d9c69b0c1cdd2..e25308a296ce52970bf8f652d8afe4d2320180de 100644 (file)
         "type": "SEQ",
         "members": [
           {
-            "type": "SYMBOL",
-            "name": "_label"
+            "type": "CHOICE",
+            "members": [
+              {
+                "type": "SYMBOL",
+                "name": "optional_value"
+              },
+              {
+                "type": "SYMBOL",
+                "name": "_label"
+              }
+            ]
           },
           {
             "type": "CHOICE",
         ]
       }
     },
+    "optional_value": {
+      "type": "SEQ",
+      "members": [
+        {
+          "type": "STRING",
+          "value": "["
+        },
+        {
+          "type": "SYMBOL",
+          "name": "_label"
+        },
+        {
+          "type": "STRING",
+          "value": "]"
+        }
+      ]
+    },
     "type_annotation": {
       "type": "SEQ",
       "members": [
index 95b68abe6168a71e543e552c5beaeaa4d236fb6d..7365fad7cde0e891f3b94ff2f20412818e4410bd 100644 (file)
       "multiple": true,
       "required": false,
       "types": [
+        {
+          "type": "optional_value",
+          "named": true
+        },
         {
           "type": "parameter_list",
           "named": true
     "named": true,
     "fields": {}
   },
+  {
+    "type": "optional_value",
+    "named": true,
+    "fields": {}
+  },
   {
     "type": "parameter_list",
     "named": true,
     "type": ">",
     "named": false
   },
+  {
+    "type": "[",
+    "named": false
+  },
+  {
+    "type": "]",
+    "named": false
+  },
   {
     "type": "~>",
     "named": false
index aae9ba244e663e1281fd22e987d461009ad1aabc..fcfa1d01924b2e183a1b9a14e9114ad934d53d94 100644 (file)
@@ -6,11 +6,11 @@
 #endif
 
 #define LANGUAGE_VERSION 14
-#define STATE_COUNT 146
+#define STATE_COUNT 152
 #define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 42
+#define SYMBOL_COUNT 45
 #define ALIAS_COUNT 0
-#define TOKEN_COUNT 23
+#define TOKEN_COUNT 25
 #define EXTERNAL_TOKEN_COUNT 0
 #define FIELD_COUNT 0
 #define MAX_ALIAS_SEQUENCE_LENGTH 7
@@ -33,31 +33,34 @@ enum {
   anon_sym_EQ_GT = 14,
   anon_sym_POUND_GT = 15,
   anon_sym_COMMA = 16,
-  anon_sym_LT = 17,
-  anon_sym_GT = 18,
-  anon_sym_SLASH_SLASH = 19,
-  aux_sym_comment_token1 = 20,
-  sym__label = 21,
-  sym__newline = 22,
-  sym_source_file = 23,
-  sym_definition = 24,
-  sym_entry = 25,
-  sym_member = 26,
-  sym_member_type = 27,
-  sym_parameter_list = 28,
-  sym_return_statement = 29,
-  sym_throw_statement = 30,
-  sym__entry_list = 31,
-  sym__identifier_list = 32,
-  sym_identifier = 33,
-  sym_type_annotation = 34,
-  sym_comment = 35,
-  aux_sym_source_file_repeat1 = 36,
-  aux_sym_source_file_repeat2 = 37,
-  aux_sym_definition_repeat1 = 38,
-  aux_sym_entry_repeat1 = 39,
-  aux_sym__entry_list_repeat1 = 40,
-  aux_sym__identifier_list_repeat1 = 41,
+  anon_sym_LBRACK = 17,
+  anon_sym_RBRACK = 18,
+  anon_sym_LT = 19,
+  anon_sym_GT = 20,
+  anon_sym_SLASH_SLASH = 21,
+  aux_sym_comment_token1 = 22,
+  sym__label = 23,
+  sym__newline = 24,
+  sym_source_file = 25,
+  sym_definition = 26,
+  sym_entry = 27,
+  sym_member = 28,
+  sym_member_type = 29,
+  sym_parameter_list = 30,
+  sym_return_statement = 31,
+  sym_throw_statement = 32,
+  sym__entry_list = 33,
+  sym__identifier_list = 34,
+  sym_identifier = 35,
+  sym_optional_value = 36,
+  sym_type_annotation = 37,
+  sym_comment = 38,
+  aux_sym_source_file_repeat1 = 39,
+  aux_sym_source_file_repeat2 = 40,
+  aux_sym_definition_repeat1 = 41,
+  aux_sym_entry_repeat1 = 42,
+  aux_sym__entry_list_repeat1 = 43,
+  aux_sym__identifier_list_repeat1 = 44,
 };
 
 static const char * const ts_symbol_names[] = {
@@ -78,6 +81,8 @@ static const char * const ts_symbol_names[] = {
   [anon_sym_EQ_GT] = "=>",
   [anon_sym_POUND_GT] = "#>",
   [anon_sym_COMMA] = ",",
+  [anon_sym_LBRACK] = "[",
+  [anon_sym_RBRACK] = "]",
   [anon_sym_LT] = "<",
   [anon_sym_GT] = ">",
   [anon_sym_SLASH_SLASH] = "//",
@@ -95,6 +100,7 @@ static const char * const ts_symbol_names[] = {
   [sym__entry_list] = "_entry_list",
   [sym__identifier_list] = "_identifier_list",
   [sym_identifier] = "identifier",
+  [sym_optional_value] = "optional_value",
   [sym_type_annotation] = "type_annotation",
   [sym_comment] = "comment",
   [aux_sym_source_file_repeat1] = "source_file_repeat1",
@@ -123,6 +129,8 @@ static const TSSymbol ts_symbol_map[] = {
   [anon_sym_EQ_GT] = anon_sym_EQ_GT,
   [anon_sym_POUND_GT] = anon_sym_POUND_GT,
   [anon_sym_COMMA] = anon_sym_COMMA,
+  [anon_sym_LBRACK] = anon_sym_LBRACK,
+  [anon_sym_RBRACK] = anon_sym_RBRACK,
   [anon_sym_LT] = anon_sym_LT,
   [anon_sym_GT] = anon_sym_GT,
   [anon_sym_SLASH_SLASH] = anon_sym_SLASH_SLASH,
@@ -140,6 +148,7 @@ static const TSSymbol ts_symbol_map[] = {
   [sym__entry_list] = sym__entry_list,
   [sym__identifier_list] = sym__identifier_list,
   [sym_identifier] = sym_identifier,
+  [sym_optional_value] = sym_optional_value,
   [sym_type_annotation] = sym_type_annotation,
   [sym_comment] = sym_comment,
   [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
@@ -219,6 +228,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = false,
   },
+  [anon_sym_LBRACK] = {
+    .visible = true,
+    .named = false,
+  },
+  [anon_sym_RBRACK] = {
+    .visible = true,
+    .named = false,
+  },
   [anon_sym_LT] = {
     .visible = true,
     .named = false,
@@ -287,6 +304,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = true,
     .named = true,
   },
+  [sym_optional_value] = {
+    .visible = true,
+    .named = true,
+  },
   [sym_type_annotation] = {
     .visible = true,
     .named = true,
@@ -346,136 +367,142 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
   [13] = 11,
   [14] = 11,
   [15] = 15,
-  [16] = 15,
-  [17] = 11,
-  [18] = 18,
-  [19] = 15,
-  [20] = 15,
+  [16] = 16,
+  [17] = 17,
+  [18] = 16,
+  [19] = 11,
+  [20] = 16,
   [21] = 21,
-  [22] = 22,
+  [22] = 16,
   [23] = 23,
-  [24] = 15,
-  [25] = 25,
-  [26] = 25,
-  [27] = 23,
-  [28] = 25,
-  [29] = 25,
-  [30] = 30,
-  [31] = 23,
-  [32] = 32,
+  [24] = 24,
+  [25] = 16,
+  [26] = 26,
+  [27] = 26,
+  [28] = 23,
+  [29] = 29,
+  [30] = 23,
+  [31] = 26,
+  [32] = 24,
   [33] = 23,
   [34] = 34,
-  [35] = 35,
+  [35] = 26,
   [36] = 36,
   [37] = 37,
-  [38] = 25,
+  [38] = 38,
   [39] = 39,
-  [40] = 34,
+  [40] = 40,
   [41] = 41,
-  [42] = 39,
+  [42] = 36,
   [43] = 43,
-  [44] = 35,
-  [45] = 32,
+  [44] = 44,
+  [45] = 45,
   [46] = 23,
   [47] = 47,
   [48] = 48,
   [49] = 49,
-  [50] = 34,
-  [51] = 48,
-  [52] = 41,
-  [53] = 53,
-  [54] = 34,
-  [55] = 35,
-  [56] = 56,
-  [57] = 39,
-  [58] = 49,
-  [59] = 41,
+  [50] = 50,
+  [51] = 37,
+  [52] = 43,
+  [53] = 36,
+  [54] = 38,
+  [55] = 26,
+  [56] = 45,
+  [57] = 29,
+  [58] = 58,
+  [59] = 59,
   [60] = 60,
-  [61] = 36,
+  [61] = 49,
   [62] = 62,
-  [63] = 48,
-  [64] = 41,
-  [65] = 47,
-  [66] = 35,
+  [63] = 49,
+  [64] = 39,
+  [65] = 45,
+  [66] = 49,
   [67] = 67,
-  [68] = 43,
-  [69] = 39,
+  [68] = 37,
+  [69] = 69,
   [70] = 70,
-  [71] = 49,
-  [72] = 72,
-  [73] = 73,
-  [74] = 37,
+  [71] = 40,
+  [72] = 39,
+  [73] = 59,
+  [74] = 60,
   [75] = 75,
-  [76] = 76,
-  [77] = 47,
-  [78] = 43,
-  [79] = 79,
-  [80] = 80,
-  [81] = 81,
+  [76] = 44,
+  [77] = 45,
+  [78] = 39,
+  [79] = 40,
+  [80] = 62,
+  [81] = 48,
   [82] = 82,
-  [83] = 82,
-  [84] = 80,
-  [85] = 49,
+  [83] = 69,
+  [84] = 50,
+  [85] = 50,
   [86] = 86,
-  [87] = 47,
-  [88] = 76,
-  [89] = 73,
-  [90] = 43,
+  [87] = 37,
+  [88] = 88,
+  [89] = 89,
+  [90] = 62,
   [91] = 91,
-  [92] = 41,
-  [93] = 93,
-  [94] = 72,
-  [95] = 35,
-  [96] = 48,
-  [97] = 91,
-  [98] = 93,
-  [99] = 41,
-  [100] = 56,
-  [101] = 81,
-  [102] = 39,
-  [103] = 75,
-  [104] = 70,
-  [105] = 34,
-  [106] = 93,
-  [107] = 86,
-  [108] = 108,
-  [109] = 109,
-  [110] = 110,
-  [111] = 111,
-  [112] = 43,
-  [113] = 113,
-  [114] = 114,
-  [115] = 49,
-  [116] = 116,
-  [117] = 113,
-  [118] = 113,
-  [119] = 119,
-  [120] = 41,
-  [121] = 114,
-  [122] = 113,
-  [123] = 56,
-  [124] = 47,
+  [92] = 48,
+  [93] = 62,
+  [94] = 94,
+  [95] = 44,
+  [96] = 96,
+  [97] = 97,
+  [98] = 89,
+  [99] = 45,
+  [100] = 97,
+  [101] = 101,
+  [102] = 82,
+  [103] = 88,
+  [104] = 44,
+  [105] = 105,
+  [106] = 94,
+  [107] = 96,
+  [108] = 105,
+  [109] = 49,
+  [110] = 40,
+  [111] = 48,
+  [112] = 39,
+  [113] = 50,
+  [114] = 39,
+  [115] = 37,
+  [116] = 105,
+  [117] = 105,
+  [118] = 67,
+  [119] = 91,
+  [120] = 105,
+  [121] = 86,
+  [122] = 122,
+  [123] = 40,
+  [124] = 48,
   [125] = 125,
   [126] = 126,
   [127] = 127,
-  [128] = 126,
-  [129] = 126,
-  [130] = 126,
-  [131] = 126,
-  [132] = 132,
+  [128] = 50,
+  [129] = 129,
+  [130] = 130,
+  [131] = 67,
+  [132] = 39,
   [133] = 133,
   [134] = 134,
-  [135] = 133,
+  [135] = 135,
   [136] = 136,
-  [137] = 137,
+  [137] = 136,
   [138] = 138,
   [139] = 139,
-  [140] = 140,
+  [140] = 135,
   [141] = 141,
   [142] = 142,
-  [143] = 136,
+  [143] = 143,
   [144] = 144,
-  [145] = 145,
+  [145] = 134,
+  [146] = 146,
+  [147] = 141,
+  [148] = 148,
+  [149] = 149,
+  [150] = 150,
+  [151] = 151,
 };
 
 static bool ts_lex(TSLexer *lexer, TSStateId state) {
@@ -493,9 +520,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '.') ADVANCE(11);
       if (lookahead == '/') ADVANCE(4);
       if (lookahead == ':') ADVANCE(5);
-      if (lookahead == '<') ADVANCE(29);
+      if (lookahead == '<') ADVANCE(31);
       if (lookahead == '=') ADVANCE(7);
-      if (lookahead == '>') ADVANCE(30);
+      if (lookahead == '>') ADVANCE(32);
+      if (lookahead == '[') ADVANCE(28);
+      if (lookahead == ']') ADVANCE(29);
       if (lookahead == '~') ADVANCE(8);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
@@ -503,15 +532,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == ' ') SKIP(0)
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(34);
+          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36);
       END_STATE();
     case 1:
-      if (lookahead == '\n') ADVANCE(35);
+      if (lookahead == '\n') ADVANCE(37);
       if (lookahead == '#') ADVANCE(6);
       if (lookahead == '(') ADVANCE(23);
       if (lookahead == ',') ADVANCE(27);
       if (lookahead == '.') ADVANCE(11);
-      if (lookahead == '<') ADVANCE(28);
+      if (lookahead == '<') ADVANCE(30);
       if (lookahead == '=') ADVANCE(7);
       if (lookahead == '\t' ||
           lookahead == '\r' ||
@@ -523,9 +552,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == ')') ADVANCE(24);
       if (lookahead == ',') ADVANCE(27);
       if (lookahead == '.') ADVANCE(11);
-      if (lookahead == '<') ADVANCE(28);
+      if (lookahead == '<') ADVANCE(30);
       if (lookahead == '=') ADVANCE(7);
-      if (lookahead == '>') ADVANCE(30);
+      if (lookahead == '>') ADVANCE(32);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
@@ -537,7 +566,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '~') ADVANCE(16);
       END_STATE();
     case 4:
-      if (lookahead == '/') ADVANCE(31);
+      if (lookahead == '/') ADVANCE(33);
       END_STATE();
     case 5:
       if (lookahead == ':') ADVANCE(12);
@@ -553,7 +582,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 9:
       if (eof) ADVANCE(10);
-      if (lookahead == '\n') ADVANCE(35);
+      if (lookahead == '\n') ADVANCE(37);
       if (lookahead == '#') ADVANCE(19);
       if (lookahead == '+') ADVANCE(21);
       if (lookahead == ',') ADVANCE(27);
@@ -562,13 +591,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '/') ADVANCE(4);
       if (lookahead == ':') ADVANCE(5);
       if (lookahead == '<') ADVANCE(3);
+      if (lookahead == '[') ADVANCE(28);
       if (lookahead == '~') ADVANCE(8);
       if (lookahead == '\t' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(9)
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(34);
+          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36);
       END_STATE();
     case 10:
       ACCEPT_TOKEN(ts_builtin_sym_end);
@@ -628,44 +658,50 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       ACCEPT_TOKEN(anon_sym_COMMA);
       END_STATE();
     case 28:
-      ACCEPT_TOKEN(anon_sym_LT);
+      ACCEPT_TOKEN(anon_sym_LBRACK);
       END_STATE();
     case 29:
+      ACCEPT_TOKEN(anon_sym_RBRACK);
+      END_STATE();
+    case 30:
+      ACCEPT_TOKEN(anon_sym_LT);
+      END_STATE();
+    case 31:
       ACCEPT_TOKEN(anon_sym_LT);
       if (lookahead == '+') ADVANCE(18);
       if (lookahead == '-') ADVANCE(14);
       if (lookahead == '~') ADVANCE(16);
       END_STATE();
-    case 30:
+    case 32:
       ACCEPT_TOKEN(anon_sym_GT);
       END_STATE();
-    case 31:
+    case 33:
       ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
       END_STATE();
-    case 32:
+    case 34:
       ACCEPT_TOKEN(aux_sym_comment_token1);
       if (lookahead == '\t' ||
           lookahead == '\r' ||
-          lookahead == ' ') ADVANCE(32);
+          lookahead == ' ') ADVANCE(34);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(33);
+          lookahead != '\n') ADVANCE(35);
       END_STATE();
-    case 33:
+    case 35:
       ACCEPT_TOKEN(aux_sym_comment_token1);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(33);
+          lookahead != '\n') ADVANCE(35);
       END_STATE();
-    case 34:
+    case 36:
       ACCEPT_TOKEN(sym__label);
       if (lookahead == '-' ||
           ('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
-          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(34);
+          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36);
       END_STATE();
-    case 35:
+    case 37:
       ACCEPT_TOKEN(sym__newline);
-      if (lookahead == '\n') ADVANCE(35);
+      if (lookahead == '\n') ADVANCE(37);
       END_STATE();
     default:
       return false;
@@ -688,137 +724,143 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [12] = {.lex_state = 2},
   [13] = {.lex_state = 1},
   [14] = {.lex_state = 1},
-  [15] = {.lex_state = 2},
+  [15] = {.lex_state = 0},
   [16] = {.lex_state = 2},
-  [17] = {.lex_state = 1},
-  [18] = {.lex_state = 1},
+  [17] = {.lex_state = 0},
+  [18] = {.lex_state = 2},
   [19] = {.lex_state = 1},
   [20] = {.lex_state = 1},
-  [21] = {.lex_state = 0},
-  [22] = {.lex_state = 0},
+  [21] = {.lex_state = 1},
+  [22] = {.lex_state = 1},
   [23] = {.lex_state = 2},
-  [24] = {.lex_state = 1},
-  [25] = {.lex_state = 2},
+  [24] = {.lex_state = 2},
+  [25] = {.lex_state = 1},
   [26] = {.lex_state = 2},
   [27] = {.lex_state = 2},
-  [28] = {.lex_state = 1},
-  [29] = {.lex_state = 1},
+  [28] = {.lex_state = 2},
+  [29] = {.lex_state = 2},
   [30] = {.lex_state = 1},
   [31] = {.lex_state = 1},
-  [32] = {.lex_state = 2},
+  [32] = {.lex_state = 1},
   [33] = {.lex_state = 1},
-  [34] = {.lex_state = 2},
-  [35] = {.lex_state = 2},
-  [36] = {.lex_state = 2},
+  [34] = {.lex_state = 1},
+  [35] = {.lex_state = 1},
+  [36] = {.lex_state = 0},
   [37] = {.lex_state = 2},
-  [38] = {.lex_state = 1},
+  [38] = {.lex_state = 0},
   [39] = {.lex_state = 2},
   [40] = {.lex_state = 2},
-  [41] = {.lex_state = 2},
-  [42] = {.lex_state = 2},
-  [43] = {.lex_state = 2},
+  [41] = {.lex_state = 9},
+  [42] = {.lex_state = 0},
+  [43] = {.lex_state = 0},
   [44] = {.lex_state = 2},
-  [45] = {.lex_state = 1},
+  [45] = {.lex_state = 2},
   [46] = {.lex_state = 1},
-  [47] = {.lex_state = 2},
+  [47] = {.lex_state = 9},
   [48] = {.lex_state = 2},
   [49] = {.lex_state = 2},
-  [50] = {.lex_state = 1},
-  [51] = {.lex_state = 0},
-  [52] = {.lex_state = 1},
-  [53] = {.lex_state = 9},
-  [54] = {.lex_state = 1},
+  [50] = {.lex_state = 2},
+  [51] = {.lex_state = 2},
+  [52] = {.lex_state = 0},
+  [53] = {.lex_state = 0},
+  [54] = {.lex_state = 0},
   [55] = {.lex_state = 1},
-  [56] = {.lex_state = 1},
+  [56] = {.lex_state = 2},
   [57] = {.lex_state = 1},
-  [58] = {.lex_state = 1},
-  [59] = {.lex_state = 1},
-  [60] = {.lex_state = 9},
-  [61] = {.lex_state = 1},
-  [62] = {.lex_state = 1},
+  [58] = {.lex_state = 9},
+  [59] = {.lex_state = 2},
+  [60] = {.lex_state = 2},
+  [61] = {.lex_state = 2},
+  [62] = {.lex_state = 0},
   [63] = {.lex_state = 1},
-  [64] = {.lex_state = 0},
-  [65] = {.lex_state = 0},
+  [64] = {.lex_state = 1},
+  [65] = {.lex_state = 1},
   [66] = {.lex_state = 1},
   [67] = {.lex_state = 1},
-  [68] = {.lex_state = 0},
-  [69] = {.lex_state = 1},
-  [70] = {.lex_state = 2},
-  [71] = {.lex_state = 0},
-  [72] = {.lex_state = 2},
-  [73] = {.lex_state = 2},
+  [68] = {.lex_state = 1},
+  [69] = {.lex_state = 0},
+  [70] = {.lex_state = 1},
+  [71] = {.lex_state = 1},
+  [72] = {.lex_state = 1},
+  [73] = {.lex_state = 1},
   [74] = {.lex_state = 1},
-  [75] = {.lex_state = 2},
-  [76] = {.lex_state = 2},
+  [75] = {.lex_state = 1},
+  [76] = {.lex_state = 1},
   [77] = {.lex_state = 1},
-  [78] = {.lex_state = 1},
-  [79] = {.lex_state = 9},
-  [80] = {.lex_state = 2},
-  [81] = {.lex_state = 2},
+  [78] = {.lex_state = 0},
+  [79] = {.lex_state = 0},
+  [80] = {.lex_state = 0},
+  [81] = {.lex_state = 0},
   [82] = {.lex_state = 2},
-  [83] = {.lex_state = 1},
-  [84] = {.lex_state = 1},
-  [85] = {.lex_state = 9},
-  [86] = {.lex_state = 0},
-  [87] = {.lex_state = 9},
-  [88] = {.lex_state = 1},
-  [89] = {.lex_state = 1},
-  [90] = {.lex_state = 9},
-  [91] = {.lex_state = 0},
-  [92] = {.lex_state = 9},
+  [83] = {.lex_state = 0},
+  [84] = {.lex_state = 0},
+  [85] = {.lex_state = 1},
+  [86] = {.lex_state = 2},
+  [87] = {.lex_state = 1},
+  [88] = {.lex_state = 2},
+  [89] = {.lex_state = 2},
+  [90] = {.lex_state = 0},
+  [91] = {.lex_state = 2},
+  [92] = {.lex_state = 1},
   [93] = {.lex_state = 0},
-  [94] = {.lex_state = 1},
-  [95] = {.lex_state = 1},
-  [96] = {.lex_state = 9},
-  [97] = {.lex_state = 0},
-  [98] = {.lex_state = 0},
-  [99] = {.lex_state = 9},
-  [100] = {.lex_state = 9},
-  [101] = {.lex_state = 1},
+  [94] = {.lex_state = 2},
+  [95] = {.lex_state = 0},
+  [96] = {.lex_state = 2},
+  [97] = {.lex_state = 2},
+  [98] = {.lex_state = 1},
+  [99] = {.lex_state = 1},
+  [100] = {.lex_state = 1},
+  [101] = {.lex_state = 0},
   [102] = {.lex_state = 1},
   [103] = {.lex_state = 1},
-  [104] = {.lex_state = 1},
-  [105] = {.lex_state = 1},
-  [106] = {.lex_state = 0},
-  [107] = {.lex_state = 0},
+  [104] = {.lex_state = 9},
+  [105] = {.lex_state = 0},
+  [106] = {.lex_state = 1},
+  [107] = {.lex_state = 1},
   [108] = {.lex_state = 0},
-  [109] = {.lex_state = 0},
-  [110] = {.lex_state = 1},
-  [111] = {.lex_state = 1},
+  [109] = {.lex_state = 1},
+  [110] = {.lex_state = 9},
+  [111] = {.lex_state = 9},
   [112] = {.lex_state = 9},
-  [113] = {.lex_state = 0},
-  [114] = {.lex_state = 0},
-  [115] = {.lex_state = 9},
-  [116] = {.lex_state = 1},
+  [113] = {.lex_state = 9},
+  [114] = {.lex_state = 9},
+  [115] = {.lex_state = 1},
+  [116] = {.lex_state = 0},
   [117] = {.lex_state = 0},
-  [118] = {.lex_state = 0},
-  [119] = {.lex_state = 0},
+  [118] = {.lex_state = 9},
+  [119] = {.lex_state = 1},
   [120] = {.lex_state = 0},
-  [121] = {.lex_state = 0},
-  [122] = {.lex_state = 0},
-  [123] = {.lex_state = 0},
+  [121] = {.lex_state = 1},
+  [122] = {.lex_state = 1},
+  [123] = {.lex_state = 9},
   [124] = {.lex_state = 9},
   [125] = {.lex_state = 0},
-  [126] = {.lex_state = 0},
-  [127] = {.lex_state = 0},
-  [128] = {.lex_state = 0},
+  [126] = {.lex_state = 1},
+  [127] = {.lex_state = 1},
+  [128] = {.lex_state = 9},
   [129] = {.lex_state = 0},
   [130] = {.lex_state = 0},
   [131] = {.lex_state = 0},
-  [132] = {.lex_state = 32},
+  [132] = {.lex_state = 0},
   [133] = {.lex_state = 0},
-  [134] = {.lex_state = 9},
+  [134] = {.lex_state = 0},
   [135] = {.lex_state = 0},
   [136] = {.lex_state = 0},
-  [137] = {.lex_state = 9},
+  [137] = {.lex_state = 0},
   [138] = {.lex_state = 9},
-  [139] = {.lex_state = 9},
-  [140] = {.lex_state = 9},
-  [141] = {.lex_state = 9},
+  [139] = {.lex_state = 0},
+  [140] = {.lex_state = 0},
+  [141] = {.lex_state = 0},
   [142] = {.lex_state = 0},
-  [143] = {.lex_state = 0},
+  [143] = {.lex_state = 9},
   [144] = {.lex_state = 0},
   [145] = {.lex_state = 0},
+  [146] = {.lex_state = 34},
+  [147] = {.lex_state = 0},
+  [148] = {.lex_state = 9},
+  [149] = {.lex_state = 9},
+  [150] = {.lex_state = 9},
+  [151] = {.lex_state = 9},
 };
 
 static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
@@ -840,40 +882,45 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [anon_sym_EQ_GT] = ACTIONS(1),
     [anon_sym_POUND_GT] = ACTIONS(1),
     [anon_sym_COMMA] = ACTIONS(1),
+    [anon_sym_LBRACK] = ACTIONS(1),
+    [anon_sym_RBRACK] = ACTIONS(1),
     [anon_sym_LT] = ACTIONS(1),
     [anon_sym_GT] = ACTIONS(1),
     [anon_sym_SLASH_SLASH] = ACTIONS(1),
     [sym__label] = ACTIONS(1),
   },
   [1] = {
-    [sym_source_file] = STATE(142),
-    [sym_definition] = STATE(53),
-    [sym_entry] = STATE(140),
-    [sym_identifier] = STATE(115),
-    [sym_comment] = STATE(53),
-    [aux_sym_source_file_repeat2] = STATE(21),
+    [sym_source_file] = STATE(139),
+    [sym_definition] = STATE(41),
+    [sym_entry] = STATE(138),
+    [sym_identifier] = STATE(123),
+    [sym_optional_value] = STATE(19),
+    [sym_comment] = STATE(41),
+    [aux_sym_source_file_repeat2] = STATE(15),
     [ts_builtin_sym_end] = ACTIONS(3),
-    [anon_sym_SLASH_SLASH] = ACTIONS(5),
-    [sym__label] = ACTIONS(7),
+    [anon_sym_LBRACK] = ACTIONS(5),
+    [anon_sym_SLASH_SLASH] = ACTIONS(7),
+    [sym__label] = ACTIONS(9),
   },
 };
 
 static const uint16_t ts_small_parse_table[] = {
   [0] = 6,
-    ACTIONS(13), 1,
+    ACTIONS(18), 1,
       anon_sym_SLASH_SLASH,
-    ACTIONS(15), 1,
-      sym__label,
-    STATE(145), 1,
+    STATE(144), 1,
       sym_member_type,
-    ACTIONS(9), 2,
+    ACTIONS(11), 2,
       ts_builtin_sym_end,
       sym__newline,
-    STATE(4), 3,
+    ACTIONS(16), 2,
+      anon_sym_LBRACK,
+      sym__label,
+    STATE(2), 3,
       sym_member,
       sym_comment,
       aux_sym_definition_repeat1,
-    ACTIONS(11), 10,
+    ACTIONS(13), 10,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -884,21 +931,22 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
-  [31] = 6,
-    ACTIONS(13), 1,
+  [32] = 6,
+    ACTIONS(27), 1,
       anon_sym_SLASH_SLASH,
-    ACTIONS(19), 1,
-      sym__label,
-    STATE(145), 1,
+    STATE(144), 1,
       sym_member_type,
-    ACTIONS(17), 2,
+    ACTIONS(21), 2,
       ts_builtin_sym_end,
       sym__newline,
+    ACTIONS(25), 2,
+      anon_sym_LBRACK,
+      sym__label,
     STATE(2), 3,
       sym_member,
       sym_comment,
       aux_sym_definition_repeat1,
-    ACTIONS(11), 10,
+    ACTIONS(23), 10,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -909,17 +957,18 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
-  [62] = 6,
-    ACTIONS(26), 1,
+  [64] = 6,
+    ACTIONS(27), 1,
       anon_sym_SLASH_SLASH,
-    ACTIONS(29), 1,
-      sym__label,
-    STATE(145), 1,
+    STATE(144), 1,
       sym_member_type,
-    ACTIONS(21), 2,
+    ACTIONS(29), 2,
       ts_builtin_sym_end,
       sym__newline,
-    STATE(4), 3,
+    ACTIONS(31), 2,
+      anon_sym_LBRACK,
+      sym__label,
+    STATE(3), 3,
       sym_member,
       sym_comment,
       aux_sym_definition_repeat1,
@@ -934,11 +983,11 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
-  [93] = 2,
-    ACTIONS(31), 2,
+  [96] = 2,
+    ACTIONS(33), 2,
       ts_builtin_sym_end,
       sym__newline,
-    ACTIONS(33), 12,
+    ACTIONS(35), 13,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -949,13 +998,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
+      anon_sym_LBRACK,
       anon_sym_SLASH_SLASH,
       sym__label,
-  [112] = 2,
-    ACTIONS(35), 2,
+  [116] = 2,
+    ACTIONS(37), 2,
       ts_builtin_sym_end,
       sym__newline,
-    ACTIONS(37), 12,
+    ACTIONS(39), 13,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -966,13 +1016,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
+      anon_sym_LBRACK,
       anon_sym_SLASH_SLASH,
       sym__label,
-  [131] = 2,
-    ACTIONS(39), 2,
+  [136] = 2,
+    ACTIONS(41), 2,
       ts_builtin_sym_end,
       sym__newline,
-    ACTIONS(41), 12,
+    ACTIONS(43), 13,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -983,13 +1034,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
+      anon_sym_LBRACK,
       anon_sym_SLASH_SLASH,
       sym__label,
-  [150] = 2,
-    ACTIONS(43), 2,
+  [156] = 2,
+    ACTIONS(45), 2,
       ts_builtin_sym_end,
       sym__newline,
-    ACTIONS(45), 12,
+    ACTIONS(47), 13,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -1000,13 +1052,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
+      anon_sym_LBRACK,
       anon_sym_SLASH_SLASH,
       sym__label,
-  [169] = 2,
-    ACTIONS(47), 2,
+  [176] = 2,
+    ACTIONS(49), 2,
       ts_builtin_sym_end,
       sym__newline,
-    ACTIONS(49), 12,
+    ACTIONS(51), 13,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -1017,13 +1070,14 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
+      anon_sym_LBRACK,
       anon_sym_SLASH_SLASH,
       sym__label,
-  [188] = 2,
-    ACTIONS(51), 2,
+  [196] = 2,
+    ACTIONS(53), 2,
       ts_builtin_sym_end,
       sym__newline,
-    ACTIONS(53), 12,
+    ACTIONS(55), 13,
       anon_sym_COLON_COLON,
       anon_sym_DASH_GT,
       anon_sym_LT_DASH,
@@ -1034,1510 +1088,1645 @@ static const uint16_t ts_small_parse_table[] = {
       anon_sym_POUND,
       anon_sym_PLUS,
       anon_sym_DASH,
+      anon_sym_LBRACK,
       anon_sym_SLASH_SLASH,
       sym__label,
-  [207] = 9,
-    ACTIONS(57), 1,
-      anon_sym_LPAREN,
+  [216] = 9,
     ACTIONS(59), 1,
-      anon_sym_EQ_GT,
+      anon_sym_LPAREN,
     ACTIONS(61), 1,
-      anon_sym_POUND_GT,
+      anon_sym_EQ_GT,
     ACTIONS(63), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(65), 1,
       anon_sym_LT,
-    STATE(15), 1,
+    STATE(16), 1,
       sym_type_annotation,
-    STATE(27), 1,
+    STATE(26), 1,
       sym_parameter_list,
-    STATE(39), 1,
+    STATE(37), 1,
       sym_return_statement,
-    STATE(75), 1,
+    STATE(82), 1,
       sym_throw_statement,
-    ACTIONS(55), 4,
+    ACTIONS(57), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_COMMA,
       anon_sym_GT,
-  [238] = 8,
-    ACTIONS(57), 1,
-      anon_sym_LPAREN,
+  [247] = 8,
     ACTIONS(59), 1,
+      anon_sym_LPAREN,
+    ACTIONS(61), 1,
       anon_sym_EQ_GT,
-    ACTIONS(63), 1,
+    ACTIONS(65), 1,
       anon_sym_LT,
-    STATE(16), 1,
+    STATE(18), 1,
       sym_type_annotation,
-    STATE(23), 1,
+    STATE(27), 1,
       sym_parameter_list,
-    STATE(42), 1,
+    STATE(51), 1,
       sym_return_statement,
-    STATE(75), 1,
+    STATE(82), 1,
       sym_throw_statement,
-    ACTIONS(55), 5,
+    ACTIONS(57), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [267] = 9,
-    ACTIONS(55), 1,
+  [276] = 9,
+    ACTIONS(57), 1,
       sym__newline,
-    ACTIONS(67), 1,
-      anon_sym_LPAREN,
     ACTIONS(69), 1,
-      anon_sym_EQ_GT,
+      anon_sym_LPAREN,
     ACTIONS(71), 1,
+      anon_sym_EQ_GT,
+    ACTIONS(73), 1,
       anon_sym_LT,
     STATE(20), 1,
       sym_type_annotation,
     STATE(31), 1,
       sym_parameter_list,
-    STATE(69), 1,
+    STATE(87), 1,
       sym_return_statement,
-    STATE(103), 1,
+    STATE(102), 1,
       sym_throw_statement,
-    ACTIONS(65), 3,
+    ACTIONS(67), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [297] = 10,
-    ACTIONS(55), 1,
+  [306] = 10,
+    ACTIONS(57), 1,
       sym__newline,
-    ACTIONS(67), 1,
-      anon_sym_LPAREN,
     ACTIONS(69), 1,
-      anon_sym_EQ_GT,
+      anon_sym_LPAREN,
     ACTIONS(71), 1,
-      anon_sym_LT,
+      anon_sym_EQ_GT,
     ACTIONS(73), 1,
+      anon_sym_LT,
+    ACTIONS(75), 1,
       anon_sym_POUND_GT,
-    STATE(19), 1,
+    STATE(22), 1,
       sym_type_annotation,
-    STATE(33), 1,
+    STATE(35), 1,
       sym_parameter_list,
-    STATE(57), 1,
+    STATE(68), 1,
       sym_return_statement,
-    STATE(103), 1,
+    STATE(102), 1,
       sym_throw_statement,
-    ACTIONS(65), 2,
+    ACTIONS(67), 2,
       anon_sym_DOT,
       anon_sym_COMMA,
-  [329] = 7,
-    ACTIONS(57), 1,
-      anon_sym_LPAREN,
+  [338] = 9,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(7), 1,
+      anon_sym_SLASH_SLASH,
+    ACTIONS(9), 1,
+      sym__label,
+    ACTIONS(77), 1,
+      ts_builtin_sym_end,
+    STATE(17), 1,
+      aux_sym_source_file_repeat2,
+    STATE(19), 1,
+      sym_optional_value,
+    STATE(123), 1,
+      sym_identifier,
+    STATE(138), 1,
+      sym_entry,
+    STATE(41), 2,
+      sym_definition,
+      sym_comment,
+  [367] = 7,
     ACTIONS(59), 1,
-      anon_sym_EQ_GT,
+      anon_sym_LPAREN,
     ACTIONS(61), 1,
+      anon_sym_EQ_GT,
+    ACTIONS(63), 1,
       anon_sym_POUND_GT,
-    STATE(26), 1,
+    STATE(23), 1,
       sym_parameter_list,
-    STATE(35), 1,
+    STATE(61), 1,
       sym_return_statement,
-    STATE(72), 1,
+    STATE(89), 1,
       sym_throw_statement,
-    ACTIONS(75), 4,
+    ACTIONS(79), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_COMMA,
       anon_sym_GT,
-  [354] = 6,
-    ACTIONS(57), 1,
-      anon_sym_LPAREN,
+  [392] = 9,
+    ACTIONS(81), 1,
+      ts_builtin_sym_end,
+    ACTIONS(83), 1,
+      anon_sym_LBRACK,
+    ACTIONS(86), 1,
+      anon_sym_SLASH_SLASH,
+    ACTIONS(89), 1,
+      sym__label,
+    STATE(17), 1,
+      aux_sym_source_file_repeat2,
+    STATE(19), 1,
+      sym_optional_value,
+    STATE(123), 1,
+      sym_identifier,
+    STATE(138), 1,
+      sym_entry,
+    STATE(41), 2,
+      sym_definition,
+      sym_comment,
+  [421] = 6,
     ACTIONS(59), 1,
+      anon_sym_LPAREN,
+    ACTIONS(61), 1,
       anon_sym_EQ_GT,
-    STATE(25), 1,
+    STATE(28), 1,
       sym_parameter_list,
-    STATE(44), 1,
+    STATE(49), 1,
       sym_return_statement,
-    STATE(72), 1,
+    STATE(89), 1,
       sym_throw_statement,
-    ACTIONS(75), 5,
+    ACTIONS(79), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [377] = 10,
-    ACTIONS(55), 1,
+  [444] = 10,
+    ACTIONS(57), 1,
       sym__newline,
-    ACTIONS(65), 1,
-      anon_sym_DOT,
     ACTIONS(67), 1,
-      anon_sym_LPAREN,
+      anon_sym_DOT,
     ACTIONS(69), 1,
-      anon_sym_EQ_GT,
+      anon_sym_LPAREN,
     ACTIONS(71), 1,
+      anon_sym_EQ_GT,
+    ACTIONS(73), 1,
       anon_sym_LT,
-    ACTIONS(77), 1,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    STATE(24), 1,
+    STATE(25), 1,
       sym_type_annotation,
-    STATE(46), 1,
+    STATE(55), 1,
       sym_parameter_list,
     STATE(102), 1,
-      sym_return_statement,
-    STATE(103), 1,
       sym_throw_statement,
-  [408] = 9,
-    ACTIONS(67), 1,
-      anon_sym_LPAREN,
+    STATE(115), 1,
+      sym_return_statement,
+  [475] = 7,
     ACTIONS(69), 1,
-      anon_sym_EQ_GT,
+      anon_sym_LPAREN,
     ACTIONS(71), 1,
-      anon_sym_LT,
-    ACTIONS(77), 1,
-      anon_sym_POUND_GT,
+      anon_sym_EQ_GT,
     ACTIONS(79), 1,
       sym__newline,
-    STATE(30), 1,
-      sym_type_annotation,
-    STATE(62), 1,
+    STATE(33), 1,
       sym_parameter_list,
-    STATE(111), 1,
+    STATE(63), 1,
       sym_return_statement,
-    STATE(137), 1,
+    STATE(98), 1,
       sym_throw_statement,
-  [436] = 8,
-    ACTIONS(67), 1,
-      anon_sym_LPAREN,
+    ACTIONS(94), 3,
+      anon_sym_DOT,
+      anon_sym_POUND_GT,
+      anon_sym_COMMA,
+  [499] = 9,
     ACTIONS(69), 1,
+      anon_sym_LPAREN,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
     ACTIONS(73), 1,
+      anon_sym_LT,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(75), 1,
+    ACTIONS(96), 1,
       sym__newline,
-    STATE(28), 1,
+    STATE(34), 1,
+      sym_type_annotation,
+    STATE(70), 1,
       sym_parameter_list,
-    STATE(55), 1,
+    STATE(127), 1,
       sym_return_statement,
-    STATE(94), 1,
+    STATE(143), 1,
       sym_throw_statement,
-    ACTIONS(81), 2,
-      anon_sym_DOT,
-      anon_sym_COMMA,
-  [462] = 7,
-    ACTIONS(67), 1,
-      anon_sym_LPAREN,
+  [527] = 8,
     ACTIONS(69), 1,
+      anon_sym_LPAREN,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
     ACTIONS(75), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(79), 1,
       sym__newline,
-    STATE(29), 1,
+    STATE(30), 1,
       sym_parameter_list,
     STATE(66), 1,
       sym_return_statement,
-    STATE(94), 1,
+    STATE(98), 1,
       sym_throw_statement,
-    ACTIONS(81), 3,
+    ACTIONS(94), 2,
       anon_sym_DOT,
-      anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [486] = 7,
-    ACTIONS(5), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(7), 1,
-      sym__label,
-    ACTIONS(83), 1,
-      ts_builtin_sym_end,
-    STATE(22), 1,
-      aux_sym_source_file_repeat2,
-    STATE(115), 1,
-      sym_identifier,
-    STATE(140), 1,
-      sym_entry,
-    STATE(53), 2,
-      sym_definition,
-      sym_comment,
-  [509] = 7,
-    ACTIONS(85), 1,
-      ts_builtin_sym_end,
-    ACTIONS(87), 1,
-      anon_sym_SLASH_SLASH,
-    ACTIONS(90), 1,
-      sym__label,
-    STATE(22), 1,
-      aux_sym_source_file_repeat2,
-    STATE(115), 1,
-      sym_identifier,
-    STATE(140), 1,
-      sym_entry,
-    STATE(53), 2,
-      sym_definition,
-      sym_comment,
-  [532] = 4,
-    ACTIONS(59), 1,
+  [553] = 5,
+    ACTIONS(61), 1,
       anon_sym_EQ_GT,
-    STATE(44), 1,
+    ACTIONS(63), 1,
+      anon_sym_POUND_GT,
+    STATE(56), 1,
       sym_return_statement,
-    STATE(72), 1,
+    STATE(96), 1,
       sym_throw_statement,
-    ACTIONS(75), 5,
+    ACTIONS(98), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
-      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [549] = 8,
-    ACTIONS(67), 1,
+  [572] = 1,
+    ACTIONS(100), 8,
+      anon_sym_DOT,
       anon_sym_LPAREN,
+      anon_sym_RPAREN,
+      anon_sym_EQ_GT,
+      anon_sym_POUND_GT,
+      anon_sym_COMMA,
+      anon_sym_LT,
+      anon_sym_GT,
+  [583] = 8,
     ACTIONS(69), 1,
+      anon_sym_LPAREN,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
-    ACTIONS(75), 1,
+    ACTIONS(79), 1,
       sym__newline,
-    ACTIONS(77), 1,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(81), 1,
+    ACTIONS(94), 1,
       anon_sym_DOT,
-    STATE(38), 1,
+    STATE(46), 1,
       sym_parameter_list,
-    STATE(94), 1,
+    STATE(98), 1,
       sym_throw_statement,
-    STATE(95), 1,
+    STATE(109), 1,
       sym_return_statement,
-  [574] = 4,
-    ACTIONS(59), 1,
+  [608] = 5,
+    ACTIONS(61), 1,
       anon_sym_EQ_GT,
-    STATE(34), 1,
+    ACTIONS(63), 1,
+      anon_sym_POUND_GT,
+    STATE(61), 1,
       sym_return_statement,
-    STATE(81), 1,
+    STATE(89), 1,
       sym_throw_statement,
-    ACTIONS(93), 5,
+    ACTIONS(79), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
-      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [591] = 5,
-    ACTIONS(59), 1,
-      anon_sym_EQ_GT,
+  [627] = 4,
     ACTIONS(61), 1,
-      anon_sym_POUND_GT,
-    STATE(40), 1,
+      anon_sym_EQ_GT,
+    STATE(49), 1,
       sym_return_statement,
-    STATE(81), 1,
+    STATE(89), 1,
       sym_throw_statement,
-    ACTIONS(93), 4,
+    ACTIONS(79), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
+      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [610] = 5,
-    ACTIONS(59), 1,
-      anon_sym_EQ_GT,
+  [644] = 4,
     ACTIONS(61), 1,
-      anon_sym_POUND_GT,
-    STATE(35), 1,
+      anon_sym_EQ_GT,
+    STATE(45), 1,
       sym_return_statement,
-    STATE(72), 1,
+    STATE(96), 1,
       sym_throw_statement,
-    ACTIONS(75), 4,
+    ACTIONS(98), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
+      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [629] = 6,
-    ACTIONS(69), 1,
+  [661] = 1,
+    ACTIONS(102), 7,
+      anon_sym_DOT,
+      anon_sym_LPAREN,
+      anon_sym_RPAREN,
       anon_sym_EQ_GT,
-    ACTIONS(73), 1,
       anon_sym_POUND_GT,
-    ACTIONS(93), 1,
+      anon_sym_COMMA,
+      anon_sym_GT,
+  [671] = 6,
+    ACTIONS(71), 1,
+      anon_sym_EQ_GT,
+    ACTIONS(75), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(98), 1,
       sym__newline,
-    STATE(54), 1,
+    STATE(65), 1,
       sym_return_statement,
-    STATE(101), 1,
+    STATE(107), 1,
       sym_throw_statement,
-    ACTIONS(95), 2,
+    ACTIONS(104), 2,
       anon_sym_DOT,
       anon_sym_COMMA,
-  [649] = 5,
-    ACTIONS(69), 1,
+  [691] = 5,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
-    ACTIONS(93), 1,
+    ACTIONS(79), 1,
       sym__newline,
-    STATE(50), 1,
+    STATE(63), 1,
       sym_return_statement,
-    STATE(101), 1,
+    STATE(98), 1,
       sym_throw_statement,
-    ACTIONS(95), 3,
+    ACTIONS(94), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [667] = 7,
-    ACTIONS(67), 1,
+  [709] = 2,
+    ACTIONS(100), 1,
+      sym__newline,
+    ACTIONS(106), 6,
+      anon_sym_DOT,
       anon_sym_LPAREN,
-    ACTIONS(69), 1,
       anon_sym_EQ_GT,
-    ACTIONS(77), 1,
       anon_sym_POUND_GT,
-    ACTIONS(97), 1,
-      sym__newline,
-    STATE(67), 1,
-      sym_parameter_list,
-    STATE(110), 1,
-      sym_return_statement,
-    STATE(138), 1,
-      sym_throw_statement,
-  [689] = 5,
-    ACTIONS(69), 1,
+      anon_sym_COMMA,
+      anon_sym_LT,
+  [721] = 5,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
-    ACTIONS(75), 1,
+    ACTIONS(98), 1,
       sym__newline,
-    STATE(66), 1,
+    STATE(77), 1,
       sym_return_statement,
-    STATE(94), 1,
+    STATE(107), 1,
       sym_throw_statement,
-    ACTIONS(81), 3,
+    ACTIONS(104), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [707] = 1,
-    ACTIONS(99), 7,
-      anon_sym_DOT,
+  [739] = 7,
+    ACTIONS(69), 1,
       anon_sym_LPAREN,
-      anon_sym_RPAREN,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-      anon_sym_COMMA,
-      anon_sym_GT,
-  [717] = 6,
-    ACTIONS(69), 1,
+    ACTIONS(108), 1,
+      sym__newline,
+    STATE(75), 1,
+      sym_parameter_list,
+    STATE(122), 1,
+      sym_return_statement,
+    STATE(148), 1,
+      sym_throw_statement,
+  [761] = 6,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
-    ACTIONS(73), 1,
-      anon_sym_POUND_GT,
     ACTIONS(75), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(79), 1,
       sym__newline,
-    STATE(55), 1,
+    STATE(66), 1,
       sym_return_statement,
-    STATE(94), 1,
+    STATE(98), 1,
       sym_throw_statement,
-    ACTIONS(81), 2,
+    ACTIONS(94), 2,
       anon_sym_DOT,
       anon_sym_COMMA,
-  [737] = 2,
-    STATE(70), 1,
+  [781] = 5,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
+      sym__label,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(79), 1,
+      sym_identifier,
+    STATE(88), 2,
+      sym_entry,
+      sym__entry_list,
+  [798] = 3,
+    ACTIONS(63), 1,
+      anon_sym_POUND_GT,
+    STATE(89), 1,
       sym_throw_statement,
-    ACTIONS(101), 5,
+    ACTIONS(79), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
-      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [748] = 3,
-    ACTIONS(61), 1,
-      anon_sym_POUND_GT,
-    STATE(81), 1,
-      sym_throw_statement,
-    ACTIONS(93), 4,
+  [811] = 6,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
+      sym__label,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(79), 1,
+      sym_identifier,
+    STATE(131), 1,
+      sym_entry,
+    STATE(137), 1,
+      sym__entry_list,
+  [830] = 2,
+    STATE(44), 1,
+      aux_sym__entry_list_repeat1,
+    ACTIONS(114), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
+      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [761] = 1,
-    ACTIONS(103), 6,
+  [841] = 3,
+    ACTIONS(116), 1,
       anon_sym_DOT,
+    STATE(50), 1,
+      aux_sym_entry_repeat1,
+    ACTIONS(118), 4,
       anon_sym_RPAREN,
-      anon_sym_EQ_GT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [770] = 1,
-    ACTIONS(105), 6,
+  [854] = 4,
+    ACTIONS(120), 1,
+      ts_builtin_sym_end,
+    ACTIONS(124), 1,
+      sym__newline,
+    STATE(58), 1,
+      aux_sym_source_file_repeat1,
+    ACTIONS(122), 3,
+      anon_sym_LBRACK,
+      anon_sym_SLASH_SLASH,
+      sym__label,
+  [869] = 5,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(126), 1,
+      sym__label,
+    STATE(14), 1,
+      sym_optional_value,
+    STATE(110), 1,
+      sym_identifier,
+    STATE(103), 2,
+      sym_entry,
+      sym__entry_list,
+  [886] = 6,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
+      sym__label,
+    ACTIONS(128), 1,
+      anon_sym_RPAREN,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(129), 1,
+      sym_identifier,
+    STATE(135), 1,
+      sym__identifier_list,
+  [905] = 3,
+    ACTIONS(132), 1,
+      anon_sym_COMMA,
+    STATE(44), 1,
+      aux_sym__entry_list_repeat1,
+    ACTIONS(130), 4,
+      anon_sym_DOT,
+      anon_sym_RPAREN,
+      anon_sym_POUND_GT,
+      anon_sym_GT,
+  [918] = 2,
+    STATE(94), 1,
+      sym_throw_statement,
+    ACTIONS(135), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
-      anon_sym_EQ_GT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [779] = 6,
-    ACTIONS(69), 1,
+  [929] = 6,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
-    ACTIONS(77), 1,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(93), 1,
+    ACTIONS(98), 1,
       sym__newline,
-    ACTIONS(95), 1,
+    ACTIONS(104), 1,
       anon_sym_DOT,
-    STATE(101), 1,
-      sym_throw_statement,
-    STATE(105), 1,
+    STATE(99), 1,
       sym_return_statement,
-  [798] = 3,
-    ACTIONS(61), 1,
-      anon_sym_POUND_GT,
-    STATE(72), 1,
+    STATE(107), 1,
       sym_throw_statement,
-    ACTIONS(75), 4,
+  [948] = 4,
+    ACTIONS(137), 1,
+      ts_builtin_sym_end,
+    ACTIONS(141), 1,
+      sym__newline,
+    STATE(47), 1,
+      aux_sym_source_file_repeat1,
+    ACTIONS(139), 3,
+      anon_sym_LBRACK,
+      anon_sym_SLASH_SLASH,
+      sym__label,
+  [963] = 3,
+    ACTIONS(144), 1,
       anon_sym_DOT,
+    STATE(48), 1,
+      aux_sym_entry_repeat1,
+    ACTIONS(147), 4,
       anon_sym_RPAREN,
+      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [811] = 3,
-    ACTIONS(61), 1,
-      anon_sym_POUND_GT,
-    STATE(70), 1,
+  [976] = 2,
+    STATE(96), 1,
       sym_throw_statement,
-    ACTIONS(101), 4,
+    ACTIONS(98), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
+      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [824] = 2,
-    STATE(48), 1,
-      aux_sym__entry_list_repeat1,
-    ACTIONS(107), 5,
+  [987] = 3,
+    ACTIONS(116), 1,
       anon_sym_DOT,
+    STATE(48), 1,
+      aux_sym_entry_repeat1,
+    ACTIONS(149), 4,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [835] = 2,
-    STATE(72), 1,
+  [1000] = 2,
+    STATE(89), 1,
       sym_throw_statement,
-    ACTIONS(75), 5,
+    ACTIONS(79), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [846] = 3,
-    ACTIONS(109), 1,
-      anon_sym_DOT,
-    STATE(47), 1,
-      aux_sym_entry_repeat1,
-    ACTIONS(111), 4,
+  [1011] = 6,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
+      sym__label,
+    ACTIONS(151), 1,
       anon_sym_RPAREN,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(129), 1,
+      sym_identifier,
+    STATE(140), 1,
+      sym__identifier_list,
+  [1030] = 6,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(126), 1,
+      sym__label,
+    STATE(14), 1,
+      sym_optional_value,
+    STATE(103), 1,
+      sym__entry_list,
+    STATE(110), 1,
+      sym_identifier,
+    STATE(118), 1,
+      sym_entry,
+  [1049] = 6,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
+      sym__label,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(79), 1,
+      sym_identifier,
+    STATE(131), 1,
+      sym_entry,
+    STATE(136), 1,
+      sym__entry_list,
+  [1068] = 6,
+    ACTIONS(71), 1,
+      anon_sym_EQ_GT,
+    ACTIONS(79), 1,
+      sym__newline,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-      anon_sym_COMMA,
-      anon_sym_GT,
-  [859] = 2,
-    STATE(81), 1,
+    ACTIONS(94), 1,
+      anon_sym_DOT,
+    STATE(98), 1,
+      sym_throw_statement,
+    STATE(109), 1,
+      sym_return_statement,
+  [1087] = 3,
+    ACTIONS(63), 1,
+      anon_sym_POUND_GT,
+    STATE(94), 1,
       sym_throw_statement,
-    ACTIONS(93), 5,
+    ACTIONS(135), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
-      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [870] = 2,
-    ACTIONS(99), 1,
+  [1100] = 2,
+    ACTIONS(102), 1,
       sym__newline,
-    ACTIONS(113), 5,
+    ACTIONS(153), 5,
       anon_sym_DOT,
       anon_sym_LPAREN,
       anon_sym_EQ_GT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [881] = 6,
-    ACTIONS(69), 1,
-      anon_sym_EQ_GT,
-    ACTIONS(75), 1,
-      sym__newline,
-    ACTIONS(77), 1,
-      anon_sym_POUND_GT,
+  [1111] = 4,
     ACTIONS(81), 1,
-      anon_sym_DOT,
-    STATE(94), 1,
-      sym_throw_statement,
-    STATE(95), 1,
-      sym_return_statement,
-  [900] = 3,
-    ACTIONS(115), 1,
-      anon_sym_DOT,
+      ts_builtin_sym_end,
+    ACTIONS(157), 1,
+      sym__newline,
     STATE(47), 1,
-      aux_sym_entry_repeat1,
-    ACTIONS(118), 4,
+      aux_sym_source_file_repeat1,
+    ACTIONS(155), 3,
+      anon_sym_LBRACK,
+      anon_sym_SLASH_SLASH,
+      sym__label,
+  [1126] = 1,
+    ACTIONS(159), 6,
+      anon_sym_DOT,
       anon_sym_RPAREN,
+      anon_sym_EQ_GT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [913] = 3,
-    ACTIONS(122), 1,
-      anon_sym_COMMA,
-    STATE(48), 1,
-      aux_sym__entry_list_repeat1,
-    ACTIONS(120), 4,
+  [1135] = 1,
+    ACTIONS(161), 6,
       anon_sym_DOT,
       anon_sym_RPAREN,
+      anon_sym_EQ_GT,
       anon_sym_POUND_GT,
+      anon_sym_COMMA,
       anon_sym_GT,
-  [926] = 3,
-    ACTIONS(109), 1,
+  [1144] = 3,
+    ACTIONS(63), 1,
+      anon_sym_POUND_GT,
+    STATE(96), 1,
+      sym_throw_statement,
+    ACTIONS(98), 4,
       anon_sym_DOT,
-    STATE(43), 1,
-      aux_sym_entry_repeat1,
-    ACTIONS(125), 4,
       anon_sym_RPAREN,
-      anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [939] = 3,
-    ACTIONS(101), 1,
+  [1157] = 5,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(163), 1,
+      sym__label,
+    STATE(12), 1,
+      sym_optional_value,
+    STATE(40), 1,
+      sym_identifier,
+    STATE(97), 1,
+      sym_entry,
+  [1173] = 3,
+    ACTIONS(98), 1,
       sym__newline,
-    STATE(104), 1,
+    STATE(107), 1,
       sym_throw_statement,
-    ACTIONS(127), 3,
+    ACTIONS(104), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [951] = 3,
-    ACTIONS(129), 1,
-      anon_sym_COMMA,
-    STATE(51), 1,
-      aux_sym__entry_list_repeat1,
-    ACTIONS(120), 3,
-      anon_sym_DOT,
-      anon_sym_RPAREN,
-      anon_sym_GT,
-  [963] = 3,
-    ACTIONS(107), 1,
+  [1185] = 3,
+    ACTIONS(114), 1,
       sym__newline,
-    STATE(63), 1,
+    STATE(76), 1,
       aux_sym__entry_list_repeat1,
-    ACTIONS(132), 3,
+    ACTIONS(165), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [975] = 4,
-    ACTIONS(134), 1,
-      ts_builtin_sym_end,
-    ACTIONS(138), 1,
-      sym__newline,
-    STATE(60), 1,
-      aux_sym_source_file_repeat1,
-    ACTIONS(136), 2,
-      anon_sym_SLASH_SLASH,
-      sym__label,
-  [989] = 4,
-    ACTIONS(73), 1,
+  [1197] = 4,
+    ACTIONS(75), 1,
       anon_sym_POUND_GT,
-    ACTIONS(101), 1,
+    ACTIONS(135), 1,
       sym__newline,
-    STATE(104), 1,
+    STATE(106), 1,
       sym_throw_statement,
-    ACTIONS(127), 2,
+    ACTIONS(167), 2,
       anon_sym_DOT,
       anon_sym_COMMA,
-  [1003] = 4,
-    ACTIONS(73), 1,
+  [1211] = 4,
+    ACTIONS(75), 1,
       anon_sym_POUND_GT,
-    ACTIONS(93), 1,
+    ACTIONS(98), 1,
       sym__newline,
-    STATE(101), 1,
+    STATE(107), 1,
       sym_throw_statement,
-    ACTIONS(95), 2,
+    ACTIONS(104), 2,
       anon_sym_DOT,
       anon_sym_COMMA,
-  [1017] = 4,
-    ACTIONS(142), 1,
+  [1225] = 4,
+    ACTIONS(171), 1,
       anon_sym_COMMA,
-    ACTIONS(144), 1,
+    ACTIONS(173), 1,
       sym__newline,
-    STATE(59), 1,
+    STATE(72), 1,
       aux_sym__entry_list_repeat1,
-    ACTIONS(140), 2,
+    ACTIONS(169), 2,
       anon_sym_DOT,
       anon_sym_POUND_GT,
-  [1031] = 4,
-    ACTIONS(73), 1,
-      anon_sym_POUND_GT,
+  [1239] = 4,
     ACTIONS(75), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(79), 1,
       sym__newline,
-    STATE(94), 1,
+    STATE(98), 1,
       sym_throw_statement,
-    ACTIONS(81), 2,
+    ACTIONS(94), 2,
       anon_sym_DOT,
       anon_sym_COMMA,
-  [1045] = 4,
-    ACTIONS(125), 1,
-      sym__newline,
-    ACTIONS(146), 1,
+  [1253] = 5,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(163), 1,
+      sym__label,
+    STATE(12), 1,
+      sym_optional_value,
+    STATE(40), 1,
+      sym_identifier,
+    STATE(86), 1,
+      sym_entry,
+  [1269] = 5,
+    ACTIONS(71), 1,
+      anon_sym_EQ_GT,
+    ACTIONS(92), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(108), 1,
+      sym__newline,
+    STATE(122), 1,
+      sym_return_statement,
+    STATE(148), 1,
+      sym_throw_statement,
+  [1285] = 4,
+    ACTIONS(118), 1,
+      sym__newline,
+    ACTIONS(175), 1,
       anon_sym_DOT,
-    STATE(78), 1,
+    STATE(85), 1,
       aux_sym_entry_repeat1,
-    ACTIONS(148), 2,
+    ACTIONS(177), 2,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1059] = 4,
-    ACTIONS(107), 1,
+  [1299] = 4,
+    ACTIONS(114), 1,
       sym__newline,
-    ACTIONS(142), 1,
+    ACTIONS(171), 1,
       anon_sym_COMMA,
-    STATE(63), 1,
+    STATE(76), 1,
       aux_sym__entry_list_repeat1,
-    ACTIONS(132), 2,
+    ACTIONS(165), 2,
       anon_sym_DOT,
       anon_sym_POUND_GT,
-  [1073] = 4,
-    ACTIONS(85), 1,
-      ts_builtin_sym_end,
-    ACTIONS(152), 1,
+  [1313] = 2,
+    ACTIONS(159), 1,
       sym__newline,
-    STATE(79), 1,
-      aux_sym_source_file_repeat1,
-    ACTIONS(150), 2,
-      anon_sym_SLASH_SLASH,
-      sym__label,
-  [1087] = 2,
-    ACTIONS(103), 1,
+    ACTIONS(179), 4,
+      anon_sym_DOT,
+      anon_sym_EQ_GT,
+      anon_sym_POUND_GT,
+      anon_sym_COMMA,
+  [1323] = 2,
+    ACTIONS(161), 1,
       sym__newline,
-    ACTIONS(154), 4,
+    ACTIONS(181), 4,
       anon_sym_DOT,
       anon_sym_EQ_GT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1097] = 5,
-    ACTIONS(69), 1,
+  [1333] = 5,
+    ACTIONS(71), 1,
       anon_sym_EQ_GT,
-    ACTIONS(77), 1,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(97), 1,
+    ACTIONS(183), 1,
       sym__newline,
-    STATE(110), 1,
+    STATE(126), 1,
       sym_return_statement,
-    STATE(138), 1,
+    STATE(150), 1,
       sym_throw_statement,
-  [1113] = 4,
-    ACTIONS(120), 1,
+  [1349] = 4,
+    ACTIONS(130), 1,
       sym__newline,
-    ACTIONS(158), 1,
+    ACTIONS(187), 1,
       anon_sym_COMMA,
-    STATE(63), 1,
+    STATE(76), 1,
       aux_sym__entry_list_repeat1,
-    ACTIONS(156), 2,
+    ACTIONS(185), 2,
       anon_sym_DOT,
       anon_sym_POUND_GT,
-  [1127] = 2,
-    STATE(51), 1,
+  [1363] = 3,
+    ACTIONS(135), 1,
+      sym__newline,
+    STATE(106), 1,
+      sym_throw_statement,
+    ACTIONS(167), 3,
+      anon_sym_DOT,
+      anon_sym_POUND_GT,
+      anon_sym_COMMA,
+  [1375] = 2,
+    STATE(95), 1,
       aux_sym__entry_list_repeat1,
-    ACTIONS(107), 4,
+    ACTIONS(114), 4,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1137] = 3,
-    ACTIONS(161), 1,
+  [1385] = 3,
+    ACTIONS(190), 1,
       anon_sym_DOT,
-    STATE(65), 1,
+    STATE(84), 1,
       aux_sym_entry_repeat1,
     ACTIONS(118), 3,
       anon_sym_RPAREN,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1149] = 3,
-    ACTIONS(93), 1,
-      sym__newline,
-    STATE(101), 1,
-      sym_throw_statement,
-    ACTIONS(95), 3,
-      anon_sym_DOT,
-      anon_sym_POUND_GT,
-      anon_sym_COMMA,
-  [1161] = 5,
-    ACTIONS(69), 1,
-      anon_sym_EQ_GT,
-    ACTIONS(77), 1,
-      anon_sym_POUND_GT,
-    ACTIONS(164), 1,
-      sym__newline,
-    STATE(116), 1,
-      sym_return_statement,
-    STATE(139), 1,
-      sym_throw_statement,
-  [1177] = 3,
-    ACTIONS(166), 1,
+  [1397] = 5,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(192), 1,
+      sym__label,
+    STATE(13), 1,
+      sym_optional_value,
+    STATE(71), 1,
+      sym_identifier,
+    STATE(100), 1,
+      sym_entry,
+  [1413] = 3,
+    ACTIONS(194), 1,
       anon_sym_DOT,
-    STATE(65), 1,
+    STATE(81), 1,
       aux_sym_entry_repeat1,
-    ACTIONS(111), 3,
+    ACTIONS(147), 3,
       anon_sym_RPAREN,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1189] = 3,
-    ACTIONS(75), 1,
-      sym__newline,
-    STATE(94), 1,
-      sym_throw_statement,
-    ACTIONS(81), 3,
-      anon_sym_DOT,
-      anon_sym_POUND_GT,
-      anon_sym_COMMA,
-  [1201] = 1,
-    ACTIONS(168), 5,
+  [1425] = 1,
+    ACTIONS(79), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1209] = 3,
-    ACTIONS(166), 1,
+  [1433] = 5,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(192), 1,
+      sym__label,
+    STATE(13), 1,
+      sym_optional_value,
+    STATE(71), 1,
+      sym_identifier,
+    STATE(121), 1,
+      sym_entry,
+  [1449] = 3,
+    ACTIONS(190), 1,
       anon_sym_DOT,
-    STATE(68), 1,
+    STATE(81), 1,
       aux_sym_entry_repeat1,
-    ACTIONS(125), 3,
+    ACTIONS(149), 3,
       anon_sym_RPAREN,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1221] = 1,
-    ACTIONS(93), 5,
+  [1461] = 4,
+    ACTIONS(149), 1,
+      sym__newline,
+    ACTIONS(175), 1,
       anon_sym_DOT,
-      anon_sym_RPAREN,
+    STATE(92), 1,
+      aux_sym_entry_repeat1,
+    ACTIONS(197), 2,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-      anon_sym_GT,
-  [1229] = 1,
-    ACTIONS(120), 5,
+  [1475] = 1,
+    ACTIONS(199), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1237] = 2,
-    ACTIONS(105), 1,
+  [1483] = 3,
+    ACTIONS(79), 1,
       sym__newline,
-    ACTIONS(170), 4,
+    STATE(98), 1,
+      sym_throw_statement,
+    ACTIONS(94), 3,
       anon_sym_DOT,
-      anon_sym_EQ_GT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1247] = 1,
-    ACTIONS(75), 5,
+  [1495] = 1,
+    ACTIONS(201), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1255] = 1,
-    ACTIONS(118), 5,
+  [1503] = 1,
+    ACTIONS(98), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1263] = 4,
-    ACTIONS(118), 1,
-      sym__newline,
-    ACTIONS(172), 1,
+  [1511] = 5,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(126), 1,
+      sym__label,
+    STATE(14), 1,
+      sym_optional_value,
+    STATE(100), 1,
+      sym_entry,
+    STATE(110), 1,
+      sym_identifier,
+  [1527] = 1,
+    ACTIONS(147), 5,
       anon_sym_DOT,
-    STATE(77), 1,
-      aux_sym_entry_repeat1,
-    ACTIONS(175), 2,
+      anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1277] = 4,
-    ACTIONS(111), 1,
+      anon_sym_GT,
+  [1535] = 4,
+    ACTIONS(147), 1,
       sym__newline,
-    ACTIONS(146), 1,
+    ACTIONS(203), 1,
       anon_sym_DOT,
-    STATE(77), 1,
+    STATE(92), 1,
       aux_sym_entry_repeat1,
-    ACTIONS(177), 2,
+    ACTIONS(206), 2,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1291] = 4,
-    ACTIONS(179), 1,
-      ts_builtin_sym_end,
-    ACTIONS(183), 1,
-      sym__newline,
-    STATE(79), 1,
-      aux_sym_source_file_repeat1,
-    ACTIONS(181), 2,
-      anon_sym_SLASH_SLASH,
+  [1549] = 5,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
       sym__label,
-  [1305] = 1,
-    ACTIONS(186), 5,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(79), 1,
+      sym_identifier,
+    STATE(97), 1,
+      sym_entry,
+  [1565] = 1,
+    ACTIONS(208), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1313] = 1,
-    ACTIONS(101), 5,
+  [1573] = 3,
+    ACTIONS(210), 1,
+      anon_sym_COMMA,
+    STATE(95), 1,
+      aux_sym__entry_list_repeat1,
+    ACTIONS(130), 3,
+      anon_sym_DOT,
+      anon_sym_RPAREN,
+      anon_sym_GT,
+  [1585] = 1,
+    ACTIONS(135), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1321] = 1,
-    ACTIONS(188), 5,
+  [1593] = 1,
+    ACTIONS(130), 5,
       anon_sym_DOT,
       anon_sym_RPAREN,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
       anon_sym_GT,
-  [1329] = 2,
-    ACTIONS(188), 1,
+  [1601] = 2,
+    ACTIONS(98), 1,
       sym__newline,
-    ACTIONS(190), 3,
+    ACTIONS(104), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1338] = 2,
-    ACTIONS(186), 1,
+  [1610] = 4,
+    ACTIONS(92), 1,
+      anon_sym_POUND_GT,
+    ACTIONS(135), 1,
       sym__newline,
-    ACTIONS(192), 3,
+    ACTIONS(167), 1,
       anon_sym_DOT,
-      anon_sym_POUND_GT,
-      anon_sym_COMMA,
-  [1347] = 4,
-    ACTIONS(125), 1,
+    STATE(106), 1,
+      sym_throw_statement,
+  [1623] = 2,
+    ACTIONS(130), 1,
       sym__newline,
-    ACTIONS(148), 1,
-      anon_sym_COMMA,
-    ACTIONS(194), 1,
+    ACTIONS(185), 3,
       anon_sym_DOT,
-    STATE(90), 1,
-      aux_sym_entry_repeat1,
-  [1360] = 4,
-    ACTIONS(196), 1,
-      anon_sym_RPAREN,
-    ACTIONS(198), 1,
+      anon_sym_POUND_GT,
+      anon_sym_COMMA,
+  [1632] = 4,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
       sym__label,
-    STATE(108), 1,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(133), 1,
       sym_identifier,
-    STATE(135), 1,
-      sym__identifier_list,
-  [1373] = 4,
-    ACTIONS(118), 1,
-      sym__newline,
-    ACTIONS(175), 1,
-      anon_sym_COMMA,
-    ACTIONS(200), 1,
-      anon_sym_DOT,
-    STATE(87), 1,
-      aux_sym_entry_repeat1,
-  [1386] = 2,
-    ACTIONS(118), 1,
+  [1645] = 2,
+    ACTIONS(79), 1,
       sym__newline,
-    ACTIONS(175), 3,
+    ACTIONS(94), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1395] = 2,
-    ACTIONS(120), 1,
+  [1654] = 2,
+    ACTIONS(201), 1,
       sym__newline,
-    ACTIONS(156), 3,
+    ACTIONS(213), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1404] = 4,
-    ACTIONS(111), 1,
+  [1663] = 4,
+    ACTIONS(130), 1,
       sym__newline,
-    ACTIONS(177), 1,
-      anon_sym_COMMA,
-    ACTIONS(194), 1,
+    ACTIONS(185), 1,
       anon_sym_DOT,
-    STATE(87), 1,
-      aux_sym_entry_repeat1,
-  [1417] = 4,
-    ACTIONS(198), 1,
+    ACTIONS(215), 1,
+      anon_sym_COMMA,
+    STATE(104), 1,
+      aux_sym__entry_list_repeat1,
+  [1676] = 4,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(112), 1,
       sym__label,
-    STATE(71), 1,
+    STATE(11), 1,
+      sym_optional_value,
+    STATE(91), 1,
       sym_identifier,
-    STATE(123), 1,
-      sym_entry,
-    STATE(136), 1,
-      sym__entry_list,
-  [1430] = 3,
-    ACTIONS(107), 1,
+  [1689] = 2,
+    ACTIONS(208), 1,
       sym__newline,
-    STATE(96), 1,
-      aux_sym__entry_list_repeat1,
-    ACTIONS(132), 2,
+    ACTIONS(218), 3,
       anon_sym_DOT,
+      anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1441] = 4,
-    ACTIONS(203), 1,
-      sym__label,
-    STATE(83), 1,
-      sym__entry_list,
-    STATE(85), 1,
-      sym_identifier,
-    STATE(100), 1,
-      sym_entry,
-  [1454] = 2,
-    ACTIONS(93), 1,
+  [1698] = 2,
+    ACTIONS(135), 1,
       sym__newline,
-    ACTIONS(95), 3,
+    ACTIONS(167), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1463] = 4,
-    ACTIONS(77), 1,
+  [1707] = 4,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(9), 1,
+      sym__label,
+    STATE(19), 1,
+      sym_optional_value,
+    STATE(119), 1,
+      sym_identifier,
+  [1720] = 4,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(93), 1,
+    ACTIONS(98), 1,
       sym__newline,
-    ACTIONS(95), 1,
+    ACTIONS(104), 1,
       anon_sym_DOT,
-    STATE(101), 1,
+    STATE(107), 1,
       sym_throw_statement,
-  [1476] = 4,
-    ACTIONS(120), 1,
+  [1733] = 4,
+    ACTIONS(118), 1,
       sym__newline,
-    ACTIONS(156), 1,
-      anon_sym_DOT,
-    ACTIONS(205), 1,
+    ACTIONS(177), 1,
       anon_sym_COMMA,
-    STATE(96), 1,
-      aux_sym__entry_list_repeat1,
-  [1489] = 4,
-    ACTIONS(198), 1,
-      sym__label,
-    STATE(71), 1,
-      sym_identifier,
-    STATE(123), 1,
-      sym_entry,
-    STATE(143), 1,
-      sym__entry_list,
-  [1502] = 3,
-    ACTIONS(198), 1,
-      sym__label,
-    STATE(71), 1,
-      sym_identifier,
-    STATE(82), 2,
-      sym_entry,
-      sym__entry_list,
-  [1513] = 4,
-    ACTIONS(107), 1,
-      sym__newline,
-    ACTIONS(132), 1,
+    ACTIONS(220), 1,
       anon_sym_DOT,
-    ACTIONS(208), 1,
+    STATE(113), 1,
+      aux_sym_entry_repeat1,
+  [1746] = 4,
+    ACTIONS(147), 1,
+      sym__newline,
+    ACTIONS(206), 1,
       anon_sym_COMMA,
-    STATE(96), 1,
+    ACTIONS(222), 1,
+      anon_sym_DOT,
+    STATE(111), 1,
+      aux_sym_entry_repeat1,
+  [1759] = 3,
+    ACTIONS(114), 1,
+      sym__newline,
+    STATE(104), 1,
       aux_sym__entry_list_repeat1,
-  [1526] = 4,
-    ACTIONS(140), 1,
+    ACTIONS(165), 2,
       anon_sym_DOT,
-    ACTIONS(144), 1,
+      anon_sym_COMMA,
+  [1770] = 4,
+    ACTIONS(149), 1,
       sym__newline,
-    ACTIONS(208), 1,
+    ACTIONS(197), 1,
       anon_sym_COMMA,
-    STATE(99), 1,
-      aux_sym__entry_list_repeat1,
-  [1539] = 2,
-    ACTIONS(101), 1,
+    ACTIONS(220), 1,
+      anon_sym_DOT,
+    STATE(111), 1,
+      aux_sym_entry_repeat1,
+  [1783] = 4,
+    ACTIONS(114), 1,
       sym__newline,
-    ACTIONS(127), 3,
+    ACTIONS(165), 1,
       anon_sym_DOT,
-      anon_sym_POUND_GT,
+    ACTIONS(225), 1,
       anon_sym_COMMA,
-  [1548] = 4,
-    ACTIONS(75), 1,
+    STATE(104), 1,
+      aux_sym__entry_list_repeat1,
+  [1796] = 4,
+    ACTIONS(79), 1,
       sym__newline,
-    ACTIONS(77), 1,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(81), 1,
+    ACTIONS(94), 1,
       anon_sym_DOT,
-    STATE(94), 1,
+    STATE(98), 1,
       sym_throw_statement,
-  [1561] = 2,
-    ACTIONS(75), 1,
+  [1809] = 4,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(192), 1,
+      sym__label,
+    STATE(13), 1,
+      sym_optional_value,
+    STATE(119), 1,
+      sym_identifier,
+  [1822] = 4,
+    ACTIONS(5), 1,
+      anon_sym_LBRACK,
+    ACTIONS(126), 1,
+      sym__label,
+    STATE(14), 1,
+      sym_optional_value,
+    STATE(119), 1,
+      sym_identifier,
+  [1835] = 4,
+    ACTIONS(169), 1,
+      anon_sym_DOT,
+    ACTIONS(173), 1,
+      sym__newline,
+    ACTIONS(225), 1,
+      anon_sym_COMMA,
+    STATE(114), 1,
+      aux_sym__entry_list_repeat1,
+  [1848] = 2,
+    ACTIONS(147), 1,
       sym__newline,
-    ACTIONS(81), 3,
+    ACTIONS(206), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1570] = 2,
-    ACTIONS(168), 1,
+  [1857] = 4,
+    ACTIONS(110), 1,
+      anon_sym_LBRACK,
+    ACTIONS(163), 1,
+      sym__label,
+    STATE(12), 1,
+      sym_optional_value,
+    STATE(91), 1,
+      sym_identifier,
+  [1870] = 2,
+    ACTIONS(199), 1,
       sym__newline,
-    ACTIONS(210), 3,
+    ACTIONS(227), 3,
       anon_sym_DOT,
       anon_sym_POUND_GT,
       anon_sym_COMMA,
-  [1579] = 4,
-    ACTIONS(77), 1,
+  [1879] = 3,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(101), 1,
+    ACTIONS(183), 1,
       sym__newline,
-    ACTIONS(127), 1,
-      anon_sym_DOT,
-    STATE(104), 1,
+    STATE(150), 1,
       sym_throw_statement,
-  [1592] = 3,
-    ACTIONS(203), 1,
-      sym__label,
-    STATE(85), 1,
-      sym_identifier,
-    STATE(83), 2,
-      sym_entry,
-      sym__entry_list,
-  [1603] = 4,
-    ACTIONS(198), 1,
-      sym__label,
-    ACTIONS(212), 1,
-      anon_sym_RPAREN,
-    STATE(108), 1,
-      sym_identifier,
-    STATE(133), 1,
-      sym__identifier_list,
-  [1616] = 3,
-    ACTIONS(214), 1,
+  [1889] = 3,
+    ACTIONS(118), 1,
+      sym__newline,
+    ACTIONS(229), 1,
+      anon_sym_DOT,
+    STATE(128), 1,
+      aux_sym_entry_repeat1,
+  [1899] = 3,
+    ACTIONS(147), 1,
+      sym__newline,
+    ACTIONS(231), 1,
+      anon_sym_DOT,
+    STATE(124), 1,
+      aux_sym_entry_repeat1,
+  [1909] = 3,
+    ACTIONS(234), 1,
       anon_sym_RPAREN,
-    ACTIONS(216), 1,
+    ACTIONS(236), 1,
       anon_sym_COMMA,
-    STATE(119), 1,
+    STATE(125), 1,
       aux_sym__identifier_list_repeat1,
-  [1626] = 3,
-    ACTIONS(218), 1,
-      anon_sym_RPAREN,
-    ACTIONS(220), 1,
-      anon_sym_COMMA,
-    STATE(109), 1,
-      aux_sym__identifier_list_repeat1,
-  [1636] = 3,
-    ACTIONS(77), 1,
+  [1919] = 3,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(164), 1,
+    ACTIONS(239), 1,
       sym__newline,
-    STATE(139), 1,
+    STATE(151), 1,
       sym_throw_statement,
-  [1646] = 3,
-    ACTIONS(77), 1,
+  [1929] = 3,
+    ACTIONS(92), 1,
       anon_sym_POUND_GT,
-    ACTIONS(97), 1,
+    ACTIONS(108), 1,
       sym__newline,
-    STATE(138), 1,
+    STATE(148), 1,
       sym_throw_statement,
-  [1656] = 3,
-    ACTIONS(111), 1,
+  [1939] = 3,
+    ACTIONS(149), 1,
       sym__newline,
-    ACTIONS(223), 1,
+    ACTIONS(229), 1,
       anon_sym_DOT,
     STATE(124), 1,
       aux_sym_entry_repeat1,
-  [1666] = 3,
-    ACTIONS(225), 1,
-      sym__label,
-    STATE(58), 1,
-      sym_identifier,
-    STATE(89), 1,
-      sym_entry,
-  [1676] = 3,
-    ACTIONS(227), 1,
-      sym__label,
-    STATE(49), 1,
-      sym_identifier,
-    STATE(80), 1,
-      sym_entry,
-  [1686] = 3,
-    ACTIONS(125), 1,
-      sym__newline,
-    ACTIONS(223), 1,
-      anon_sym_DOT,
-    STATE(112), 1,
-      aux_sym_entry_repeat1,
-  [1696] = 3,
-    ACTIONS(77), 1,
-      anon_sym_POUND_GT,
-    ACTIONS(229), 1,
-      sym__newline,
-    STATE(141), 1,
-      sym_throw_statement,
-  [1706] = 3,
-    ACTIONS(203), 1,
-      sym__label,
-    STATE(85), 1,
-      sym_identifier,
-    STATE(89), 1,
-      sym_entry,
-  [1716] = 3,
-    ACTIONS(227), 1,
-      sym__label,
-    STATE(49), 1,
-      sym_identifier,
-    STATE(73), 1,
-      sym_entry,
-  [1726] = 3,
-    ACTIONS(216), 1,
+  [1949] = 3,
+    ACTIONS(241), 1,
+      anon_sym_RPAREN,
+    ACTIONS(243), 1,
       anon_sym_COMMA,
-    ACTIONS(231), 1,
+    STATE(130), 1,
+      aux_sym__identifier_list_repeat1,
+  [1959] = 3,
+    ACTIONS(243), 1,
+      anon_sym_COMMA,
+    ACTIONS(245), 1,
       anon_sym_RPAREN,
-    STATE(109), 1,
+    STATE(125), 1,
       aux_sym__identifier_list_repeat1,
-  [1736] = 3,
-    ACTIONS(107), 1,
+  [1969] = 3,
+    ACTIONS(173), 1,
       anon_sym_GT,
-    ACTIONS(233), 1,
+    ACTIONS(247), 1,
       anon_sym_COMMA,
-    STATE(51), 1,
+    STATE(132), 1,
       aux_sym__entry_list_repeat1,
-  [1746] = 3,
-    ACTIONS(225), 1,
-      sym__label,
-    STATE(58), 1,
-      sym_identifier,
-    STATE(84), 1,
-      sym_entry,
-  [1756] = 3,
-    ACTIONS(198), 1,
-      sym__label,
-    STATE(71), 1,
-      sym_identifier,
-    STATE(73), 1,
-      sym_entry,
-  [1766] = 3,
-    ACTIONS(144), 1,
+  [1979] = 3,
+    ACTIONS(114), 1,
       anon_sym_GT,
-    ACTIONS(233), 1,
+    ACTIONS(247), 1,
       anon_sym_COMMA,
-    STATE(120), 1,
+    STATE(95), 1,
       aux_sym__entry_list_repeat1,
-  [1776] = 3,
-    ACTIONS(118), 1,
-      sym__newline,
-    ACTIONS(235), 1,
-      anon_sym_DOT,
-    STATE(124), 1,
-      aux_sym_entry_repeat1,
-  [1786] = 2,
-    ACTIONS(198), 1,
-      sym__label,
-    STATE(127), 1,
-      sym_identifier,
-  [1793] = 2,
-    ACTIONS(7), 1,
-      sym__label,
-    STATE(88), 1,
-      sym_identifier,
-  [1800] = 1,
-    ACTIONS(218), 2,
+  [1989] = 1,
+    ACTIONS(234), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [1805] = 2,
-    ACTIONS(227), 1,
-      sym__label,
-    STATE(76), 1,
-      sym_identifier,
-  [1812] = 2,
-    ACTIONS(198), 1,
-      sym__label,
-    STATE(76), 1,
-      sym_identifier,
-  [1819] = 2,
-    ACTIONS(203), 1,
-      sym__label,
-    STATE(88), 1,
-      sym_identifier,
-  [1826] = 2,
-    ACTIONS(225), 1,
+  [1994] = 1,
+    ACTIONS(249), 1,
       sym__label,
-    STATE(88), 1,
-      sym_identifier,
-  [1833] = 1,
-    ACTIONS(238), 1,
-      aux_sym_comment_token1,
-  [1837] = 1,
-    ACTIONS(240), 1,
+  [1998] = 1,
+    ACTIONS(251), 1,
       anon_sym_RPAREN,
-  [1841] = 1,
-    ACTIONS(242), 1,
+  [2002] = 1,
+    ACTIONS(253), 1,
+      anon_sym_GT,
+  [2006] = 1,
+    ACTIONS(255), 1,
+      anon_sym_GT,
+  [2010] = 1,
+    ACTIONS(257), 1,
       sym__newline,
-  [1845] = 1,
-    ACTIONS(244), 1,
+  [2014] = 1,
+    ACTIONS(259), 1,
+      ts_builtin_sym_end,
+  [2018] = 1,
+    ACTIONS(261), 1,
       anon_sym_RPAREN,
-  [1849] = 1,
-    ACTIONS(246), 1,
-      anon_sym_GT,
-  [1853] = 1,
-    ACTIONS(97), 1,
+  [2022] = 1,
+    ACTIONS(263), 1,
+      anon_sym_RBRACK,
+  [2026] = 1,
+    ACTIONS(265), 1,
+      sym__label,
+  [2030] = 1,
+    ACTIONS(108), 1,
       sym__newline,
-  [1857] = 1,
-    ACTIONS(164), 1,
+  [2034] = 1,
+    ACTIONS(267), 1,
+      sym__label,
+  [2038] = 1,
+    ACTIONS(269), 1,
+      sym__label,
+  [2042] = 1,
+    ACTIONS(271), 1,
+      aux_sym_comment_token1,
+  [2046] = 1,
+    ACTIONS(273), 1,
+      anon_sym_RBRACK,
+  [2050] = 1,
+    ACTIONS(183), 1,
       sym__newline,
-  [1861] = 1,
-    ACTIONS(229), 1,
+  [2054] = 1,
+    ACTIONS(275), 1,
       sym__newline,
-  [1865] = 1,
-    ACTIONS(248), 1,
+  [2058] = 1,
+    ACTIONS(239), 1,
       sym__newline,
-  [1869] = 1,
-    ACTIONS(250), 1,
+  [2062] = 1,
+    ACTIONS(277), 1,
       sym__newline,
-  [1873] = 1,
-    ACTIONS(252), 1,
-      ts_builtin_sym_end,
-  [1877] = 1,
-    ACTIONS(254), 1,
-      anon_sym_GT,
-  [1881] = 1,
-    ACTIONS(256), 1,
-      sym__label,
-  [1885] = 1,
-    ACTIONS(258), 1,
-      sym__label,
 };
 
 static const uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(2)] = 0,
-  [SMALL_STATE(3)] = 31,
-  [SMALL_STATE(4)] = 62,
-  [SMALL_STATE(5)] = 93,
-  [SMALL_STATE(6)] = 112,
-  [SMALL_STATE(7)] = 131,
-  [SMALL_STATE(8)] = 150,
-  [SMALL_STATE(9)] = 169,
-  [SMALL_STATE(10)] = 188,
-  [SMALL_STATE(11)] = 207,
-  [SMALL_STATE(12)] = 238,
-  [SMALL_STATE(13)] = 267,
-  [SMALL_STATE(14)] = 297,
-  [SMALL_STATE(15)] = 329,
-  [SMALL_STATE(16)] = 354,
-  [SMALL_STATE(17)] = 377,
-  [SMALL_STATE(18)] = 408,
-  [SMALL_STATE(19)] = 436,
-  [SMALL_STATE(20)] = 462,
-  [SMALL_STATE(21)] = 486,
-  [SMALL_STATE(22)] = 509,
-  [SMALL_STATE(23)] = 532,
-  [SMALL_STATE(24)] = 549,
-  [SMALL_STATE(25)] = 574,
-  [SMALL_STATE(26)] = 591,
-  [SMALL_STATE(27)] = 610,
-  [SMALL_STATE(28)] = 629,
-  [SMALL_STATE(29)] = 649,
-  [SMALL_STATE(30)] = 667,
-  [SMALL_STATE(31)] = 689,
-  [SMALL_STATE(32)] = 707,
-  [SMALL_STATE(33)] = 717,
-  [SMALL_STATE(34)] = 737,
-  [SMALL_STATE(35)] = 748,
-  [SMALL_STATE(36)] = 761,
-  [SMALL_STATE(37)] = 770,
-  [SMALL_STATE(38)] = 779,
-  [SMALL_STATE(39)] = 798,
-  [SMALL_STATE(40)] = 811,
-  [SMALL_STATE(41)] = 824,
-  [SMALL_STATE(42)] = 835,
-  [SMALL_STATE(43)] = 846,
-  [SMALL_STATE(44)] = 859,
-  [SMALL_STATE(45)] = 870,
-  [SMALL_STATE(46)] = 881,
-  [SMALL_STATE(47)] = 900,
-  [SMALL_STATE(48)] = 913,
-  [SMALL_STATE(49)] = 926,
-  [SMALL_STATE(50)] = 939,
-  [SMALL_STATE(51)] = 951,
-  [SMALL_STATE(52)] = 963,
-  [SMALL_STATE(53)] = 975,
-  [SMALL_STATE(54)] = 989,
-  [SMALL_STATE(55)] = 1003,
-  [SMALL_STATE(56)] = 1017,
-  [SMALL_STATE(57)] = 1031,
-  [SMALL_STATE(58)] = 1045,
-  [SMALL_STATE(59)] = 1059,
-  [SMALL_STATE(60)] = 1073,
-  [SMALL_STATE(61)] = 1087,
-  [SMALL_STATE(62)] = 1097,
-  [SMALL_STATE(63)] = 1113,
-  [SMALL_STATE(64)] = 1127,
-  [SMALL_STATE(65)] = 1137,
-  [SMALL_STATE(66)] = 1149,
-  [SMALL_STATE(67)] = 1161,
-  [SMALL_STATE(68)] = 1177,
-  [SMALL_STATE(69)] = 1189,
-  [SMALL_STATE(70)] = 1201,
-  [SMALL_STATE(71)] = 1209,
-  [SMALL_STATE(72)] = 1221,
-  [SMALL_STATE(73)] = 1229,
-  [SMALL_STATE(74)] = 1237,
-  [SMALL_STATE(75)] = 1247,
-  [SMALL_STATE(76)] = 1255,
-  [SMALL_STATE(77)] = 1263,
-  [SMALL_STATE(78)] = 1277,
-  [SMALL_STATE(79)] = 1291,
-  [SMALL_STATE(80)] = 1305,
-  [SMALL_STATE(81)] = 1313,
-  [SMALL_STATE(82)] = 1321,
-  [SMALL_STATE(83)] = 1329,
-  [SMALL_STATE(84)] = 1338,
-  [SMALL_STATE(85)] = 1347,
-  [SMALL_STATE(86)] = 1360,
-  [SMALL_STATE(87)] = 1373,
-  [SMALL_STATE(88)] = 1386,
-  [SMALL_STATE(89)] = 1395,
-  [SMALL_STATE(90)] = 1404,
-  [SMALL_STATE(91)] = 1417,
-  [SMALL_STATE(92)] = 1430,
-  [SMALL_STATE(93)] = 1441,
-  [SMALL_STATE(94)] = 1454,
-  [SMALL_STATE(95)] = 1463,
-  [SMALL_STATE(96)] = 1476,
-  [SMALL_STATE(97)] = 1489,
-  [SMALL_STATE(98)] = 1502,
-  [SMALL_STATE(99)] = 1513,
-  [SMALL_STATE(100)] = 1526,
-  [SMALL_STATE(101)] = 1539,
-  [SMALL_STATE(102)] = 1548,
-  [SMALL_STATE(103)] = 1561,
-  [SMALL_STATE(104)] = 1570,
-  [SMALL_STATE(105)] = 1579,
-  [SMALL_STATE(106)] = 1592,
-  [SMALL_STATE(107)] = 1603,
-  [SMALL_STATE(108)] = 1616,
-  [SMALL_STATE(109)] = 1626,
-  [SMALL_STATE(110)] = 1636,
-  [SMALL_STATE(111)] = 1646,
-  [SMALL_STATE(112)] = 1656,
-  [SMALL_STATE(113)] = 1666,
-  [SMALL_STATE(114)] = 1676,
-  [SMALL_STATE(115)] = 1686,
-  [SMALL_STATE(116)] = 1696,
-  [SMALL_STATE(117)] = 1706,
-  [SMALL_STATE(118)] = 1716,
-  [SMALL_STATE(119)] = 1726,
-  [SMALL_STATE(120)] = 1736,
-  [SMALL_STATE(121)] = 1746,
-  [SMALL_STATE(122)] = 1756,
-  [SMALL_STATE(123)] = 1766,
-  [SMALL_STATE(124)] = 1776,
-  [SMALL_STATE(125)] = 1786,
-  [SMALL_STATE(126)] = 1793,
-  [SMALL_STATE(127)] = 1800,
-  [SMALL_STATE(128)] = 1805,
-  [SMALL_STATE(129)] = 1812,
-  [SMALL_STATE(130)] = 1819,
-  [SMALL_STATE(131)] = 1826,
-  [SMALL_STATE(132)] = 1833,
-  [SMALL_STATE(133)] = 1837,
-  [SMALL_STATE(134)] = 1841,
-  [SMALL_STATE(135)] = 1845,
-  [SMALL_STATE(136)] = 1849,
-  [SMALL_STATE(137)] = 1853,
-  [SMALL_STATE(138)] = 1857,
-  [SMALL_STATE(139)] = 1861,
-  [SMALL_STATE(140)] = 1865,
-  [SMALL_STATE(141)] = 1869,
-  [SMALL_STATE(142)] = 1873,
-  [SMALL_STATE(143)] = 1877,
-  [SMALL_STATE(144)] = 1881,
-  [SMALL_STATE(145)] = 1885,
+  [SMALL_STATE(3)] = 32,
+  [SMALL_STATE(4)] = 64,
+  [SMALL_STATE(5)] = 96,
+  [SMALL_STATE(6)] = 116,
+  [SMALL_STATE(7)] = 136,
+  [SMALL_STATE(8)] = 156,
+  [SMALL_STATE(9)] = 176,
+  [SMALL_STATE(10)] = 196,
+  [SMALL_STATE(11)] = 216,
+  [SMALL_STATE(12)] = 247,
+  [SMALL_STATE(13)] = 276,
+  [SMALL_STATE(14)] = 306,
+  [SMALL_STATE(15)] = 338,
+  [SMALL_STATE(16)] = 367,
+  [SMALL_STATE(17)] = 392,
+  [SMALL_STATE(18)] = 421,
+  [SMALL_STATE(19)] = 444,
+  [SMALL_STATE(20)] = 475,
+  [SMALL_STATE(21)] = 499,
+  [SMALL_STATE(22)] = 527,
+  [SMALL_STATE(23)] = 553,
+  [SMALL_STATE(24)] = 572,
+  [SMALL_STATE(25)] = 583,
+  [SMALL_STATE(26)] = 608,
+  [SMALL_STATE(27)] = 627,
+  [SMALL_STATE(28)] = 644,
+  [SMALL_STATE(29)] = 661,
+  [SMALL_STATE(30)] = 671,
+  [SMALL_STATE(31)] = 691,
+  [SMALL_STATE(32)] = 709,
+  [SMALL_STATE(33)] = 721,
+  [SMALL_STATE(34)] = 739,
+  [SMALL_STATE(35)] = 761,
+  [SMALL_STATE(36)] = 781,
+  [SMALL_STATE(37)] = 798,
+  [SMALL_STATE(38)] = 811,
+  [SMALL_STATE(39)] = 830,
+  [SMALL_STATE(40)] = 841,
+  [SMALL_STATE(41)] = 854,
+  [SMALL_STATE(42)] = 869,
+  [SMALL_STATE(43)] = 886,
+  [SMALL_STATE(44)] = 905,
+  [SMALL_STATE(45)] = 918,
+  [SMALL_STATE(46)] = 929,
+  [SMALL_STATE(47)] = 948,
+  [SMALL_STATE(48)] = 963,
+  [SMALL_STATE(49)] = 976,
+  [SMALL_STATE(50)] = 987,
+  [SMALL_STATE(51)] = 1000,
+  [SMALL_STATE(52)] = 1011,
+  [SMALL_STATE(53)] = 1030,
+  [SMALL_STATE(54)] = 1049,
+  [SMALL_STATE(55)] = 1068,
+  [SMALL_STATE(56)] = 1087,
+  [SMALL_STATE(57)] = 1100,
+  [SMALL_STATE(58)] = 1111,
+  [SMALL_STATE(59)] = 1126,
+  [SMALL_STATE(60)] = 1135,
+  [SMALL_STATE(61)] = 1144,
+  [SMALL_STATE(62)] = 1157,
+  [SMALL_STATE(63)] = 1173,
+  [SMALL_STATE(64)] = 1185,
+  [SMALL_STATE(65)] = 1197,
+  [SMALL_STATE(66)] = 1211,
+  [SMALL_STATE(67)] = 1225,
+  [SMALL_STATE(68)] = 1239,
+  [SMALL_STATE(69)] = 1253,
+  [SMALL_STATE(70)] = 1269,
+  [SMALL_STATE(71)] = 1285,
+  [SMALL_STATE(72)] = 1299,
+  [SMALL_STATE(73)] = 1313,
+  [SMALL_STATE(74)] = 1323,
+  [SMALL_STATE(75)] = 1333,
+  [SMALL_STATE(76)] = 1349,
+  [SMALL_STATE(77)] = 1363,
+  [SMALL_STATE(78)] = 1375,
+  [SMALL_STATE(79)] = 1385,
+  [SMALL_STATE(80)] = 1397,
+  [SMALL_STATE(81)] = 1413,
+  [SMALL_STATE(82)] = 1425,
+  [SMALL_STATE(83)] = 1433,
+  [SMALL_STATE(84)] = 1449,
+  [SMALL_STATE(85)] = 1461,
+  [SMALL_STATE(86)] = 1475,
+  [SMALL_STATE(87)] = 1483,
+  [SMALL_STATE(88)] = 1495,
+  [SMALL_STATE(89)] = 1503,
+  [SMALL_STATE(90)] = 1511,
+  [SMALL_STATE(91)] = 1527,
+  [SMALL_STATE(92)] = 1535,
+  [SMALL_STATE(93)] = 1549,
+  [SMALL_STATE(94)] = 1565,
+  [SMALL_STATE(95)] = 1573,
+  [SMALL_STATE(96)] = 1585,
+  [SMALL_STATE(97)] = 1593,
+  [SMALL_STATE(98)] = 1601,
+  [SMALL_STATE(99)] = 1610,
+  [SMALL_STATE(100)] = 1623,
+  [SMALL_STATE(101)] = 1632,
+  [SMALL_STATE(102)] = 1645,
+  [SMALL_STATE(103)] = 1654,
+  [SMALL_STATE(104)] = 1663,
+  [SMALL_STATE(105)] = 1676,
+  [SMALL_STATE(106)] = 1689,
+  [SMALL_STATE(107)] = 1698,
+  [SMALL_STATE(108)] = 1707,
+  [SMALL_STATE(109)] = 1720,
+  [SMALL_STATE(110)] = 1733,
+  [SMALL_STATE(111)] = 1746,
+  [SMALL_STATE(112)] = 1759,
+  [SMALL_STATE(113)] = 1770,
+  [SMALL_STATE(114)] = 1783,
+  [SMALL_STATE(115)] = 1796,
+  [SMALL_STATE(116)] = 1809,
+  [SMALL_STATE(117)] = 1822,
+  [SMALL_STATE(118)] = 1835,
+  [SMALL_STATE(119)] = 1848,
+  [SMALL_STATE(120)] = 1857,
+  [SMALL_STATE(121)] = 1870,
+  [SMALL_STATE(122)] = 1879,
+  [SMALL_STATE(123)] = 1889,
+  [SMALL_STATE(124)] = 1899,
+  [SMALL_STATE(125)] = 1909,
+  [SMALL_STATE(126)] = 1919,
+  [SMALL_STATE(127)] = 1929,
+  [SMALL_STATE(128)] = 1939,
+  [SMALL_STATE(129)] = 1949,
+  [SMALL_STATE(130)] = 1959,
+  [SMALL_STATE(131)] = 1969,
+  [SMALL_STATE(132)] = 1979,
+  [SMALL_STATE(133)] = 1989,
+  [SMALL_STATE(134)] = 1994,
+  [SMALL_STATE(135)] = 1998,
+  [SMALL_STATE(136)] = 2002,
+  [SMALL_STATE(137)] = 2006,
+  [SMALL_STATE(138)] = 2010,
+  [SMALL_STATE(139)] = 2014,
+  [SMALL_STATE(140)] = 2018,
+  [SMALL_STATE(141)] = 2022,
+  [SMALL_STATE(142)] = 2026,
+  [SMALL_STATE(143)] = 2030,
+  [SMALL_STATE(144)] = 2034,
+  [SMALL_STATE(145)] = 2038,
+  [SMALL_STATE(146)] = 2042,
+  [SMALL_STATE(147)] = 2046,
+  [SMALL_STATE(148)] = 2050,
+  [SMALL_STATE(149)] = 2054,
+  [SMALL_STATE(150)] = 2058,
+  [SMALL_STATE(151)] = 2062,
 };
 
 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}}, REDUCE(sym_source_file, 0),
-  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
-  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
-  [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 3),
-  [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144),
-  [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132),
-  [15] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_definition, 3),
-  [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 2),
-  [19] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_definition, 2),
-  [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_definition_repeat1, 2),
-  [23] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_repeat1, 2), SHIFT_REPEAT(144),
-  [26] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_repeat1, 2), SHIFT_REPEAT(132),
-  [29] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_definition_repeat1, 2),
-  [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 4),
-  [33] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 4),
-  [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 7),
-  [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 7),
-  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 6),
-  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 6),
-  [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 3),
-  [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 3),
-  [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3),
-  [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 3),
-  [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 5),
-  [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 5),
-  [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1),
-  [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
-  [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
-  [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
-  [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
-  [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1),
-  [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107),
-  [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121),
-  [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97),
-  [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106),
-  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 2),
-  [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93),
-  [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
-  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 2),
-  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
-  [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2),
-  [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(132),
-  [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(17),
-  [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 3),
-  [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 3),
-  [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
-  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_annotation, 3),
-  [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 4),
-  [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2),
-  [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3),
-  [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__entry_list, 2),
-  [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
-  [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entry, 2),
-  [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_annotation, 3),
-  [115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(128),
-  [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_entry_repeat1, 2),
-  [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__entry_list_repeat1, 2),
-  [122] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(118),
-  [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entry, 1),
-  [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 4),
-  [129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(122),
-  [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__entry_list, 2),
-  [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 1),
-  [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 1),
-  [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
-  [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__entry_list, 1),
-  [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113),
-  [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__entry_list, 1),
-  [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131),
-  [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_entry, 1),
-  [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2),
-  [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
-  [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2),
-  [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__entry_list_repeat1, 2),
-  [158] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(113),
-  [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(129),
-  [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
-  [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
-  [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 5),
-  [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3),
-  [172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(131),
-  [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2),
-  [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_entry, 2),
-  [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
-  [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2),
-  [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(79),
-  [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
-  [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_throw_statement, 2),
-  [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_throw_statement, 2),
-  [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
-  [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130),
-  [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
-  [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
-  [200] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(130),
-  [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
-  [205] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(117),
-  [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117),
-  [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 5),
-  [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
-  [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_list, 1),
-  [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
-  [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__identifier_list_repeat1, 2),
-  [220] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__identifier_list_repeat1, 2), SHIFT_REPEAT(125),
-  [223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126),
-  [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
-  [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
-  [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
-  [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_list, 2),
-  [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
-  [235] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(126),
-  [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
-  [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
-  [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
-  [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
-  [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
-  [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
-  [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
-  [252] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
-  [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
-  [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_type, 1),
-  [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
+  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
+  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146),
+  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
+  [11] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_definition_repeat1, 2),
+  [13] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_repeat1, 2), SHIFT_REPEAT(142),
+  [16] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_definition_repeat1, 2),
+  [18] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_definition_repeat1, 2), SHIFT_REPEAT(146),
+  [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 3),
+  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142),
+  [25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_definition, 3),
+  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146),
+  [29] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 2),
+  [31] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_definition, 2),
+  [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 5),
+  [35] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 5),
+  [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 6),
+  [39] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 6),
+  [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 7),
+  [43] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 7),
+  [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 3),
+  [47] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 3),
+  [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member, 4),
+  [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member, 4),
+  [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3),
+  [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 3),
+  [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1),
+  [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
+  [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
+  [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
+  [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
+  [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1),
+  [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52),
+  [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83),
+  [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
+  [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
+  [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
+  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 2),
+  [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2),
+  [83] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(134),
+  [86] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(146),
+  [89] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(19),
+  [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
+  [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 2),
+  [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
+  [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 3),
+  [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_optional_value, 3),
+  [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_annotation, 3),
+  [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 3),
+  [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_optional_value, 3),
+  [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
+  [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
+  [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
+  [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__entry_list, 2),
+  [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
+  [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entry, 1),
+  [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 1),
+  [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 1),
+  [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
+  [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
+  [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
+  [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__entry_list_repeat1, 2),
+  [132] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(62),
+  [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 4),
+  [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
+  [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2),
+  [141] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(47),
+  [144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(120),
+  [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_entry_repeat1, 2),
+  [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_entry, 2),
+  [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
+  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_annotation, 3),
+  [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2),
+  [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
+  [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2),
+  [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3),
+  [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
+  [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__entry_list, 2),
+  [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 4),
+  [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__entry_list, 1),
+  [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80),
+  [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__entry_list, 1),
+  [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116),
+  [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_entry, 1),
+  [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2),
+  [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3),
+  [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
+  [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__entry_list_repeat1, 2),
+  [187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(80),
+  [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
+  [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
+  [194] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(105),
+  [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_entry, 2),
+  [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
+  [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_throw_statement, 2),
+  [203] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(116),
+  [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2),
+  [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 5),
+  [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(93),
+  [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_throw_statement, 2),
+  [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__entry_list_repeat1, 2), SHIFT_REPEAT(90),
+  [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 5),
+  [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117),
+  [222] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(117),
+  [225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90),
+  [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
+  [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108),
+  [231] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_entry_repeat1, 2), SHIFT_REPEAT(108),
+  [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__identifier_list_repeat1, 2),
+  [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__identifier_list_repeat1, 2), SHIFT_REPEAT(101),
+  [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
+  [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_list, 1),
+  [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
+  [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__identifier_list, 2),
+  [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
+  [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
+  [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
+  [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
+  [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
+  [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+  [259] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
+  [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
+  [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
+  [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_type, 1),
+  [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
+  [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
+  [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
+  [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
+  [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
+  [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
 };
 
 #ifdef __cplusplus
index 435e9dc266ca50d0d16e33f0a6a937b4a78ff7cc..18be2523dbed83113071a457d769eca32f4581f3 100644 (file)
@@ -21,7 +21,7 @@ Forum.Models.Post
   ::getAll(parent_id <UUID>) => Promise<Array<Forum.Models.Post>> #> NotFoundError,DisplayError
   ::get(id <UUID>) => Promise<Forum.Models.Post>
   #update(text <String>) => Promise<void>
-  #transform(transformer <Function<T>(T) => boolean>)
+  #transform([transformer] <Function<T>(T) => boolean>)
 
 ---
 
@@ -167,6 +167,7 @@ Forum.Models.Post
       (member_type)
       (parameter_list
         (identifier
+          (optional_value)
           (type_annotation
             (entry
               (identifier
index b798549b12b8be25ceacfce3db1b3c4916eca6af..c20f11a72e10253b9d663aacd3ffebde758c62f6 100644 (file)
@@ -20,7 +20,7 @@ Forum.Models.Post
   //<- operator
   //^ property
   //           ^ function
-  //            ^ parameter
+  //            ^ variable.parameter
   //                 ^ type
   //                  ^ keyword
   //                        ^ type
@@ -34,7 +34,7 @@ Forum.Models.Post
   //<- operator
   //^ property
   //      ^ function
-  //       ^ parameter
+  //       ^ variable.parameter
   //                 ^ type
   //                  ^ keyword
   //                      ^ type
@@ -45,4 +45,10 @@ Forum.Models.Post
   //                                                                 ^ keyword
   ::get(id <UUID>) => Promise<Forum.Models.Post>
   #update(text <String>) => Promise<void>
-  #transform(transformer <Function<T>(T) => boolean>)
+  #transform([transformer] <Function<T>(T) => boolean>)
+  //<- operator
+  //^ property
+  //        ^ function
+  //          ^ variable.parameter.optional
+  //                       ^ type
+  //                        ^ keyword