diff --git a/grammar.js b/grammar.js index 6e4f80d7..d13907c0 100644 --- a/grammar.js +++ b/grammar.js @@ -13,7 +13,7 @@ module.exports = grammar({ ], rules: { - program: $ => sep(repeat1('\n'), $._item), + program: $ => repeatSep(repeat1('\n'), $._item), _item: $ => choice( $.meta, @@ -45,7 +45,7 @@ module.exports = grammar({ ), ), const: $ => seq('const', field('name', $.word), field('value', $._tc_expr)), - instruction: $ => seq(field('kind', $.word), choice(sep(',', $._expr), repeat($._tc_expr))), + instruction: $ => seq(field('kind', $.word), choice(repeatSep(',', $._expr), repeat($._tc_expr))), _expr: $ => choice($.ptr, $.ident, $.int, $.string, $.float, $.list), // ARMv7 @@ -58,6 +58,7 @@ module.exports = grammar({ ptr: $ => choice( + // Intel seq( optional(seq(choice('byte', 'word', 'dword', 'qword'), 'ptr')), '[', @@ -65,10 +66,19 @@ module.exports = grammar({ optional(seq(choice('+', '-'), choice($.int, $.ident))), ']', ), + // AT&T + // DISP(BASE, INDEX, SCALE) seq( - optional($.int), + field('disp', optional($.int)), '(', - $.reg, + choice( + $.reg, + sep(',', + field('base', optional($.reg)), + field('index', $.reg), + field('scale', optional(choice('1', '2', '4', '8'))), + ), + ), ')', ), seq( @@ -150,6 +160,15 @@ module.exports = grammar({ }, }) -function sep(separator, rule) { +function repeatSep(separator, rule) { return optional(seq(rule, repeat(seq(separator, rule)), optional(separator))) } + +function sep(separator, ...rules) { + if (rules.length === 0) return optional(); + let parts = [rules[0]]; + for (let i = 1; i < rules.length; i++) { + parts.push(separator, rules[i]); + } + return seq(...parts); +} diff --git a/src/grammar.json b/src/grammar.json index a75664ba..e7d6051c 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "asm", "rules": { "program": { @@ -561,26 +562,105 @@ { "type": "SEQ", "members": [ + { + "type": "FIELD", + "name": "disp", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "int" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "(" + }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "int" + "name": "reg" }, { - "type": "BLANK" + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "base", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "reg" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "index", + "content": { + "type": "SYMBOL", + "name": "reg" + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "scale", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "1" + }, + { + "type": "STRING", + "value": "2" + }, + { + "type": "STRING", + "value": "4" + }, + { + "type": "STRING", + "value": "8" + } + ] + }, + { + "type": "BLANK" + } + ] + } + } + ] } ] }, - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "reg" - }, { "type": "STRING", "value": ")" @@ -1119,5 +1199,6 @@ "precedences": [], "externals": [], "inline": [], - "supertypes": [] -} + "supertypes": [], + "reserved": {} +} \ No newline at end of file diff --git a/src/node-types.json b/src/node-types.json index 80b1f8e6..41c16ec2 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -148,6 +148,7 @@ { "type": "line_comment", "named": true, + "extra": true, "fields": {} }, { @@ -206,6 +207,7 @@ { "type": "program", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, @@ -233,10 +235,63 @@ { "type": "ptr", "named": true, - "fields": {}, + "fields": { + "base": { + "multiple": false, + "required": false, + "types": [ + { + "type": "reg", + "named": true + } + ] + }, + "disp": { + "multiple": false, + "required": false, + "types": [ + { + "type": "int", + "named": true + } + ] + }, + "index": { + "multiple": false, + "required": false, + "types": [ + { + "type": "reg", + "named": true + } + ] + }, + "scale": { + "multiple": false, + "required": false, + "types": [ + { + "type": "1", + "named": false + }, + { + "type": "2", + "named": false + }, + { + "type": "4", + "named": false + }, + { + "type": "8", + "named": false + } + ] + } + }, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { "type": "ident", @@ -413,6 +468,22 @@ "type": "/", "named": false }, + { + "type": "1", + "named": false + }, + { + "type": "2", + "named": false + }, + { + "type": "4", + "named": false + }, + { + "type": "8", + "named": false + }, { "type": ":", "named": false @@ -435,7 +506,8 @@ }, { "type": "block_comment", - "named": true + "named": true, + "extra": true }, { "type": "byte", diff --git a/src/parser.c b/src/parser.c index 3a8c319c..b2e598ef 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,19 +1,23 @@ +/* Automatically @generated by tree-sitter */ + #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif -#define LANGUAGE_VERSION 14 -#define STATE_COUNT 137 -#define LARGE_STATE_COUNT 3 -#define SYMBOL_COUNT 65 +#define LANGUAGE_VERSION 15 +#define STATE_COUNT 162 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 41 +#define TOKEN_COUNT 45 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 6 -#define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 6 +#define FIELD_COUNT 10 +#define MAX_ALIAS_SEQUENCE_LENGTH 8 +#define MAX_RESERVED_WORD_SET_SIZE 0 +#define PRODUCTION_ID_COUNT 15 +#define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { anon_sym_LF = 1, @@ -34,52 +38,56 @@ enum ts_symbol_identifiers { anon_sym_LBRACK = 16, anon_sym_PLUS = 17, anon_sym_RBRACK = 18, - anon_sym_STAR = 19, - anon_sym_rel = 20, - anon_sym_BANG = 21, - anon_sym_SLASH = 22, - anon_sym_PERCENT = 23, - anon_sym_PIPE = 24, - anon_sym_CARET = 25, - anon_sym_AMP = 26, - anon_sym_POUND = 27, - aux_sym_int_token1 = 28, - aux_sym_int_token2 = 29, - sym_float = 30, - aux_sym_string_token1 = 31, - aux_sym_string_token2 = 32, - sym_word = 33, - sym__reg = 34, - sym_address = 35, - sym_meta_ident = 36, - sym__ident = 37, - aux_sym_line_comment_token1 = 38, - aux_sym_line_comment_token2 = 39, - sym_block_comment = 40, - sym_program = 41, - sym__item = 42, - sym_meta = 43, - sym_label = 44, - sym_const = 45, - sym_instruction = 46, - sym__expr = 47, - sym_list = 48, - sym_ptr = 49, - sym__tc_expr = 50, - sym_tc_infix = 51, - sym_int = 52, - sym_string = 53, - sym_reg = 54, - sym_ident = 55, - sym_line_comment = 56, - aux_sym_program_repeat1 = 57, - aux_sym_program_repeat2 = 58, - aux_sym_meta_repeat1 = 59, - aux_sym_meta_repeat2 = 60, - aux_sym_meta_repeat3 = 61, - aux_sym_instruction_repeat1 = 62, - aux_sym_instruction_repeat2 = 63, - aux_sym_list_repeat1 = 64, + anon_sym_1 = 19, + anon_sym_2 = 20, + anon_sym_4 = 21, + anon_sym_8 = 22, + anon_sym_STAR = 23, + anon_sym_rel = 24, + anon_sym_BANG = 25, + anon_sym_SLASH = 26, + anon_sym_PERCENT = 27, + anon_sym_PIPE = 28, + anon_sym_CARET = 29, + anon_sym_AMP = 30, + anon_sym_POUND = 31, + aux_sym_int_token1 = 32, + aux_sym_int_token2 = 33, + sym_float = 34, + aux_sym_string_token1 = 35, + aux_sym_string_token2 = 36, + sym_word = 37, + sym__reg = 38, + sym_address = 39, + sym_meta_ident = 40, + sym__ident = 41, + aux_sym_line_comment_token1 = 42, + aux_sym_line_comment_token2 = 43, + sym_block_comment = 44, + sym_program = 45, + sym__item = 46, + sym_meta = 47, + sym_label = 48, + sym_const = 49, + sym_instruction = 50, + sym__expr = 51, + sym_list = 52, + sym_ptr = 53, + sym__tc_expr = 54, + sym_tc_infix = 55, + sym_int = 56, + sym_string = 57, + sym_reg = 58, + sym_ident = 59, + sym_line_comment = 60, + aux_sym_program_repeat1 = 61, + aux_sym_program_repeat2 = 62, + aux_sym_meta_repeat1 = 63, + aux_sym_meta_repeat2 = 64, + aux_sym_meta_repeat3 = 65, + aux_sym_instruction_repeat1 = 66, + aux_sym_instruction_repeat2 = 67, + aux_sym_list_repeat1 = 68, }; static const char * const ts_symbol_names[] = { @@ -102,6 +110,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACK] = "[", [anon_sym_PLUS] = "+", [anon_sym_RBRACK] = "]", + [anon_sym_1] = "1", + [anon_sym_2] = "2", + [anon_sym_4] = "4", + [anon_sym_8] = "8", [anon_sym_STAR] = "*", [anon_sym_rel] = "rel", [anon_sym_BANG] = "!", @@ -170,6 +182,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_1] = anon_sym_1, + [anon_sym_2] = anon_sym_2, + [anon_sym_4] = anon_sym_4, + [anon_sym_8] = anon_sym_8, [anon_sym_STAR] = anon_sym_STAR, [anon_sym_rel] = anon_sym_rel, [anon_sym_BANG] = anon_sym_BANG, @@ -295,6 +311,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_1] = { + .visible = true, + .named = false, + }, + [anon_sym_2] = { + .visible = true, + .named = false, + }, + [anon_sym_4] = { + .visible = true, + .named = false, + }, + [anon_sym_8] = { + .visible = true, + .named = false, + }, [anon_sym_STAR] = { .visible = true, .named = false, @@ -482,29 +514,46 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum ts_field_identifiers { - field_kind = 1, - field_lhs = 2, - field_name = 3, - field_op = 4, - field_rhs = 5, - field_value = 6, + field_base = 1, + field_disp = 2, + field_index = 3, + field_kind = 4, + field_lhs = 5, + field_name = 6, + field_op = 7, + field_rhs = 8, + field_scale = 9, + field_value = 10, }; static const char * const ts_field_names[] = { [0] = NULL, + [field_base] = "base", + [field_disp] = "disp", + [field_index] = "index", [field_kind] = "kind", [field_lhs] = "lhs", [field_name] = "name", [field_op] = "op", [field_rhs] = "rhs", + [field_scale] = "scale", [field_value] = "value", }; -static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { +static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 1}, [4] = {.index = 2, .length = 2}, [5] = {.index = 4, .length = 3}, + [6] = {.index = 7, .length = 1}, + [7] = {.index = 8, .length = 1}, + [8] = {.index = 9, .length = 2}, + [9] = {.index = 11, .length = 2}, + [10] = {.index = 13, .length = 2}, + [11] = {.index = 15, .length = 3}, + [12] = {.index = 18, .length = 3}, + [13] = {.index = 21, .length = 3}, + [14] = {.index = 24, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -519,6 +568,36 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_lhs, 0}, {field_op, 1}, {field_rhs, 2}, + [7] = + {field_disp, 0}, + [8] = + {field_index, 2}, + [9] = + {field_index, 2}, + {field_scale, 4}, + [11] = + {field_base, 1}, + {field_index, 3}, + [13] = + {field_disp, 0}, + {field_index, 3}, + [15] = + {field_base, 1}, + {field_index, 3}, + {field_scale, 5}, + [18] = + {field_disp, 0}, + {field_index, 3}, + {field_scale, 5}, + [21] = + {field_base, 2}, + {field_disp, 0}, + {field_index, 4}, + [24] = + {field_base, 2}, + {field_disp, 0}, + {field_index, 4}, + {field_scale, 6}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -562,26 +641,26 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 26, - [30] = 25, + [29] = 11, + [30] = 30, [31] = 24, - [32] = 32, - [33] = 27, - [34] = 28, - [35] = 9, - [36] = 8, + [32] = 25, + [33] = 26, + [34] = 27, + [35] = 28, + [36] = 10, [37] = 37, - [38] = 38, - [39] = 6, - [40] = 11, + [38] = 7, + [39] = 39, + [40] = 8, [41] = 41, [42] = 12, - [43] = 17, + [43] = 14, [44] = 19, - [45] = 16, - [46] = 46, - [47] = 13, - [48] = 14, + [45] = 45, + [46] = 17, + [47] = 16, + [48] = 18, [49] = 15, [50] = 50, [51] = 51, @@ -667,9 +746,34 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [131] = 131, [132] = 132, [133] = 133, - [134] = 125, + [134] = 134, [135] = 135, [136] = 136, + [137] = 137, + [138] = 138, + [139] = 139, + [140] = 140, + [141] = 141, + [142] = 142, + [143] = 143, + [144] = 144, + [145] = 145, + [146] = 146, + [147] = 147, + [148] = 148, + [149] = 149, + [150] = 150, + [151] = 151, + [152] = 152, + [153] = 153, + [154] = 154, + [155] = 155, + [156] = 156, + [157] = 157, + [158] = 148, + [159] = 159, + [160] = 160, + [161] = 161, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -677,1233 +781,1295 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(30); + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, - '!', 58, + '\n', 32, + '!', 67, '"', 1, - '#', 65, - '$', 19, - '%', 60, - '&', 64, - '\'', 9, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 74, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - ']', 54, - '^', 63, - 'b', 134, - 'c', 110, - 'd', 129, - 'l', 95, - 'p', 125, - 'q', 130, - 'r', 103, - 'w', 112, - '{', 38, - '|', 62, - '}', 41, + '#', 74, + '$', 20, + '%', 69, + '&', 73, + '\'', 10, + '(', 35, + ')', 36, + '*', 64, + '+', 54, + ',', 33, + '-', 41, + '.', 156, + '/', 68, + '0', 83, + '1', 57, + '2', 59, + '4', 61, + '8', 63, + ':', 34, + ';', 163, + '=', 25, + '[', 53, + ']', 55, + '^', 72, + 'b', 143, + 'c', 119, + 'd', 138, + 'l', 104, + 'p', 134, + 'q', 139, + 'r', 112, + 'w', 121, + '{', 39, + '|', 71, + '}', 42, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(77); + if (('3' <= lookahead && lookahead <= '9')) ADVANCE(86); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(93); + if (lookahead == '"') ADVANCE(102); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: - ADVANCE_MAP( - '#', 65, - '$', 20, - '-', 6, - '/', 10, - '0', 84, - ';', 154, - 'p', 16, - 'r', 13, - ); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '$') ADVANCE(21); + if (lookahead == '-') ADVANCE(7); + if (lookahead == '/') ADVANCE(11); + if (lookahead == '0') ADVANCE(93); + if (lookahead == ';') ADVANCE(163); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 3: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '$') ADVANCE(21); - if (lookahead == '-') ADVANCE(8); - if (lookahead == '/') ADVANCE(10); - if (lookahead == '0') ADVANCE(67); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '$') ADVANCE(22); + if (lookahead == '-') ADVANCE(9); + if (lookahead == '/') ADVANCE(11); + if (lookahead == '0') ADVANCE(76); + if (lookahead == ';') ADVANCE(163); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + lookahead == ' ') SKIP(6); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(78); END_STATE(); case 4: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '%') ADVANCE(23); - if (lookahead == '.') ADVANCE(147); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '%') ADVANCE(24); + if (lookahead == '.') ADVANCE(156); + if (lookahead == '/') ADVANCE(11); + if (lookahead == ';') ADVANCE(163); if (lookahead == '$' || - lookahead == '=') ADVANCE(24); + lookahead == '=') ADVANCE(25); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(4); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); case 5: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + ADVANCE_MAP( + '#', 74, + ')', 36, + '/', 11, + '1', 56, + '2', 58, + '4', 60, + '8', 62, + ';', 163, + 'p', 17, + 'r', 14, + ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); END_STATE(); case 6: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '/') ADVANCE(11); + if (lookahead == ';') ADVANCE(163); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(6); END_STATE(); case 7: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(82); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (lookahead == '$') ADVANCE(21); + if (lookahead == '0') ADVANCE(93); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 8: if (lookahead == '$') ADVANCE(21); - if (lookahead == '0') ADVANCE(67); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (lookahead == '0') ADVANCE(91); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92); END_STATE(); case 9: - if (lookahead == '\'') ADVANCE(94); - if (lookahead != 0) ADVANCE(9); + if (lookahead == '$') ADVANCE(22); + if (lookahead == '0') ADVANCE(76); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(78); END_STATE(); case 10: - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '\'') ADVANCE(103); + if (lookahead != 0) ADVANCE(10); END_STATE(); case 11: - if (lookahead == '*') ADVANCE(11); - if (lookahead == '/') ADVANCE(155); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '*') ADVANCE(13); + if (lookahead == '/') ADVANCE(163); END_STATE(); case 12: - if (lookahead == '*') ADVANCE(11); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '*') ADVANCE(12); + if (lookahead == '/') ADVANCE(164); + if (lookahead != 0) ADVANCE(13); END_STATE(); case 13: - if (lookahead == 'e') ADVANCE(14); + if (lookahead == '*') ADVANCE(12); + if (lookahead != 0) ADVANCE(13); END_STATE(); case 14: - if (lookahead == 'l') ADVANCE(56); + if (lookahead == 'e') ADVANCE(15); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(50); + if (lookahead == 'l') ADVANCE(65); END_STATE(); case 16: - if (lookahead == 't') ADVANCE(15); + if (lookahead == 'r') ADVANCE(51); END_STATE(); case 17: - if (lookahead == '0' || - lookahead == '1') ADVANCE(85); + if (lookahead == 't') ADVANCE(16); END_STATE(); case 18: if (lookahead == '0' || - lookahead == '1') ADVANCE(68); + lookahead == '1') ADVANCE(94); END_STATE(); case 19: + if (lookahead == '0' || + lookahead == '1') ADVANCE(77); + END_STATE(); + case 20: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 20: + case 21: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(97); END_STATE(); - case 21: + case 22: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); END_STATE(); - case 22: + case 23: if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(155); END_STATE(); - case 23: + case 24: if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152); END_STATE(); - case 24: + case 25: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 25: - if (eof) ADVANCE(30); + case 26: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, + '\n', 32, '"', 1, - '#', 65, - '$', 19, - '%', 23, - '\'', 9, - '(', 34, - '*', 55, - '-', 7, - '.', 147, - '/', 10, - '0', 79, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - 'b', 133, - 'd', 131, - 'q', 132, - 'w', 111, - '{', 38, + '#', 74, + '$', 20, + '%', 24, + '\'', 10, + '(', 35, + '*', 64, + '-', 8, + '.', 156, + '/', 11, + '0', 88, + ':', 34, + ';', 163, + '=', 25, + '[', 53, + 'b', 142, + 'd', 140, + 'q', 141, + 'w', 120, + '{', 39, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(25); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(26); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 26: - if (eof) ADVANCE(30); + case 27: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, + '\n', 32, '"', 1, - '#', 65, - '$', 19, - '%', 23, - '\'', 9, - '-', 7, - '.', 147, - '/', 10, - '0', 79, - ':', 33, - ';', 154, - '=', 24, + '#', 74, + '$', 20, + '%', 24, + '\'', 10, + '-', 8, + '.', 156, + '/', 11, + '0', 88, + ':', 34, + ';', 163, + '=', 25, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(26); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(27); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 27: - if (eof) ADVANCE(30); + case 28: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, + '\n', 32, '"', 1, - '#', 65, - '$', 19, - '%', 61, - '&', 64, - '\'', 9, - '(', 34, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 71, - ';', 154, - '=', 24, - '^', 63, - '|', 62, + '#', 74, + '$', 20, + '%', 70, + '&', 73, + '\'', 10, + '(', 35, + '*', 64, + '+', 54, + ',', 33, + '-', 41, + '.', 156, + '/', 68, + '0', 80, + ';', 163, + '=', 25, + '^', 72, + '|', 71, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(27); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(28); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 28: - if (eof) ADVANCE(30); + case 29: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 60, - '&', 64, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 39, - '.', 147, - '/', 59, - ';', 154, - ']', 54, - '^', 63, - 'c', 110, - 'l', 95, - '|', 62, - '}', 41, + '\n', 32, + '#', 74, + '%', 69, + '&', 73, + '(', 35, + ')', 36, + '*', 64, + '+', 54, + ',', 33, + '-', 40, + '.', 156, + '/', 68, + ';', 163, + ']', 55, + '^', 72, + 'c', 119, + 'l', 104, + '|', 71, + '}', 42, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(28); + lookahead == ' ') SKIP(29); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 29: - if (eof) ADVANCE(30); + case 30: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 23, - '(', 34, - '.', 22, - '/', 10, - ';', 154, - '}', 41, - '$', 24, - '=', 24, + '\n', 32, + '#', 74, + '%', 24, + '(', 35, + ',', 33, + '.', 23, + '/', 11, + ';', 163, + '}', 42, + '$', 25, + '=', 25, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(29); + lookahead == ' ') SKIP(30); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(151); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(150); END_STATE(); - case 30: + case 31: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 31: + case 32: ACCEPT_TOKEN(anon_sym_LF); END_STATE(); - case 32: + case 33: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 33: + case 34: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 34: + case 35: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 35: + case 36: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 36: + case 37: ACCEPT_TOKEN(anon_sym_label); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 37: + case 38: ACCEPT_TOKEN(anon_sym_const); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); - END_STATE(); - case 38: - ACCEPT_TOKEN(anon_sym_LBRACE); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 40: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '$') ADVANCE(21); + if (lookahead == '0') ADVANCE(93); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 42: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 43: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 43: + case 44: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 44: + case 45: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 45: + case 46: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 46: + case 47: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 47: + case 48: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 48: + case 49: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 49: + case 50: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 50: + case 51: ACCEPT_TOKEN(anon_sym_ptr); END_STATE(); - case 51: + case 52: ACCEPT_TOKEN(anon_sym_ptr); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 52: + case 53: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 53: + case 54: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 54: + case 55: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 55: + case 56: + ACCEPT_TOKEN(anon_sym_1); + END_STATE(); + case 57: + ACCEPT_TOKEN(anon_sym_1); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 58: + ACCEPT_TOKEN(anon_sym_2); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_2); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 60: + ACCEPT_TOKEN(anon_sym_4); + END_STATE(); + case 61: + ACCEPT_TOKEN(anon_sym_4); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 62: + ACCEPT_TOKEN(anon_sym_8); + END_STATE(); + case 63: + ACCEPT_TOKEN(anon_sym_8); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 64: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 56: + case 65: ACCEPT_TOKEN(anon_sym_rel); END_STATE(); - case 57: + case 66: ACCEPT_TOKEN(anon_sym_rel); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 58: + case 67: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 59: + case 68: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '*') ADVANCE(13); + if (lookahead == '/') ADVANCE(163); END_STATE(); - case 60: + case 69: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 61: + case 70: ACCEPT_TOKEN(anon_sym_PERCENT); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152); END_STATE(); - case 62: + case 71: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 63: + case 72: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 64: + case 73: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 65: + case 74: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 66: + case 75: ACCEPT_TOKEN(anon_sym_POUND); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 67: + case 76: ACCEPT_TOKEN(aux_sym_int_token1); - if (lookahead == 'b') ADVANCE(18); - if (lookahead == 'x') ADVANCE(21); + if (lookahead == 'b') ADVANCE(19); + if (lookahead == 'x') ADVANCE(22); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(78); END_STATE(); - case 68: + case 77: ACCEPT_TOKEN(aux_sym_int_token1); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(68); + lookahead == '_') ADVANCE(77); END_STATE(); - case 69: + case 78: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(78); END_STATE(); - case 70: + case 79: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); END_STATE(); - case 71: + case 80: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(157); + if (lookahead == '_') ADVANCE(86); + if (lookahead == 'b') ADVANCE(145); + if (lookahead == 'x') ADVANCE(146); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); END_STATE(); - case 72: + case 81: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(157); + if (lookahead == '_') ADVANCE(86); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 73: + case 82: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(75); + if (lookahead == '.') ADVANCE(157); + if (lookahead == '_') ADVANCE(84); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + lookahead == '1') ADVANCE(82); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 74: + case 83: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(135); - if (lookahead == 'x') ADVANCE(138); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'b') ADVANCE(144); + if (lookahead == 'x') ADVANCE(147); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(86); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 75: + case 84: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(75); + lookahead == '_') ADVANCE(84); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 76: + case 85: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'F') || - lookahead == '_') ADVANCE(78); + lookahead == '_') ADVANCE(87); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85); + if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(149); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 77: + case 86: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(86); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 78: + case 87: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 79: + case 88: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(98); + if (lookahead == '_') ADVANCE(90); + if (lookahead == 'b') ADVANCE(145); + if (lookahead == 'x') ADVANCE(146); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); END_STATE(); - case 80: + case 89: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(98); + if (lookahead == '_') ADVANCE(90); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 81: + case 90: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); + if (lookahead == '.') ADVANCE(98); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(81); + lookahead == '_') ADVANCE(90); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 82: + case 91: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); + if (lookahead == '.') ADVANCE(99); + if (lookahead == 'b') ADVANCE(18); + if (lookahead == 'x') ADVANCE(21); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(92); END_STATE(); - case 83: + case 92: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); + if (lookahead == '.') ADVANCE(99); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(92); END_STATE(); - case 84: + case 93: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); + if (lookahead == 'b') ADVANCE(18); + if (lookahead == 'x') ADVANCE(21); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(95); END_STATE(); - case 85: + case 94: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(85); + lookahead == '_') ADVANCE(94); END_STATE(); - case 86: + case 95: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(95); END_STATE(); - case 87: + case 96: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 88: + case 97: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(97); END_STATE(); - case 89: + case 98: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(100); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 90: + case 99: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(101); END_STATE(); - case 91: + case 100: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(91); + lookahead == '_') ADVANCE(100); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 92: + case 101: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(92); + lookahead == '_') ADVANCE(101); END_STATE(); - case 93: + case 102: ACCEPT_TOKEN(aux_sym_string_token1); END_STATE(); - case 94: + case 103: ACCEPT_TOKEN(aux_sym_string_token2); END_STATE(); - case 95: + case 104: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'a') ADVANCE(96); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'a') ADVANCE(105); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 96: + case 105: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(106); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'b') ADVANCE(115); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 97: + case 106: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(45); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(46); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 98: + case 107: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(47); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(48); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 99: + case 108: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(49); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(50); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 100: + case 109: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(44); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(45); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 101: + case 110: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(46); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(47); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 102: + case 111: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(48); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(49); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 103: + case 112: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(107); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(116); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 104: + case 113: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(43); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(44); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 105: + case 114: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(42); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(43); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 106: + case 115: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(108); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(117); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 107: + case 116: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(57); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'l') ADVANCE(66); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 108: + case 117: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(36); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'l') ADVANCE(37); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 109: + case 118: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'n') ADVANCE(124); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'n') ADVANCE(133); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 110: + case 119: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(109); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(118); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 111: + case 120: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(119); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(128); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 112: + case 121: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(118); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(127); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 113: + case 122: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(120); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(129); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 114: + case 123: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(122); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(131); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 115: + case 124: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(121); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(130); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 116: + case 125: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(123); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(132); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 117: + case 126: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(51); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(52); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 118: + case 127: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(97); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(106); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 119: + case 128: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(100); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(109); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 120: + case 129: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(98); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(107); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 121: + case 130: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(101); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(110); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 122: + case 131: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(99); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(108); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 123: + case 132: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(102); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(111); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 124: + case 133: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 's') ADVANCE(126); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 's') ADVANCE(135); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 125: + case 134: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(117); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(126); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 126: + case 135: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(37); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 127: + case 136: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(105); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(114); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 128: + case 137: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(104); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(113); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 129: + case 138: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(113); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(122); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 130: + case 139: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(114); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(123); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 131: + case 140: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(115); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(124); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 132: + case 141: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(116); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(125); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 133: + case 142: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(127); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'y') ADVANCE(136); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 134: + case 143: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(128); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'y') ADVANCE(137); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 135: + case 144: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (lookahead == '0' || - lookahead == '1') ADVANCE(75); + lookahead == '1') ADVANCE(84); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 136: + case 145: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); + lookahead == '1') ADVANCE(82); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 137: + case 146: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(78); + if (lookahead == '.') ADVANCE(157); + if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(87); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 138: + case 147: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 139: + case 148: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 140: + case 149: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 141: + case 150: ACCEPT_TOKEN(sym_word); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(151); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(150); END_STATE(); - case 142: + case 151: ACCEPT_TOKEN(sym_word); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(151); END_STATE(); - case 143: + case 152: ACCEPT_TOKEN(sym__reg); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152); END_STATE(); - case 144: + case 153: ACCEPT_TOKEN(sym_address); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 145: + case 154: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(154); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(157); END_STATE(); - case 146: + case 155: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(155); END_STATE(); - case 147: + case 156: ACCEPT_TOKEN(sym__ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(154); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(157); END_STATE(); - case 148: + case 157: ACCEPT_TOKEN(sym__ident); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 149: + case 158: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead == '/') ADVANCE(153); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '\n') ADVANCE(13); + if (lookahead == '*') ADVANCE(158); + if (lookahead == '/') ADVANCE(162); + if (lookahead != 0) ADVANCE(159); END_STATE(); - case 150: + case 159: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '\n') ADVANCE(13); + if (lookahead == '*') ADVANCE(158); + if (lookahead != 0) ADVANCE(159); END_STATE(); - case 151: + case 160: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '#') ADVANCE(66); - if (lookahead == '/') ADVANCE(152); - if (lookahead == ';') ADVANCE(153); + if (lookahead == '#') ADVANCE(75); + if (lookahead == '/') ADVANCE(161); + if (lookahead == ';') ADVANCE(162); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(151); + lookahead == ' ') ADVANCE(160); if (lookahead != 0 && lookahead != '\t' && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 152: + case 161: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '*') ADVANCE(150); - if (lookahead == '/') ADVANCE(153); + if (lookahead == '*') ADVANCE(159); + if (lookahead == '/') ADVANCE(162); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 153: + case 162: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 154: + case 163: ACCEPT_TOKEN(aux_sym_line_comment_token2); if (lookahead != 0 && - lookahead != '\n') ADVANCE(154); + lookahead != '\n') ADVANCE(163); END_STATE(); - case 155: + case 164: ACCEPT_TOKEN(sym_block_comment); END_STATE(); default: @@ -1911,91 +2077,91 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { } } -static const TSLexMode ts_lex_modes[STATE_COUNT] = { +static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 28}, - [2] = {.lex_state = 25}, - [3] = {.lex_state = 25}, - [4] = {.lex_state = 25}, - [5] = {.lex_state = 25}, - [6] = {.lex_state = 27}, - [7] = {.lex_state = 27}, - [8] = {.lex_state = 27}, - [9] = {.lex_state = 27}, - [10] = {.lex_state = 27}, - [11] = {.lex_state = 27}, - [12] = {.lex_state = 27}, - [13] = {.lex_state = 27}, - [14] = {.lex_state = 27}, - [15] = {.lex_state = 27}, - [16] = {.lex_state = 27}, - [17] = {.lex_state = 27}, - [18] = {.lex_state = 27}, - [19] = {.lex_state = 27}, - [20] = {.lex_state = 27}, - [21] = {.lex_state = 27}, - [22] = {.lex_state = 26}, - [23] = {.lex_state = 26}, - [24] = {.lex_state = 27}, - [25] = {.lex_state = 27}, - [26] = {.lex_state = 27}, - [27] = {.lex_state = 27}, - [28] = {.lex_state = 27}, - [29] = {.lex_state = 27}, - [30] = {.lex_state = 27}, - [31] = {.lex_state = 27}, - [32] = {.lex_state = 27}, - [33] = {.lex_state = 27}, - [34] = {.lex_state = 27}, + [1] = {.lex_state = 29}, + [2] = {.lex_state = 26}, + [3] = {.lex_state = 26}, + [4] = {.lex_state = 26}, + [5] = {.lex_state = 26}, + [6] = {.lex_state = 28}, + [7] = {.lex_state = 28}, + [8] = {.lex_state = 28}, + [9] = {.lex_state = 28}, + [10] = {.lex_state = 28}, + [11] = {.lex_state = 28}, + [12] = {.lex_state = 28}, + [13] = {.lex_state = 28}, + [14] = {.lex_state = 28}, + [15] = {.lex_state = 28}, + [16] = {.lex_state = 28}, + [17] = {.lex_state = 28}, + [18] = {.lex_state = 28}, + [19] = {.lex_state = 28}, + [20] = {.lex_state = 28}, + [21] = {.lex_state = 28}, + [22] = {.lex_state = 27}, + [23] = {.lex_state = 27}, + [24] = {.lex_state = 28}, + [25] = {.lex_state = 28}, + [26] = {.lex_state = 28}, + [27] = {.lex_state = 28}, + [28] = {.lex_state = 28}, + [29] = {.lex_state = 29}, + [30] = {.lex_state = 28}, + [31] = {.lex_state = 28}, + [32] = {.lex_state = 28}, + [33] = {.lex_state = 28}, + [34] = {.lex_state = 28}, [35] = {.lex_state = 28}, - [36] = {.lex_state = 28}, - [37] = {.lex_state = 28}, - [38] = {.lex_state = 28}, - [39] = {.lex_state = 28}, - [40] = {.lex_state = 28}, - [41] = {.lex_state = 28}, - [42] = {.lex_state = 28}, - [43] = {.lex_state = 28}, - [44] = {.lex_state = 28}, - [45] = {.lex_state = 28}, - [46] = {.lex_state = 28}, - [47] = {.lex_state = 28}, - [48] = {.lex_state = 28}, - [49] = {.lex_state = 28}, - [50] = {.lex_state = 27}, - [51] = {.lex_state = 27}, - [52] = {.lex_state = 28}, - [53] = {.lex_state = 28}, + [36] = {.lex_state = 29}, + [37] = {.lex_state = 29}, + [38] = {.lex_state = 29}, + [39] = {.lex_state = 29}, + [40] = {.lex_state = 29}, + [41] = {.lex_state = 29}, + [42] = {.lex_state = 29}, + [43] = {.lex_state = 29}, + [44] = {.lex_state = 29}, + [45] = {.lex_state = 29}, + [46] = {.lex_state = 29}, + [47] = {.lex_state = 29}, + [48] = {.lex_state = 29}, + [49] = {.lex_state = 29}, + [50] = {.lex_state = 28}, + [51] = {.lex_state = 28}, + [52] = {.lex_state = 29}, + [53] = {.lex_state = 29}, [54] = {.lex_state = 4}, [55] = {.lex_state = 4}, - [56] = {.lex_state = 29}, - [57] = {.lex_state = 29}, - [58] = {.lex_state = 29}, - [59] = {.lex_state = 29}, - [60] = {.lex_state = 29}, - [61] = {.lex_state = 0}, - [62] = {.lex_state = 28}, - [63] = {.lex_state = 28}, - [64] = {.lex_state = 0}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 29}, + [56] = {.lex_state = 30}, + [57] = {.lex_state = 5}, + [58] = {.lex_state = 30}, + [59] = {.lex_state = 5}, + [60] = {.lex_state = 5}, + [61] = {.lex_state = 5}, + [62] = {.lex_state = 30}, + [63] = {.lex_state = 30}, + [64] = {.lex_state = 30}, + [65] = {.lex_state = 30}, + [66] = {.lex_state = 30}, + [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, [72] = {.lex_state = 29}, - [73] = {.lex_state = 29}, + [73] = {.lex_state = 30}, [74] = {.lex_state = 0}, [75] = {.lex_state = 29}, - [76] = {.lex_state = 28}, - [77] = {.lex_state = 0}, - [78] = {.lex_state = 0}, + [76] = {.lex_state = 0}, + [77] = {.lex_state = 30}, + [78] = {.lex_state = 30}, [79] = {.lex_state = 29}, [80] = {.lex_state = 0}, - [81] = {.lex_state = 0}, - [82] = {.lex_state = 28}, - [83] = {.lex_state = 0}, + [81] = {.lex_state = 29}, + [82] = {.lex_state = 30}, + [83] = {.lex_state = 30}, [84] = {.lex_state = 0}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, @@ -2003,9 +2169,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, + [91] = {.lex_state = 30}, [92] = {.lex_state = 0}, - [93] = {.lex_state = 0}, + [93] = {.lex_state = 30}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, @@ -2013,22 +2179,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, - [101] = {.lex_state = 0}, - [102] = {.lex_state = 28}, + [101] = {.lex_state = 29}, + [102] = {.lex_state = 29}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 28}, - [105] = {.lex_state = 2}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, - [109] = {.lex_state = 2}, + [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, - [115] = {.lex_state = 2}, - [116] = {.lex_state = 151}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, @@ -2036,23 +2202,48 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, - [124] = {.lex_state = 25}, - [125] = {.lex_state = 3}, - [126] = {.lex_state = 2}, - [127] = {.lex_state = 2}, - [128] = {.lex_state = 0}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 2}, [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, - [132] = {.lex_state = 29}, - [133] = {.lex_state = 29}, - [134] = {.lex_state = 3}, - [135] = {(TSStateId)(-1)}, - [136] = {(TSStateId)(-1)}, + [131] = {.lex_state = 2}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 2}, + [135] = {.lex_state = 0}, + [136] = {.lex_state = 30}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 5}, + [139] = {.lex_state = 0}, + [140] = {.lex_state = 30}, + [141] = {.lex_state = 5}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 0}, + [145] = {.lex_state = 26}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 3}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 160}, + [155] = {.lex_state = 0}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 3}, + [159] = {.lex_state = 0}, + [160] = {(TSStateId)(-1),}, + [161] = {(TSStateId)(-1),}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { + [STATE(0)] = { [sym_line_comment] = STATE(0), [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -2073,6 +2264,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_1] = ACTIONS(1), + [anon_sym_2] = ACTIONS(1), + [anon_sym_4] = ACTIONS(1), + [anon_sym_8] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), [anon_sym_rel] = ACTIONS(1), [anon_sym_BANG] = ACTIONS(1), @@ -2092,13 +2287,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [1] = { - [sym_program] = STATE(130), - [sym__item] = STATE(81), - [sym_meta] = STATE(114), - [sym_label] = STATE(114), - [sym_const] = STATE(114), - [sym_instruction] = STATE(114), + [STATE(1)] = { + [sym_program] = STATE(157), + [sym__item] = STATE(76), + [sym_meta] = STATE(130), + [sym_label] = STATE(130), + [sym_const] = STATE(130), + [sym_instruction] = STATE(130), [sym_line_comment] = STATE(1), [ts_builtin_sym_end] = ACTIONS(9), [anon_sym_label] = ACTIONS(11), @@ -2110,46 +2305,69 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [2] = { - [sym__expr] = STATE(69), - [sym_list] = STATE(100), - [sym_ptr] = STATE(100), - [sym__tc_expr] = STATE(18), - [sym_tc_infix] = STATE(17), - [sym_int] = STATE(7), - [sym_string] = STATE(10), - [sym_reg] = STATE(11), - [sym_ident] = STATE(10), - [sym_line_comment] = STATE(2), - [aux_sym_instruction_repeat2] = STATE(20), - [ts_builtin_sym_end] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_COLON] = ACTIONS(23), - [anon_sym_LPAREN] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_byte] = ACTIONS(29), - [anon_sym_word] = ACTIONS(29), - [anon_sym_dword] = ACTIONS(29), - [anon_sym_qword] = ACTIONS(29), - [anon_sym_LBRACK] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_POUND] = ACTIONS(35), - [aux_sym_int_token2] = ACTIONS(37), - [sym_float] = ACTIONS(39), - [aux_sym_string_token1] = ACTIONS(41), - [aux_sym_string_token2] = ACTIONS(41), - [sym_word] = ACTIONS(43), - [sym__reg] = ACTIONS(43), - [sym_address] = ACTIONS(43), - [sym_meta_ident] = ACTIONS(45), - [sym__ident] = ACTIONS(45), - [aux_sym_line_comment_token2] = ACTIONS(5), - [sym_block_comment] = ACTIONS(7), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 19, + [0] = 24, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(23), 1, + anon_sym_COLON, + ACTIONS(25), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(31), 1, + anon_sym_LBRACK, + ACTIONS(33), 1, + anon_sym_STAR, + ACTIONS(35), 1, + anon_sym_POUND, + ACTIONS(37), 1, + aux_sym_int_token2, + ACTIONS(39), 1, + sym_float, + STATE(2), 1, + sym_line_comment, + STATE(6), 1, + sym_int, + STATE(10), 1, + sym_reg, + STATE(13), 1, + sym__tc_expr, + STATE(14), 1, + sym_tc_infix, + STATE(20), 1, + aux_sym_instruction_repeat2, + STATE(92), 1, + sym__expr, + ACTIONS(21), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(41), 2, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(45), 2, + sym_meta_ident, + sym__ident, + STATE(9), 2, + sym_string, + sym_ident, + STATE(121), 2, + sym_list, + sym_ptr, + ACTIONS(43), 3, + sym_word, + sym__reg, + sym_address, + ACTIONS(29), 4, + anon_sym_byte, + anon_sym_word, + anon_sym_dword, + anon_sym_qword, + [83] = 19, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2170,11 +2388,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(3), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(78), 1, + STATE(86), 1, sym_int, - STATE(91), 1, + STATE(120), 1, sym__expr, ACTIONS(47), 2, ts_builtin_sym_end, @@ -2194,12 +2412,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(121), 4, sym_list, sym_ptr, sym_string, sym_ident, - [69] = 19, + [152] = 19, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2220,11 +2438,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(4), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(78), 1, + STATE(86), 1, sym_int, - STATE(91), 1, + STATE(120), 1, sym__expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2244,12 +2462,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(121), 4, sym_list, sym_ptr, sym_string, sym_ident, - [138] = 18, + [221] = 18, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2270,11 +2488,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(5), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(78), 1, + STATE(86), 1, sym_int, - STATE(91), 1, + STATE(120), 1, sym__expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2291,56 +2509,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(121), 4, sym_list, sym_ptr, sym_string, sym_ident, - [203] = 5, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - STATE(6), 1, - sym_line_comment, - ACTIONS(63), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(61), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - [238] = 8, + [286] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, + ACTIONS(64), 1, anon_sym_COMMA, - ACTIONS(70), 1, + ACTIONS(66), 1, anon_sym_LPAREN, - STATE(7), 1, + STATE(6), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(61), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + ACTIONS(70), 8, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2349,7 +2537,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, + ACTIONS(68), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2359,14 +2547,14 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [279] = 5, + [327] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(8), 1, + STATE(7), 1, sym_line_comment, - ACTIONS(78), 9, + ACTIONS(74), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2376,7 +2564,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(76), 12, + ACTIONS(72), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2389,14 +2577,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [314] = 5, + [362] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(9), 1, + STATE(8), 1, sym_line_comment, - ACTIONS(82), 9, + ACTIONS(78), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2406,10 +2594,11 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(80), 11, + ACTIONS(76), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2418,19 +2607,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [348] = 7, + [397] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, + ACTIONS(64), 1, anon_sym_COMMA, - STATE(10), 1, + STATE(9), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(61), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + ACTIONS(70), 8, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2439,7 +2628,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, + ACTIONS(68), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [435] = 5, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(10), 1, + sym_line_comment, + ACTIONS(82), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2449,7 +2655,19 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [386] = 5, + ACTIONS(80), 11, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [469] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2478,7 +2696,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [420] = 5, + [503] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2507,78 +2725,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [454] = 8, + [537] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(94), 1, + anon_sym_DASH, ACTIONS(96), 1, - anon_sym_PIPE, + anon_sym_PLUS, ACTIONS(98), 1, + anon_sym_STAR, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, STATE(13), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(100), 2, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(92), 5, ts_builtin_sym_end, anon_sym_LF, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, + ACTIONS(108), 6, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [493] = 10, + [584] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, STATE(14), 1, sym_line_comment, - ACTIONS(104), 2, + ACTIONS(68), 9, + anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(92), 6, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(94), 7, - anon_sym_DASH, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [536] = 5, + ACTIONS(70), 10, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [617] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, STATE(15), 1, sym_line_comment, - ACTIONS(94), 9, + ACTIONS(112), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2588,7 +2805,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(92), 10, + ACTIONS(110), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2599,18 +2816,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [569] = 7, + [650] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(98), 1, + ACTIONS(104), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, STATE(16), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(110), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2619,7 +2836,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(112), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2629,14 +2846,28 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [606] = 5, + [687] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, + anon_sym_CARET, + ACTIONS(106), 1, + anon_sym_AMP, STATE(17), 1, sym_line_comment, - ACTIONS(72), 9, + ACTIONS(110), 7, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(112), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2646,82 +2877,69 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(74), 10, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - [639] = 12, + [726] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - ACTIONS(108), 1, - anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PLUS, STATE(18), 1, sym_line_comment, - ACTIONS(104), 2, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(106), 5, + ACTIONS(110), 9, ts_builtin_sym_end, anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(112), 6, + ACTIONS(112), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [686] = 6, + [761] = 10, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(100), 1, + ACTIONS(98), 1, + anon_sym_STAR, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, + anon_sym_CARET, + ACTIONS(106), 1, anon_sym_AMP, STATE(19), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(100), 2, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(112), 7, anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [721] = 13, + [804] = 13, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2730,9 +2948,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(18), 1, + STATE(13), 1, sym__tc_expr, STATE(20), 1, sym_line_comment, @@ -2751,12 +2969,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [769] = 12, + [852] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2765,9 +2983,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(121), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(18), 1, + STATE(13), 1, sym__tc_expr, ACTIONS(116), 2, ts_builtin_sym_end, @@ -2785,12 +3003,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [815] = 15, + [898] = 15, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2805,13 +3023,13 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(22), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(67), 1, sym_int, - STATE(106), 1, + STATE(90), 1, + sym_string, + STATE(124), 1, sym_ident, ACTIONS(53), 2, aux_sym_string_token1, @@ -2826,7 +3044,7 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - [866] = 14, + [949] = 14, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2839,13 +3057,13 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(23), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(67), 1, sym_int, - STATE(106), 1, + STATE(90), 1, + sym_string, + STATE(124), 1, sym_ident, ACTIONS(53), 2, aux_sym_string_token1, @@ -2860,37 +3078,37 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - [914] = 11, + [997] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, aux_sym_int_token2, - STATE(24), 1, - sym_line_comment, - STATE(40), 1, + STATE(10), 1, sym_reg, - STATE(49), 1, + STATE(19), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(24), 1, + sym_line_comment, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [955] = 11, + [1038] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2899,9 +3117,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(14), 1, + STATE(17), 1, sym__tc_expr, STATE(25), 1, sym_line_comment, @@ -2915,42 +3133,42 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [996] = 11, + [1079] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, aux_sym_int_token2, - STATE(26), 1, - sym_line_comment, - STATE(40), 1, + STATE(10), 1, sym_reg, - STATE(44), 1, + STATE(16), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(26), 1, + sym_line_comment, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1037] = 11, + [1120] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2959,9 +3177,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(13), 1, + STATE(18), 1, sym__tc_expr, STATE(27), 1, sym_line_comment, @@ -2975,12 +3193,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1078] = 11, + [1161] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2989,9 +3207,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(16), 1, + STATE(15), 1, sym__tc_expr, STATE(28), 1, sym_line_comment, @@ -3005,42 +3223,67 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1119] = 11, + [1202] = 6, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(86), 1, + anon_sym_SLASH, + STATE(29), 1, + sym_line_comment, + ACTIONS(84), 13, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1233] = 11, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(49), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(51), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(30), 1, + sym_line_comment, + STATE(36), 1, sym_reg, - STATE(19), 1, + STATE(45), 1, sym__tc_expr, - STATE(29), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(53), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(57), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(55), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1160] = 11, + [1274] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3049,11 +3292,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(30), 1, + STATE(31), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(48), 1, + STATE(44), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3070,37 +3313,37 @@ static const uint16_t ts_small_parse_table[] = { sym_int, sym_string, sym_ident, - [1201] = 11, + [1315] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(49), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(51), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(32), 1, + sym_line_comment, + STATE(36), 1, sym_reg, - STATE(15), 1, + STATE(46), 1, sym__tc_expr, - STATE(31), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(53), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(57), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(55), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1242] = 11, + [1356] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3109,11 +3352,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(32), 1, + STATE(33), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(46), 1, + STATE(47), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3130,7 +3373,7 @@ static const uint16_t ts_small_parse_table[] = { sym_int, sym_string, sym_ident, - [1283] = 11, + [1397] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3139,11 +3382,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(33), 1, + STATE(34), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(47), 1, + STATE(48), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3160,7 +3403,7 @@ static const uint16_t ts_small_parse_table[] = { sym_int, sym_string, sym_ident, - [1324] = 11, + [1438] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3169,11 +3412,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(34), 1, + STATE(35), 1, sym_line_comment, - STATE(40), 1, + STATE(36), 1, sym_reg, - STATE(45), 1, + STATE(49), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3190,7 +3433,7 @@ static const uint16_t ts_small_parse_table[] = { sym_int, sym_string, sym_ident, - [1365] = 6, + [1479] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3199,38 +3442,13 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(82), 1, anon_sym_SLASH, - STATE(35), 1, - sym_line_comment, - ACTIONS(80), 13, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1396] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(78), 1, - anon_sym_SLASH, STATE(36), 1, sym_line_comment, - ACTIONS(76), 12, + ACTIONS(80), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_RBRACK, @@ -3239,7 +3457,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1426] = 14, + [1509] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3264,14 +3482,38 @@ static const uint16_t ts_small_parse_table[] = { sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(127), 1, sym__item, - STATE(114), 4, + STATE(130), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1472] = 14, + [1555] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(74), 1, + anon_sym_SLASH, + STATE(38), 1, + sym_line_comment, + ACTIONS(72), 12, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1585] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3292,57 +3534,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(143), 1, ts_builtin_sym_end, - STATE(38), 1, + STATE(39), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(127), 1, sym__item, - STATE(114), 4, + STATE(130), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1518] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(63), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_line_comment, - ACTIONS(61), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1548] = 6, + [1631] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_SLASH, STATE(40), 1, sym_line_comment, - ACTIONS(84), 12, + ACTIONS(76), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_RBRACK, @@ -3351,7 +3569,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1578] = 13, + [1661] = 13, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3374,14 +3592,14 @@ static const uint16_t ts_small_parse_table[] = { sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(127), 1, sym__item, - STATE(114), 4, + STATE(130), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1621] = 6, + [1704] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3403,18 +3621,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1649] = 6, + [1732] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(72), 1, + ACTIONS(68), 1, anon_sym_SLASH, STATE(43), 1, sym_line_comment, - ACTIONS(74), 9, + ACTIONS(70), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3424,138 +3642,138 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1676] = 7, + [1759] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(145), 1, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, anon_sym_AMP, STATE(44), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(110), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - [1705] = 8, + [1794] = 11, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, - anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_AMP, STATE(45), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(155), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(157), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - [1736] = 11, + [1831] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(157), 1, + ACTIONS(149), 1, anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_AMP, STATE(46), 1, sym_line_comment, - ACTIONS(149), 2, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(151), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(153), 2, anon_sym_STAR, anon_sym_PERCENT, - [1773] = 9, + [1864] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(157), 1, - anon_sym_PIPE, + ACTIONS(153), 1, + anon_sym_AMP, STATE(47), 1, sym_line_comment, - ACTIONS(92), 6, + ACTIONS(110), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - [1806] = 10, + anon_sym_PIPE, + [1895] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_PIPE, + ACTIONS(153), 1, + anon_sym_AMP, STATE(48), 1, sym_line_comment, - ACTIONS(153), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(110), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - [1841] = 6, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + [1924] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(112), 1, anon_sym_SLASH, STATE(49), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(110), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3565,7 +3783,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1868] = 9, + [1951] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3574,21 +3792,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(40), 1, + STATE(36), 1, sym_reg, STATE(50), 1, sym_line_comment, ACTIONS(57), 2, sym_meta_ident, sym__ident, - STATE(122), 2, + STATE(150), 2, sym_int, sym_ident, ACTIONS(55), 3, sym_word, sym__reg, sym_address, - [1900] = 9, + [1983] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3597,21 +3815,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(40), 1, + STATE(36), 1, sym_reg, STATE(51), 1, sym_line_comment, ACTIONS(57), 2, sym_meta_ident, sym__ident, - STATE(117), 2, + STATE(135), 2, sym_int, sym_ident, ACTIONS(55), 3, sym_word, sym__reg, sym_address, - [1932] = 7, + [2015] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3631,7 +3849,7 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym_meta_ident, sym__ident, - [1959] = 6, + [2042] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3649,7 +3867,7 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym_meta_ident, sym__ident, - [1983] = 9, + [2066] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3658,11 +3876,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(170), 1, sym_address, - STATE(40), 1, + STATE(36), 1, sym_reg, STATE(54), 1, sym_line_comment, - STATE(128), 1, + STATE(139), 1, sym_ident, ACTIONS(55), 2, sym_word, @@ -3670,7 +3888,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2013] = 9, + [2096] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3679,11 +3897,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(170), 1, sym_address, - STATE(40), 1, + STATE(36), 1, sym_reg, STATE(55), 1, sym_line_comment, - STATE(129), 1, + STATE(152), 1, sym_ident, ACTIONS(55), 2, sym_word, @@ -3691,7 +3909,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2043] = 8, + [2126] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3704,84 +3922,78 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, STATE(56), 1, sym_line_comment, - STATE(82), 1, + STATE(101), 1, sym_reg, ACTIONS(170), 2, sym_word, sym_address, - [2069] = 8, + [2152] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, ACTIONS(174), 1, - anon_sym_RBRACE, + anon_sym_RPAREN, STATE(57), 1, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2095] = 8, + ACTIONS(176), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2174] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(55), 1, + sym__reg, ACTIONS(178), 1, - anon_sym_LPAREN, - ACTIONS(180), 1, - sym_meta_ident, + anon_sym_RBRACE, STATE(58), 1, sym_line_comment, - STATE(108), 1, - sym_meta, - ACTIONS(176), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2121] = 8, + STATE(101), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2200] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(182), 1, - anon_sym_RBRACE, + ACTIONS(180), 1, + anon_sym_RPAREN, STATE(59), 1, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2147] = 8, + ACTIONS(182), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2222] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(180), 1, - sym_meta_ident, - ACTIONS(186), 1, - anon_sym_LPAREN, + ACTIONS(184), 1, + anon_sym_RPAREN, STATE(60), 1, sym_line_comment, - STATE(111), 1, - sym_meta, - ACTIONS(184), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2173] = 7, + ACTIONS(186), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2244] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3789,79 +4001,105 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(188), 1, - ts_builtin_sym_end, - ACTIONS(190), 1, - anon_sym_LF, - STATE(41), 1, - aux_sym_program_repeat1, - STATE(61), 2, + anon_sym_RPAREN, + STATE(61), 1, sym_line_comment, - aux_sym_program_repeat2, - [2196] = 8, + ACTIONS(190), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2266] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(182), 1, - anon_sym_RBRACE, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(195), 1, - anon_sym_DASH, + ACTIONS(194), 1, + anon_sym_LPAREN, + ACTIONS(196), 1, + sym_meta_ident, STATE(62), 1, sym_line_comment, - STATE(63), 1, - aux_sym_list_repeat1, - [2221] = 6, + STATE(123), 1, + sym_meta, + ACTIONS(192), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2292] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(200), 1, - anon_sym_RBRACE, - ACTIONS(197), 2, + ACTIONS(55), 1, + sym__reg, + ACTIONS(198), 1, anon_sym_COMMA, - anon_sym_DASH, - STATE(63), 2, + STATE(63), 1, sym_line_comment, - aux_sym_list_repeat1, - [2242] = 7, + STATE(125), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2318] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, - anon_sym_COMMA, + ACTIONS(55), 1, + sym__reg, + ACTIONS(200), 1, + anon_sym_RBRACE, STATE(64), 1, sym_line_comment, - STATE(86), 1, - aux_sym_meta_repeat2, + STATE(72), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2344] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(196), 1, + sym_meta_ident, + ACTIONS(204), 1, + anon_sym_LPAREN, + STATE(65), 1, + sym_line_comment, + STATE(126), 1, + sym_meta, ACTIONS(202), 2, ts_builtin_sym_end, anon_sym_LF, - [2265] = 7, + [2370] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, + ACTIONS(55), 1, + sym__reg, + ACTIONS(206), 1, anon_sym_COMMA, - STATE(65), 1, + STATE(66), 1, sym_line_comment, - STATE(68), 1, - aux_sym_meta_repeat3, - ACTIONS(206), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2288] = 7, + STATE(122), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2396] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3870,94 +4108,157 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(210), 1, anon_sym_COMMA, - STATE(66), 1, + STATE(67), 1, sym_line_comment, - STATE(87), 1, + STATE(95), 1, aux_sym_meta_repeat1, - ACTIONS(202), 2, + ACTIONS(208), 2, ts_builtin_sym_end, anon_sym_LF, - [2311] = 7, + [2419] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(67), 1, + ACTIONS(139), 1, + ts_builtin_sym_end, + ACTIONS(141), 1, + anon_sym_LF, + STATE(39), 1, + aux_sym_program_repeat1, + STATE(68), 1, sym_line_comment, - STATE(121), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2334] = 7, + STATE(74), 1, + aux_sym_program_repeat2, + [2444] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, + ACTIONS(214), 1, anon_sym_COMMA, - STATE(68), 1, - sym_line_comment, - STATE(84), 1, - aux_sym_meta_repeat3, - ACTIONS(202), 2, + ACTIONS(212), 2, ts_builtin_sym_end, anon_sym_LF, - [2357] = 7, + STATE(69), 2, + sym_line_comment, + aux_sym_meta_repeat2, + [2465] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(212), 1, + ACTIONS(219), 1, anon_sym_COMMA, - STATE(69), 1, + ACTIONS(217), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(70), 2, sym_line_comment, - STATE(71), 1, - aux_sym_instruction_repeat1, - ACTIONS(114), 2, + aux_sym_meta_repeat1, + [2486] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(224), 1, + anon_sym_COMMA, + ACTIONS(222), 2, ts_builtin_sym_end, anon_sym_LF, - [2380] = 7, + STATE(71), 2, + sym_line_comment, + aux_sym_meta_repeat3, + [2507] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, + ACTIONS(227), 1, anon_sym_COMMA, - STATE(64), 1, - aux_sym_meta_repeat2, - STATE(70), 1, + ACTIONS(229), 1, + anon_sym_DASH, + ACTIONS(231), 1, + anon_sym_RBRACE, + STATE(72), 1, sym_line_comment, - ACTIONS(206), 2, + STATE(81), 1, + aux_sym_list_repeat1, + [2532] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(55), 1, + sym__reg, + STATE(73), 1, + sym_line_comment, + STATE(151), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2555] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(233), 1, ts_builtin_sym_end, + ACTIONS(235), 1, anon_sym_LF, - [2403] = 7, + STATE(41), 1, + aux_sym_program_repeat1, + STATE(74), 2, + sym_line_comment, + aux_sym_program_repeat2, + [2578] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(214), 1, + ACTIONS(241), 1, + anon_sym_RBRACE, + ACTIONS(238), 2, anon_sym_COMMA, - STATE(71), 1, + anon_sym_DASH, + STATE(75), 2, sym_line_comment, - STATE(80), 1, - aux_sym_instruction_repeat1, - ACTIONS(47), 2, - ts_builtin_sym_end, + aux_sym_list_repeat1, + [2599] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(141), 1, anon_sym_LF, - [2426] = 7, + ACTIONS(243), 1, + ts_builtin_sym_end, + STATE(37), 1, + aux_sym_program_repeat1, + STATE(68), 1, + aux_sym_program_repeat2, + STATE(76), 1, + sym_line_comment, + [2624] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3966,14 +4267,14 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(72), 1, + STATE(77), 1, sym_line_comment, - STATE(120), 1, + STATE(146), 1, sym_reg, ACTIONS(170), 2, sym_word, sym_address, - [2449] = 7, + [2647] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3982,30 +4283,62 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(73), 1, + STATE(78), 1, sym_line_comment, - STATE(104), 1, + STATE(101), 1, sym_reg, ACTIONS(170), 2, sym_word, sym_address, - [2472] = 7, + [2670] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(245), 1, anon_sym_COMMA, - STATE(66), 1, - aux_sym_meta_repeat1, - STATE(74), 1, + ACTIONS(249), 1, + anon_sym_RBRACK, + STATE(79), 1, + sym_line_comment, + ACTIONS(247), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2693] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(253), 1, + anon_sym_BANG, + STATE(80), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(251), 3, ts_builtin_sym_end, anon_sym_LF, - [2495] = 7, + anon_sym_COMMA, + [2714] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(172), 1, + anon_sym_RBRACE, + ACTIONS(229), 1, + anon_sym_DASH, + ACTIONS(255), 1, + anon_sym_COMMA, + STATE(75), 1, + aux_sym_list_repeat1, + STATE(81), 1, + sym_line_comment, + [2739] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4014,60 +4347,139 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(75), 1, + STATE(82), 1, sym_line_comment, STATE(102), 1, sym_reg, ACTIONS(170), 2, sym_word, sym_address, - [2518] = 7, + [2762] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(216), 1, - anon_sym_COMMA, - ACTIONS(220), 1, - anon_sym_RBRACK, - STATE(76), 1, + ACTIONS(55), 1, + sym__reg, + STATE(83), 1, sym_line_comment, - ACTIONS(218), 2, - anon_sym_DASH, - anon_sym_PLUS, - [2541] = 6, + STATE(147), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2785] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, + ACTIONS(259), 1, anon_sym_BANG, - STATE(77), 1, + STATE(84), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(257), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2562] = 6, + [2806] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(70), 1, + ACTIONS(261), 1, + anon_sym_COMMA, + STATE(85), 1, + sym_line_comment, + STATE(87), 1, + aux_sym_instruction_repeat1, + ACTIONS(47), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2829] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(66), 1, anon_sym_LPAREN, - STATE(78), 1, + STATE(86), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(64), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2583] = 7, + [2850] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(265), 1, + anon_sym_COMMA, + ACTIONS(263), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(87), 2, + sym_line_comment, + aux_sym_instruction_repeat1, + [2871] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(268), 1, + anon_sym_COMMA, + STATE(88), 1, + sym_line_comment, + STATE(94), 1, + aux_sym_meta_repeat2, + ACTIONS(208), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2894] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(272), 1, + anon_sym_COMMA, + STATE(71), 1, + aux_sym_meta_repeat3, + STATE(89), 1, + sym_line_comment, + ACTIONS(270), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2917] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(272), 1, + anon_sym_COMMA, + STATE(89), 1, + aux_sym_meta_repeat3, + STATE(90), 1, + sym_line_comment, + ACTIONS(208), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2940] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4076,663 +4488,810 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(76), 1, - sym_reg, STATE(79), 1, + sym_reg, + STATE(91), 1, sym_line_comment, ACTIONS(170), 2, sym_word, sym_address, - [2606] = 6, + [2963] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(228), 1, + ACTIONS(274), 1, anon_sym_COMMA, - ACTIONS(226), 2, + STATE(85), 1, + aux_sym_instruction_repeat1, + STATE(92), 1, + sym_line_comment, + ACTIONS(114), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(80), 2, + [2986] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(55), 1, + sym__reg, + STATE(93), 1, sym_line_comment, - aux_sym_instruction_repeat1, - [2627] = 8, + STATE(142), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [3009] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(141), 1, + ACTIONS(268), 1, + anon_sym_COMMA, + STATE(69), 1, + aux_sym_meta_repeat2, + STATE(94), 1, + sym_line_comment, + ACTIONS(270), 2, + ts_builtin_sym_end, anon_sym_LF, - ACTIONS(231), 1, + [3032] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(210), 1, + anon_sym_COMMA, + STATE(70), 1, + aux_sym_meta_repeat1, + STATE(95), 1, + sym_line_comment, + ACTIONS(270), 2, ts_builtin_sym_end, - STATE(37), 1, - aux_sym_program_repeat1, - STATE(81), 1, + anon_sym_LF, + [3055] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(96), 1, sym_line_comment, - STATE(85), 1, - aux_sym_program_repeat2, - [2652] = 8, + ACTIONS(217), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3073] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(195), 1, - anon_sym_DASH, - ACTIONS(233), 1, + STATE(97), 1, + sym_line_comment, + STATE(99), 1, + sym_string, + ACTIONS(53), 2, + aux_sym_string_token1, + aux_sym_string_token2, + [3093] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(98), 1, + sym_line_comment, + ACTIONS(212), 3, + ts_builtin_sym_end, + anon_sym_LF, anon_sym_COMMA, - ACTIONS(235), 1, + [3111] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(99), 1, + sym_line_comment, + ACTIONS(222), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3129] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(100), 1, + sym_line_comment, + ACTIONS(276), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3147] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(101), 1, + sym_line_comment, + ACTIONS(241), 3, + anon_sym_COMMA, + anon_sym_DASH, anon_sym_RBRACE, - STATE(62), 1, - aux_sym_list_repeat1, - STATE(82), 1, + [3165] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(280), 1, + anon_sym_RBRACK, + STATE(102), 1, sym_line_comment, - [2677] = 6, + ACTIONS(278), 2, + anon_sym_DASH, + anon_sym_PLUS, + [3185] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(239), 1, - anon_sym_BANG, - STATE(83), 1, + STATE(103), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(282), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2698] = 6, + [3203] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(243), 1, - anon_sym_COMMA, - ACTIONS(241), 2, + STATE(104), 1, + sym_line_comment, + ACTIONS(257), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(84), 2, - sym_line_comment, - aux_sym_meta_repeat3, - [2719] = 8, + anon_sym_COMMA, + [3221] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(139), 1, + STATE(105), 1, + sym_line_comment, + ACTIONS(284), 3, ts_builtin_sym_end, - ACTIONS(141), 1, anon_sym_LF, - STATE(38), 1, - aux_sym_program_repeat1, - STATE(61), 1, - aux_sym_program_repeat2, - STATE(85), 1, - sym_line_comment, - [2744] = 6, + anon_sym_COMMA, + [3239] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(248), 1, - anon_sym_COMMA, - ACTIONS(246), 2, + STATE(106), 1, + sym_line_comment, + ACTIONS(286), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(86), 2, - sym_line_comment, - aux_sym_meta_repeat2, - [2765] = 6, + anon_sym_COMMA, + [3257] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(253), 1, - anon_sym_COMMA, - ACTIONS(251), 2, + STATE(107), 1, + sym_line_comment, + ACTIONS(288), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(87), 2, - sym_line_comment, - aux_sym_meta_repeat1, - [2786] = 6, + anon_sym_COMMA, + [3275] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(88), 1, + STATE(108), 1, sym_line_comment, - STATE(99), 1, - sym_string, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - [2806] = 5, + ACTIONS(290), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3293] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(89), 1, + STATE(109), 1, sym_line_comment, - ACTIONS(256), 3, + ACTIONS(251), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2824] = 5, + [3311] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(90), 1, + STATE(110), 1, sym_line_comment, - ACTIONS(258), 3, + ACTIONS(292), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2842] = 5, + [3329] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(91), 1, + STATE(111), 1, sym_line_comment, - ACTIONS(226), 3, + ACTIONS(294), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2860] = 5, + [3347] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(92), 1, + STATE(112), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(296), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2878] = 5, + [3365] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(93), 1, + STATE(113), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(298), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2896] = 5, + [3383] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(94), 1, + STATE(114), 1, sym_line_comment, - ACTIONS(260), 3, + ACTIONS(300), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2914] = 5, + [3401] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(95), 1, + STATE(115), 1, sym_line_comment, - ACTIONS(246), 3, + ACTIONS(302), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2932] = 5, + [3419] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(96), 1, + STATE(116), 1, sym_line_comment, - ACTIONS(262), 3, + ACTIONS(304), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2950] = 5, + [3437] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(97), 1, + STATE(117), 1, sym_line_comment, - ACTIONS(251), 3, + ACTIONS(306), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2968] = 5, + [3455] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(98), 1, + STATE(118), 1, sym_line_comment, - ACTIONS(264), 3, + ACTIONS(308), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2986] = 5, + [3473] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(99), 1, + STATE(119), 1, sym_line_comment, - ACTIONS(241), 3, + ACTIONS(310), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3004] = 5, + [3491] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(100), 1, + STATE(120), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(263), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3022] = 5, + [3509] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(101), 1, + STATE(121), 1, sym_line_comment, - ACTIONS(266), 3, + ACTIONS(64), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3040] = 6, + [3527] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, - STATE(102), 1, + ACTIONS(312), 1, + anon_sym_COMMA, + ACTIONS(314), 1, + anon_sym_RPAREN, + STATE(122), 1, sym_line_comment, - ACTIONS(268), 2, - anon_sym_DASH, - anon_sym_PLUS, - [3060] = 5, + [3546] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(103), 1, + STATE(123), 1, sym_line_comment, - ACTIONS(272), 3, + ACTIONS(316), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [3078] = 5, + [3563] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(104), 1, + STATE(124), 1, sym_line_comment, - ACTIONS(200), 3, - anon_sym_COMMA, - anon_sym_DASH, - anon_sym_RBRACE, - [3096] = 6, + ACTIONS(208), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3580] = 6, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(318), 1, + anon_sym_COMMA, + ACTIONS(320), 1, + anon_sym_RPAREN, + STATE(125), 1, + sym_line_comment, + [3599] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(97), 1, - sym_int, - STATE(105), 1, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(126), 1, sym_line_comment, - [3115] = 5, + ACTIONS(322), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3616] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(106), 1, + STATE(127), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(233), 2, ts_builtin_sym_end, anon_sym_LF, - [3132] = 5, + [3633] = 6, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(49), 1, + anon_sym_POUND, + ACTIONS(324), 1, + aux_sym_int_token2, + STATE(128), 1, + sym_line_comment, + STATE(153), 1, + sym_int, + [3652] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(107), 1, + STATE(129), 1, sym_line_comment, - ACTIONS(276), 2, + ACTIONS(326), 2, ts_builtin_sym_end, anon_sym_LF, - [3149] = 5, + [3669] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(108), 1, + STATE(130), 1, sym_line_comment, - ACTIONS(278), 2, + ACTIONS(328), 2, ts_builtin_sym_end, anon_sym_LF, - [3166] = 6, + [3686] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(49), 1, anon_sym_POUND, - ACTIONS(274), 1, + ACTIONS(324), 1, aux_sym_int_token2, - STATE(109), 1, + STATE(131), 1, sym_line_comment, - STATE(123), 1, + STATE(135), 1, sym_int, - [3185] = 5, + [3705] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(110), 1, + STATE(132), 1, sym_line_comment, - ACTIONS(188), 2, + ACTIONS(330), 2, ts_builtin_sym_end, anon_sym_LF, - [3202] = 5, + [3722] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(111), 1, + STATE(133), 1, sym_line_comment, - ACTIONS(280), 2, + ACTIONS(332), 2, ts_builtin_sym_end, anon_sym_LF, - [3219] = 5, + [3739] = 6, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(49), 1, + anon_sym_POUND, + ACTIONS(324), 1, + aux_sym_int_token2, + STATE(96), 1, + sym_int, + STATE(134), 1, + sym_line_comment, + [3758] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(112), 1, + ACTIONS(280), 1, + anon_sym_RBRACK, + STATE(135), 1, sym_line_comment, - ACTIONS(282), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3236] = 5, + [3774] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(113), 1, + ACTIONS(334), 1, + sym_word, + STATE(136), 1, sym_line_comment, - ACTIONS(284), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3253] = 5, + [3790] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(114), 1, + ACTIONS(336), 1, + anon_sym_RPAREN, + STATE(137), 1, sym_line_comment, - ACTIONS(286), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3270] = 6, + [3806] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(115), 1, + ACTIONS(338), 1, + anon_sym_ptr, + STATE(138), 1, sym_line_comment, - STATE(122), 1, - sym_int, - [3289] = 5, - ACTIONS(288), 1, + [3822] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(290), 1, - aux_sym_line_comment_token1, - ACTIONS(292), 1, + ACTIONS(5), 1, aux_sym_line_comment_token2, - ACTIONS(294), 1, + ACTIONS(7), 1, sym_block_comment, - STATE(116), 1, + ACTIONS(340), 1, + anon_sym_RPAREN, + STATE(139), 1, sym_line_comment, - [3305] = 5, + [3838] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(296), 1, - anon_sym_RBRACK, - STATE(117), 1, + ACTIONS(342), 1, + sym_word, + STATE(140), 1, sym_line_comment, - [3321] = 5, + [3854] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(298), 1, - anon_sym_LBRACK, - STATE(118), 1, + ACTIONS(344), 1, + anon_sym_rel, + STATE(141), 1, sym_line_comment, - [3337] = 5, + [3870] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(300), 1, - anon_sym_LBRACK, - STATE(119), 1, + ACTIONS(346), 1, + anon_sym_COMMA, + STATE(142), 1, sym_line_comment, - [3353] = 5, + [3886] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, + ACTIONS(348), 1, anon_sym_RPAREN, - STATE(120), 1, + STATE(143), 1, sym_line_comment, - [3369] = 5, + [3902] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(302), 1, - anon_sym_RPAREN, - STATE(121), 1, + ACTIONS(350), 1, + anon_sym_LBRACK, + STATE(144), 1, sym_line_comment, - [3385] = 5, + [3918] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, - STATE(122), 1, + ACTIONS(352), 1, + sym_float, + STATE(145), 1, sym_line_comment, - [3401] = 5, + [3934] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, - STATE(123), 1, + ACTIONS(354), 1, + anon_sym_COMMA, + STATE(146), 1, sym_line_comment, - [3417] = 5, + [3950] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(306), 1, - sym_float, - STATE(124), 1, + ACTIONS(356), 1, + anon_sym_COMMA, + STATE(147), 1, sym_line_comment, - [3433] = 5, + [3966] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(308), 1, + ACTIONS(358), 1, aux_sym_int_token1, - STATE(125), 1, + STATE(148), 1, sym_line_comment, - [3449] = 5, + [3982] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(310), 1, - anon_sym_rel, - STATE(126), 1, + ACTIONS(360), 1, + anon_sym_RPAREN, + STATE(149), 1, sym_line_comment, - [3465] = 5, + [3998] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(312), 1, - anon_sym_ptr, - STATE(127), 1, + ACTIONS(362), 1, + anon_sym_RBRACK, + STATE(150), 1, sym_line_comment, - [3481] = 5, + [4014] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(314), 1, - anon_sym_RPAREN, - STATE(128), 1, + ACTIONS(364), 1, + anon_sym_COMMA, + STATE(151), 1, sym_line_comment, - [3497] = 5, + [4030] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(316), 1, + ACTIONS(366), 1, anon_sym_RPAREN, - STATE(129), 1, + STATE(152), 1, sym_line_comment, - [3513] = 5, + [4046] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(318), 1, - ts_builtin_sym_end, - STATE(130), 1, + ACTIONS(368), 1, + anon_sym_RBRACK, + STATE(153), 1, + sym_line_comment, + [4062] = 5, + ACTIONS(370), 1, + anon_sym_POUND, + ACTIONS(372), 1, + aux_sym_line_comment_token1, + ACTIONS(374), 1, + aux_sym_line_comment_token2, + ACTIONS(376), 1, + sym_block_comment, + STATE(154), 1, + sym_line_comment, + [4078] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(378), 1, + anon_sym_RPAREN, + STATE(155), 1, sym_line_comment, - [3529] = 5, + [4094] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4741,346 +5300,402 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(23), 1, anon_sym_COLON, - STATE(131), 1, + STATE(156), 1, sym_line_comment, - [3545] = 5, + [4110] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(320), 1, - sym_word, - STATE(132), 1, + ACTIONS(380), 1, + ts_builtin_sym_end, + STATE(157), 1, sym_line_comment, - [3561] = 5, + [4126] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(322), 1, - sym_word, - STATE(133), 1, + ACTIONS(382), 1, + aux_sym_int_token1, + STATE(158), 1, sym_line_comment, - [3577] = 5, + [4142] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(324), 1, - aux_sym_int_token1, - STATE(134), 1, + ACTIONS(384), 1, + anon_sym_LBRACK, + STATE(159), 1, sym_line_comment, - [3593] = 1, - ACTIONS(326), 1, + [4158] = 1, + ACTIONS(386), 1, ts_builtin_sym_end, - [3597] = 1, - ACTIONS(328), 1, + [4162] = 1, + ACTIONS(388), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(3)] = 0, - [SMALL_STATE(4)] = 69, - [SMALL_STATE(5)] = 138, - [SMALL_STATE(6)] = 203, - [SMALL_STATE(7)] = 238, - [SMALL_STATE(8)] = 279, - [SMALL_STATE(9)] = 314, - [SMALL_STATE(10)] = 348, - [SMALL_STATE(11)] = 386, - [SMALL_STATE(12)] = 420, - [SMALL_STATE(13)] = 454, - [SMALL_STATE(14)] = 493, - [SMALL_STATE(15)] = 536, - [SMALL_STATE(16)] = 569, - [SMALL_STATE(17)] = 606, - [SMALL_STATE(18)] = 639, - [SMALL_STATE(19)] = 686, - [SMALL_STATE(20)] = 721, - [SMALL_STATE(21)] = 769, - [SMALL_STATE(22)] = 815, - [SMALL_STATE(23)] = 866, - [SMALL_STATE(24)] = 914, - [SMALL_STATE(25)] = 955, - [SMALL_STATE(26)] = 996, - [SMALL_STATE(27)] = 1037, - [SMALL_STATE(28)] = 1078, - [SMALL_STATE(29)] = 1119, - [SMALL_STATE(30)] = 1160, - [SMALL_STATE(31)] = 1201, - [SMALL_STATE(32)] = 1242, - [SMALL_STATE(33)] = 1283, - [SMALL_STATE(34)] = 1324, - [SMALL_STATE(35)] = 1365, - [SMALL_STATE(36)] = 1396, - [SMALL_STATE(37)] = 1426, - [SMALL_STATE(38)] = 1472, - [SMALL_STATE(39)] = 1518, - [SMALL_STATE(40)] = 1548, - [SMALL_STATE(41)] = 1578, - [SMALL_STATE(42)] = 1621, - [SMALL_STATE(43)] = 1649, - [SMALL_STATE(44)] = 1676, - [SMALL_STATE(45)] = 1705, - [SMALL_STATE(46)] = 1736, - [SMALL_STATE(47)] = 1773, - [SMALL_STATE(48)] = 1806, - [SMALL_STATE(49)] = 1841, - [SMALL_STATE(50)] = 1868, - [SMALL_STATE(51)] = 1900, - [SMALL_STATE(52)] = 1932, - [SMALL_STATE(53)] = 1959, - [SMALL_STATE(54)] = 1983, - [SMALL_STATE(55)] = 2013, - [SMALL_STATE(56)] = 2043, - [SMALL_STATE(57)] = 2069, - [SMALL_STATE(58)] = 2095, - [SMALL_STATE(59)] = 2121, - [SMALL_STATE(60)] = 2147, - [SMALL_STATE(61)] = 2173, - [SMALL_STATE(62)] = 2196, - [SMALL_STATE(63)] = 2221, - [SMALL_STATE(64)] = 2242, - [SMALL_STATE(65)] = 2265, - [SMALL_STATE(66)] = 2288, - [SMALL_STATE(67)] = 2311, - [SMALL_STATE(68)] = 2334, - [SMALL_STATE(69)] = 2357, - [SMALL_STATE(70)] = 2380, - [SMALL_STATE(71)] = 2403, - [SMALL_STATE(72)] = 2426, - [SMALL_STATE(73)] = 2449, - [SMALL_STATE(74)] = 2472, - [SMALL_STATE(75)] = 2495, - [SMALL_STATE(76)] = 2518, - [SMALL_STATE(77)] = 2541, - [SMALL_STATE(78)] = 2562, - [SMALL_STATE(79)] = 2583, - [SMALL_STATE(80)] = 2606, - [SMALL_STATE(81)] = 2627, - [SMALL_STATE(82)] = 2652, - [SMALL_STATE(83)] = 2677, - [SMALL_STATE(84)] = 2698, - [SMALL_STATE(85)] = 2719, - [SMALL_STATE(86)] = 2744, - [SMALL_STATE(87)] = 2765, - [SMALL_STATE(88)] = 2786, - [SMALL_STATE(89)] = 2806, - [SMALL_STATE(90)] = 2824, - [SMALL_STATE(91)] = 2842, - [SMALL_STATE(92)] = 2860, - [SMALL_STATE(93)] = 2878, - [SMALL_STATE(94)] = 2896, - [SMALL_STATE(95)] = 2914, - [SMALL_STATE(96)] = 2932, - [SMALL_STATE(97)] = 2950, - [SMALL_STATE(98)] = 2968, - [SMALL_STATE(99)] = 2986, - [SMALL_STATE(100)] = 3004, - [SMALL_STATE(101)] = 3022, - [SMALL_STATE(102)] = 3040, - [SMALL_STATE(103)] = 3060, - [SMALL_STATE(104)] = 3078, - [SMALL_STATE(105)] = 3096, - [SMALL_STATE(106)] = 3115, - [SMALL_STATE(107)] = 3132, - [SMALL_STATE(108)] = 3149, - [SMALL_STATE(109)] = 3166, - [SMALL_STATE(110)] = 3185, - [SMALL_STATE(111)] = 3202, - [SMALL_STATE(112)] = 3219, - [SMALL_STATE(113)] = 3236, - [SMALL_STATE(114)] = 3253, - [SMALL_STATE(115)] = 3270, - [SMALL_STATE(116)] = 3289, - [SMALL_STATE(117)] = 3305, - [SMALL_STATE(118)] = 3321, - [SMALL_STATE(119)] = 3337, - [SMALL_STATE(120)] = 3353, - [SMALL_STATE(121)] = 3369, - [SMALL_STATE(122)] = 3385, - [SMALL_STATE(123)] = 3401, - [SMALL_STATE(124)] = 3417, - [SMALL_STATE(125)] = 3433, - [SMALL_STATE(126)] = 3449, - [SMALL_STATE(127)] = 3465, - [SMALL_STATE(128)] = 3481, - [SMALL_STATE(129)] = 3497, - [SMALL_STATE(130)] = 3513, - [SMALL_STATE(131)] = 3529, - [SMALL_STATE(132)] = 3545, - [SMALL_STATE(133)] = 3561, - [SMALL_STATE(134)] = 3577, - [SMALL_STATE(135)] = 3593, - [SMALL_STATE(136)] = 3597, + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 83, + [SMALL_STATE(4)] = 152, + [SMALL_STATE(5)] = 221, + [SMALL_STATE(6)] = 286, + [SMALL_STATE(7)] = 327, + [SMALL_STATE(8)] = 362, + [SMALL_STATE(9)] = 397, + [SMALL_STATE(10)] = 435, + [SMALL_STATE(11)] = 469, + [SMALL_STATE(12)] = 503, + [SMALL_STATE(13)] = 537, + [SMALL_STATE(14)] = 584, + [SMALL_STATE(15)] = 617, + [SMALL_STATE(16)] = 650, + [SMALL_STATE(17)] = 687, + [SMALL_STATE(18)] = 726, + [SMALL_STATE(19)] = 761, + [SMALL_STATE(20)] = 804, + [SMALL_STATE(21)] = 852, + [SMALL_STATE(22)] = 898, + [SMALL_STATE(23)] = 949, + [SMALL_STATE(24)] = 997, + [SMALL_STATE(25)] = 1038, + [SMALL_STATE(26)] = 1079, + [SMALL_STATE(27)] = 1120, + [SMALL_STATE(28)] = 1161, + [SMALL_STATE(29)] = 1202, + [SMALL_STATE(30)] = 1233, + [SMALL_STATE(31)] = 1274, + [SMALL_STATE(32)] = 1315, + [SMALL_STATE(33)] = 1356, + [SMALL_STATE(34)] = 1397, + [SMALL_STATE(35)] = 1438, + [SMALL_STATE(36)] = 1479, + [SMALL_STATE(37)] = 1509, + [SMALL_STATE(38)] = 1555, + [SMALL_STATE(39)] = 1585, + [SMALL_STATE(40)] = 1631, + [SMALL_STATE(41)] = 1661, + [SMALL_STATE(42)] = 1704, + [SMALL_STATE(43)] = 1732, + [SMALL_STATE(44)] = 1759, + [SMALL_STATE(45)] = 1794, + [SMALL_STATE(46)] = 1831, + [SMALL_STATE(47)] = 1864, + [SMALL_STATE(48)] = 1895, + [SMALL_STATE(49)] = 1924, + [SMALL_STATE(50)] = 1951, + [SMALL_STATE(51)] = 1983, + [SMALL_STATE(52)] = 2015, + [SMALL_STATE(53)] = 2042, + [SMALL_STATE(54)] = 2066, + [SMALL_STATE(55)] = 2096, + [SMALL_STATE(56)] = 2126, + [SMALL_STATE(57)] = 2152, + [SMALL_STATE(58)] = 2174, + [SMALL_STATE(59)] = 2200, + [SMALL_STATE(60)] = 2222, + [SMALL_STATE(61)] = 2244, + [SMALL_STATE(62)] = 2266, + [SMALL_STATE(63)] = 2292, + [SMALL_STATE(64)] = 2318, + [SMALL_STATE(65)] = 2344, + [SMALL_STATE(66)] = 2370, + [SMALL_STATE(67)] = 2396, + [SMALL_STATE(68)] = 2419, + [SMALL_STATE(69)] = 2444, + [SMALL_STATE(70)] = 2465, + [SMALL_STATE(71)] = 2486, + [SMALL_STATE(72)] = 2507, + [SMALL_STATE(73)] = 2532, + [SMALL_STATE(74)] = 2555, + [SMALL_STATE(75)] = 2578, + [SMALL_STATE(76)] = 2599, + [SMALL_STATE(77)] = 2624, + [SMALL_STATE(78)] = 2647, + [SMALL_STATE(79)] = 2670, + [SMALL_STATE(80)] = 2693, + [SMALL_STATE(81)] = 2714, + [SMALL_STATE(82)] = 2739, + [SMALL_STATE(83)] = 2762, + [SMALL_STATE(84)] = 2785, + [SMALL_STATE(85)] = 2806, + [SMALL_STATE(86)] = 2829, + [SMALL_STATE(87)] = 2850, + [SMALL_STATE(88)] = 2871, + [SMALL_STATE(89)] = 2894, + [SMALL_STATE(90)] = 2917, + [SMALL_STATE(91)] = 2940, + [SMALL_STATE(92)] = 2963, + [SMALL_STATE(93)] = 2986, + [SMALL_STATE(94)] = 3009, + [SMALL_STATE(95)] = 3032, + [SMALL_STATE(96)] = 3055, + [SMALL_STATE(97)] = 3073, + [SMALL_STATE(98)] = 3093, + [SMALL_STATE(99)] = 3111, + [SMALL_STATE(100)] = 3129, + [SMALL_STATE(101)] = 3147, + [SMALL_STATE(102)] = 3165, + [SMALL_STATE(103)] = 3185, + [SMALL_STATE(104)] = 3203, + [SMALL_STATE(105)] = 3221, + [SMALL_STATE(106)] = 3239, + [SMALL_STATE(107)] = 3257, + [SMALL_STATE(108)] = 3275, + [SMALL_STATE(109)] = 3293, + [SMALL_STATE(110)] = 3311, + [SMALL_STATE(111)] = 3329, + [SMALL_STATE(112)] = 3347, + [SMALL_STATE(113)] = 3365, + [SMALL_STATE(114)] = 3383, + [SMALL_STATE(115)] = 3401, + [SMALL_STATE(116)] = 3419, + [SMALL_STATE(117)] = 3437, + [SMALL_STATE(118)] = 3455, + [SMALL_STATE(119)] = 3473, + [SMALL_STATE(120)] = 3491, + [SMALL_STATE(121)] = 3509, + [SMALL_STATE(122)] = 3527, + [SMALL_STATE(123)] = 3546, + [SMALL_STATE(124)] = 3563, + [SMALL_STATE(125)] = 3580, + [SMALL_STATE(126)] = 3599, + [SMALL_STATE(127)] = 3616, + [SMALL_STATE(128)] = 3633, + [SMALL_STATE(129)] = 3652, + [SMALL_STATE(130)] = 3669, + [SMALL_STATE(131)] = 3686, + [SMALL_STATE(132)] = 3705, + [SMALL_STATE(133)] = 3722, + [SMALL_STATE(134)] = 3739, + [SMALL_STATE(135)] = 3758, + [SMALL_STATE(136)] = 3774, + [SMALL_STATE(137)] = 3790, + [SMALL_STATE(138)] = 3806, + [SMALL_STATE(139)] = 3822, + [SMALL_STATE(140)] = 3838, + [SMALL_STATE(141)] = 3854, + [SMALL_STATE(142)] = 3870, + [SMALL_STATE(143)] = 3886, + [SMALL_STATE(144)] = 3902, + [SMALL_STATE(145)] = 3918, + [SMALL_STATE(146)] = 3934, + [SMALL_STATE(147)] = 3950, + [SMALL_STATE(148)] = 3966, + [SMALL_STATE(149)] = 3982, + [SMALL_STATE(150)] = 3998, + [SMALL_STATE(151)] = 4014, + [SMALL_STATE(152)] = 4030, + [SMALL_STATE(153)] = 4046, + [SMALL_STATE(154)] = 4062, + [SMALL_STATE(155)] = 4078, + [SMALL_STATE(156)] = 4094, + [SMALL_STATE(157)] = 4110, + [SMALL_STATE(158)] = 4126, + [SMALL_STATE(159)] = 4142, + [SMALL_STATE(160)] = 4158, + [SMALL_STATE(161)] = 4162, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(156), [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 1, 0, 1), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), + [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), + [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), - [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(125), + [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(148), [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(8), [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(12), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), - [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(10), [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(53), [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), - [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(73), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), - [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), - [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(88), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(124), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), - [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(105), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), - [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [318] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), + [214] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(145), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), + [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(134), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), + [224] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(97), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), + [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), + [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(78), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), + [265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 6), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 7), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 8), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 9), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 10), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 11), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 12), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 13), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 8, 0, 14), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), + [372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), + [374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [376] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [380] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), }; #ifdef __cplusplus @@ -5096,7 +5711,7 @@ extern "C" { TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { static const TSLanguage language = { - .version = LANGUAGE_VERSION, + .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, @@ -5104,6 +5719,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .state_count = STATE_COUNT, .large_state_count = LARGE_STATE_COUNT, .production_id_count = PRODUCTION_ID_COUNT, + .supertype_count = SUPERTYPE_COUNT, .field_count = FIELD_COUNT, .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, .parse_table = &ts_parse_table[0][0], @@ -5118,9 +5734,16 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], - .lex_modes = ts_lex_modes, + .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, + .name = "asm", + .max_reserved_word_set_size = 0, + .metadata = { + .major_version = 0, + .minor_version = 1, + .patch_version = 0, + }, }; return &language; } diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h index 1f4466d7..1abdd120 100644 --- a/src/tree_sitter/alloc.h +++ b/src/tree_sitter/alloc.h @@ -12,10 +12,10 @@ extern "C" { // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR -extern void *(*ts_current_malloc)(size_t); -extern void *(*ts_current_calloc)(size_t, size_t); -extern void *(*ts_current_realloc)(void *, size_t); -extern void (*ts_current_free)(void *); +extern void *(*ts_current_malloc)(size_t size); +extern void *(*ts_current_calloc)(size_t count, size_t size); +extern void *(*ts_current_realloc)(void *ptr, size_t size); +extern void (*ts_current_free)(void *ptr); #ifndef ts_malloc #define ts_malloc ts_current_malloc diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h index 15a3b233..56fc8cd4 100644 --- a/src/tree_sitter/array.h +++ b/src/tree_sitter/array.h @@ -14,6 +14,7 @@ extern "C" { #include #ifdef _MSC_VER +#pragma warning(push) #pragma warning(disable : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push @@ -51,67 +52,96 @@ extern "C" { /// Reserve `new_capacity` elements of space in the array. If `new_capacity` is /// less than the array's current capacity, this function has no effect. -#define array_reserve(self, new_capacity) \ - _array__reserve((Array *)(self), array_elem_size(self), new_capacity) +#define array_reserve(self, new_capacity) \ + ((self)->contents = _array__reserve( \ + (void *)(self)->contents, &(self)->capacity, \ + array_elem_size(self), new_capacity) \ + ) /// Free any memory allocated for this array. Note that this does not free any /// memory allocated for the array's contents. -#define array_delete(self) _array__delete((Array *)(self)) +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) /// Push a new `element` onto the end of the array. -#define array_push(self, element) \ - (_array__grow((Array *)(self), 1, array_elem_size(self)), \ - (self)->contents[(self)->size++] = (element)) +#define array_push(self, element) \ + do { \ + (self)->contents = _array__grow( \ + (void *)(self)->contents, (self)->size, &(self)->capacity, \ + 1, array_elem_size(self) \ + ); \ + (self)->contents[(self)->size++] = (element); \ + } while(0) /// Increase the array's size by `count` elements. /// New elements are zero-initialized. -#define array_grow_by(self, count) \ - do { \ - if ((count) == 0) break; \ - _array__grow((Array *)(self), count, array_elem_size(self)); \ +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + (self)->contents = _array__grow( \ + (self)->contents, (self)->size, &(self)->capacity, \ + count, array_elem_size(self) \ + ); \ memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ - (self)->size += (count); \ + (self)->size += (count); \ } while (0) /// Append all elements from one array to the end of another. -#define array_push_all(self, other) \ +#define array_push_all(self, other) \ array_extend((self), (other)->size, (other)->contents) /// Append `count` elements to the end of the array, reading their values from the /// `contents` pointer. -#define array_extend(self, count, contents) \ - _array__splice( \ - (Array *)(self), array_elem_size(self), (self)->size, \ - 0, count, contents \ +#define array_extend(self, count, other_contents) \ + (self)->contents = _array__splice( \ + (void*)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), (self)->size, 0, count, other_contents \ ) /// Remove `old_count` elements from the array starting at the given `index`. At /// the same index, insert `new_count` new elements, reading their values from the /// `new_contents` pointer. -#define array_splice(self, _index, old_count, new_count, new_contents) \ - _array__splice( \ - (Array *)(self), array_elem_size(self), _index, \ - old_count, new_count, new_contents \ +#define array_splice(self, _index, old_count, new_count, new_contents) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), _index, old_count, new_count, new_contents \ ) /// Insert one `element` into the array at the given `index`. -#define array_insert(self, _index, element) \ - _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) +#define array_insert(self, _index, element) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), _index, 0, 1, &(element) \ + ) /// Remove one element from the array at the given `index`. #define array_erase(self, _index) \ - _array__erase((Array *)(self), array_elem_size(self), _index) + _array__erase((void *)(self)->contents, &(self)->size, array_elem_size(self), _index) /// Pop the last element off the array, returning the element by value. #define array_pop(self) ((self)->contents[--(self)->size]) /// Assign the contents of one array to another, reallocating if necessary. -#define array_assign(self, other) \ - _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) +#define array_assign(self, other) \ + (self)->contents = _array__assign( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + (const void *)(other)->contents, (other)->size, array_elem_size(self) \ + ) /// Swap one array with another -#define array_swap(self, other) \ - _array__swap((Array *)(self), (Array *)(other)) +#define array_swap(self, other) \ + do { \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array_swap_tmp; \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ + } while (0) /// Get the size of the array contents #define array_elem_size(self) (sizeof *(self)->contents) @@ -156,82 +186,90 @@ extern "C" { // Private -typedef Array(void) Array; - -/// This is not what you're looking for, see `array_delete`. -static inline void _array__delete(Array *self) { - if (self->contents) { - ts_free(self->contents); - self->contents = NULL; - self->size = 0; - self->capacity = 0; - } -} +// Pointers to individual `Array` fields (rather than the entire `Array` itself) +// are passed to the various `_array__*` functions below to address strict aliasing +// violations that arises when the _entire_ `Array` struct is passed as `Array(void)*`. +// +// The `Array` type itself was not altered as a solution in order to avoid breakage +// with existing consumers (in particular, parsers with external scanners). /// This is not what you're looking for, see `array_erase`. -static inline void _array__erase(Array *self, size_t element_size, - uint32_t index) { - assert(index < self->size); - char *contents = (char *)self->contents; +static inline void _array__erase(void* self_contents, uint32_t *size, + size_t element_size, uint32_t index) { + assert(index < *size); + char *contents = (char *)self_contents; memmove(contents + index * element_size, contents + (index + 1) * element_size, - (self->size - index - 1) * element_size); - self->size--; + (*size - index - 1) * element_size); + (*size)--; } /// This is not what you're looking for, see `array_reserve`. -static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { - if (new_capacity > self->capacity) { - if (self->contents) { - self->contents = ts_realloc(self->contents, new_capacity * element_size); +static inline void *_array__reserve(void *contents, uint32_t *capacity, + size_t element_size, uint32_t new_capacity) { + void *new_contents = contents; + if (new_capacity > *capacity) { + if (contents) { + new_contents = ts_realloc(contents, new_capacity * element_size); } else { - self->contents = ts_malloc(new_capacity * element_size); + new_contents = ts_malloc(new_capacity * element_size); } - self->capacity = new_capacity; + *capacity = new_capacity; } + return new_contents; } /// This is not what you're looking for, see `array_assign`. -static inline void _array__assign(Array *self, const Array *other, size_t element_size) { - _array__reserve(self, element_size, other->size); - self->size = other->size; - memcpy(self->contents, other->contents, self->size * element_size); +static inline void *_array__assign(void* self_contents, uint32_t *self_size, uint32_t *self_capacity, + const void *other_contents, uint32_t other_size, size_t element_size) { + void *new_contents = _array__reserve(self_contents, self_capacity, element_size, other_size); + *self_size = other_size; + memcpy(new_contents, other_contents, *self_size * element_size); + return new_contents; } /// This is not what you're looking for, see `array_swap`. -static inline void _array__swap(Array *self, Array *other) { - Array swap = *other; - *other = *self; - *self = swap; +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; } /// This is not what you're looking for, see `array_push` or `array_grow_by`. -static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { - uint32_t new_size = self->size + count; - if (new_size > self->capacity) { - uint32_t new_capacity = self->capacity * 2; +static inline void *_array__grow(void *contents, uint32_t size, uint32_t *capacity, + uint32_t count, size_t element_size) { + void *new_contents = contents; + uint32_t new_size = size + count; + if (new_size > *capacity) { + uint32_t new_capacity = *capacity * 2; if (new_capacity < 8) new_capacity = 8; if (new_capacity < new_size) new_capacity = new_size; - _array__reserve(self, element_size, new_capacity); + new_contents = _array__reserve(contents, capacity, element_size, new_capacity); } + return new_contents; } /// This is not what you're looking for, see `array_splice`. -static inline void _array__splice(Array *self, size_t element_size, +static inline void *_array__splice(void *self_contents, uint32_t *size, uint32_t *capacity, + size_t element_size, uint32_t index, uint32_t old_count, uint32_t new_count, const void *elements) { - uint32_t new_size = self->size + new_count - old_count; + uint32_t new_size = *size + new_count - old_count; uint32_t old_end = index + old_count; uint32_t new_end = index + new_count; - assert(old_end <= self->size); + assert(old_end <= *size); - _array__reserve(self, element_size, new_size); + void *new_contents = _array__reserve(self_contents, capacity, element_size, new_size); - char *contents = (char *)self->contents; - if (self->size > old_end) { + char *contents = (char *)new_contents; + if (*size > old_end) { memmove( contents + new_end * element_size, contents + old_end * element_size, - (self->size - old_end) * element_size + (*size - old_end) * element_size ); } if (new_count > 0) { @@ -249,7 +287,9 @@ static inline void _array__splice(Array *self, size_t element_size, ); } } - self->size += new_count - old_count; + *size += new_count - old_count; + + return new_contents; } /// A binary search routine, based on Rust's `std::slice::binary_search_by`. @@ -278,7 +318,7 @@ static inline void _array__splice(Array *self, size_t element_size, #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER -#pragma warning(default : 4101) +#pragma warning(pop) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17f0e94b..858107de 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -18,6 +18,11 @@ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; +typedef struct TSLanguageMetadata { + uint8_t major_version; + uint8_t minor_version; + uint8_t patch_version; +} TSLanguageMetadata; #endif typedef struct { @@ -26,10 +31,11 @@ typedef struct { bool inherited; } TSFieldMapEntry; +// Used to index the field and supertype maps. typedef struct { uint16_t index; uint16_t length; -} TSFieldMapSlice; +} TSMapSlice; typedef struct { bool visible; @@ -47,6 +53,7 @@ struct TSLexer { uint32_t (*get_column)(TSLexer *); bool (*is_at_included_range_start)(const TSLexer *); bool (*eof)(const TSLexer *); + void (*log)(const TSLexer *, const char *, ...); }; typedef enum { @@ -78,6 +85,12 @@ typedef struct { uint16_t external_lex_state; } TSLexMode; +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; + uint16_t reserved_word_set_id; +} TSLexerMode; + typedef union { TSParseAction action; struct { @@ -92,7 +105,7 @@ typedef struct { } TSCharacterRange; struct TSLanguage { - uint32_t version; + uint32_t abi_version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; @@ -108,13 +121,13 @@ struct TSLanguage { const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; - const TSFieldMapSlice *field_map_slices; + const TSMapSlice *field_map_slices; const TSFieldMapEntry *field_map_entries; const TSSymbolMetadata *symbol_metadata; const TSSymbol *public_symbol_map; const uint16_t *alias_map; const TSSymbol *alias_sequences; - const TSLexMode *lex_modes; + const TSLexerMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; @@ -128,15 +141,23 @@ struct TSLanguage { void (*deserialize)(void *, const char *, unsigned); } external_scanner; const TSStateId *primary_state_ids; + const char *name; + const TSSymbol *reserved_words; + uint16_t max_reserved_word_set_size; + uint32_t supertype_count; + const TSSymbol *supertype_symbols; + const TSMapSlice *supertype_map_slices; + const TSSymbol *supertype_map_entries; + TSLanguageMetadata metadata; }; -static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { +static inline bool set_contains(const TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { uint32_t index = 0; uint32_t size = len - index; while (size > 1) { uint32_t half_size = size / 2; uint32_t mid_index = index + half_size; - TSCharacterRange *range = &ranges[mid_index]; + const TSCharacterRange *range = &ranges[mid_index]; if (lookahead >= range->start && lookahead <= range->end) { return true; } else if (lookahead > range->end) { @@ -144,7 +165,7 @@ static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t } size -= half_size; } - TSCharacterRange *range = &ranges[index]; + const TSCharacterRange *range = &ranges[index]; return (lookahead >= range->start && lookahead <= range->end); } diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index aeb8f16c..1b9c18da 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -36,7 +36,7 @@ movzbl -1(%rbp), %eax (instruction kind: (word) (ptr - (int) + disp: (int) (reg)) (ident (reg)))) @@ -189,3 +189,170 @@ LDR A1, =addr (ident (reg (address))))) + +========== +Instruction -- Memory addressing source omission of DISP and SCALE (x86 AT&T) +========== +leaq (%rdi, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (reg) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of SCALE (x86 AT&T) +========== +leaq 5(%rdi, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (int) + (reg) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of BASE and SCALE (x86 AT&T) +========== +leaq 5(, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (int) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of DISP, BASE and SCALE (x86 AT&T) +========== +leaq (, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of DISP and BASE (x86 AT&T) +========== +leaq (, %rdi, 4), %rdi +--- + +(program + (instruction + (word) + (ptr + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of BASE (x86 AT&T) +========== +leaq 4(, %rdi, 4), %rdi +--- + +(program + (instruction + (word) + (ptr + (int) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing destination omission of DISP and SCALE (x86 AT&T) +========== +movq $rax, (%rdi, %rdi, ) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (reg) + (reg)))) + +========== +Instruction -- Memory addressing destination omission of DISP, BASE and SCALE (x86 AT&T) +========== +movq $rax, (, %rdi, ) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (reg)))) + +========== +Instruction -- Memory addressing destination omission of BASE and SCALE (x86 AT&T) +========== +movq $rax, 1(, %rdi, ) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (int) + (reg)))) + +========== +Instruction -- Memory addressing destination omission of DISP and BASE (x86 AT&T) +========== +movq $rax, (, %rdi, 8) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (reg)))) + +========== +Instruction -- Memory addressing destination omission of BASE (x86 AT&T) +========== +movq $rax, 4(, %rdi, 8) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (int) + (reg))))