From b86203d205a1e7df0d8a412a5bb3b7c094131ea0 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Sun, 27 Apr 2014 21:45:05 -0700 Subject: [PATCH] Extract shared helper functions from example grammars --- examples/grammars/arithmetic.cc | 24 +- examples/grammars/golang.cc | 39 +- examples/grammars/helpers.cc | 42 + examples/grammars/helpers.h | 19 + examples/grammars/javascript.cc | 41 +- examples/grammars/json.cc | 24 +- examples/parsers/golang.c | 3203 ++++++++++++---------- src/compiler/build_tables/follow_sets.cc | 3 +- 8 files changed, 1888 insertions(+), 1507 deletions(-) create mode 100644 examples/grammars/helpers.cc create mode 100644 examples/grammars/helpers.h diff --git a/examples/grammars/arithmetic.cc b/examples/grammars/arithmetic.cc index 205aad97..cedb91f6 100644 --- a/examples/grammars/arithmetic.cc +++ b/examples/grammars/arithmetic.cc @@ -1,16 +1,9 @@ #include "tree_sitter/compiler.h" +#include "helpers.h" namespace tree_sitter_examples { using tree_sitter::Grammar; using namespace tree_sitter::rules; - using std::string; - - static rule_ptr infix_op(string op, int precedence) { - return prec(precedence, seq({ - sym("expression"), - str(op), - sym("expression") })); - } extern const Grammar arithmetic({ { "expression", choice({ @@ -23,15 +16,12 @@ namespace tree_sitter_examples { sym("number"), sym("variable") }) }, - { "sum", infix_op("+", 1) }, - { "difference", infix_op("-", 1) }, - { "product", infix_op("*", 2) }, - { "quotient", infix_op("/", 2) }, - { "exponent", infix_op("^", 3) }, - { "group", seq({ - str("("), - err(sym("expression")), - str(")") }) }, + { "sum", infix(1, "+") }, + { "difference", infix(1, "-") }, + { "product", infix(2, "*") }, + { "quotient", infix(2, "/") }, + { "exponent", infix(3, "^") }, + { "group", in_parens(err(sym("expression"))) }, { "number", pattern("\\d+") }, { "variable", pattern("\\a[\\w_]*") }, diff --git a/examples/grammars/golang.cc b/examples/grammars/golang.cc index 2ea7f9bc..09a5787c 100644 --- a/examples/grammars/golang.cc +++ b/examples/grammars/golang.cc @@ -1,25 +1,10 @@ #include "tree_sitter/compiler.h" +#include "helpers.h" namespace tree_sitter_examples { using tree_sitter::Grammar; using namespace tree_sitter::rules; - static rule_ptr comma_sep1(rule_ptr element) { - return seq({ element, repeat(seq({ str(","), element })) }); - } - - static rule_ptr comma_sep(rule_ptr element) { - return choice({ comma_sep1(element), blank() }); - } - - static rule_ptr in_parens(rule_ptr rule) { - return seq({ str("("), rule, str(")") }); - } - - static rule_ptr in_braces(rule_ptr rule) { - return seq({ str("{"), rule, str("}") }); - } - extern const Grammar golang({ { "program", seq({ sym("package_directive"), @@ -57,8 +42,6 @@ namespace tree_sitter_examples { sym("_func_signature"), sym("statement_block") }) }, { "statement_block", in_braces(blank()) }, - { "expression", choice({ - sym("number") }) }, { "type_expression", choice({ sym("pointer_type"), sym("slice_type"), @@ -93,6 +76,26 @@ namespace tree_sitter_examples { sym("_func_signature") }))) }) }, // Value expressions + { "expression", choice({ + sym("math_op"), + sym("bool_op"), + sym("number"), + sym("var_name") }) }, + { "math_op", choice({ + infix(2, "*"), + infix(2, "/"), + infix(1, "+"), + infix(1, "-") }) }, + { "bool_op", choice({ + infix(3, "&&"), + infix(2, "||"), + infix(2, "==="), + infix(2, "=="), + infix(2, "<="), + infix(4, "<"), + infix(2, ">="), + infix(2, ">"), + prefix(4, "!") }) }, { "_func_signature", seq({ in_parens(comma_sep(seq({ comma_sep1(sym("var_name")), diff --git a/examples/grammars/helpers.cc b/examples/grammars/helpers.cc new file mode 100644 index 00000000..ffb52321 --- /dev/null +++ b/examples/grammars/helpers.cc @@ -0,0 +1,42 @@ +#include "tree_sitter/compiler.h" + +namespace tree_sitter_examples { + using namespace tree_sitter::rules; + + rule_ptr comma_sep1(rule_ptr element) { + return seq({ element, repeat(seq({ str(","), element })) }); + } + + rule_ptr comma_sep(rule_ptr element) { + return choice({ comma_sep1(element), blank() }); + } + + rule_ptr optional(rule_ptr rule) { + return choice({ rule, blank() }); + } + + rule_ptr in_parens(rule_ptr rule) { + return seq({ str("("), rule, str(")") }); + } + + rule_ptr in_braces(rule_ptr rule) { + return seq({ str("{"), rule, str("}") }); + } + + rule_ptr in_brackets(rule_ptr rule) { + return seq({ str("["), rule, str("]") }); + } + + rule_ptr infix(int precedence, std::string op) { + return prec(precedence, seq({ + sym("expression"), + str(op), + sym("expression") })); + } + + rule_ptr prefix(int precedence, std::string op) { + return prec(precedence, seq({ + str(op), + sym("expression") })); + } +} diff --git a/examples/grammars/helpers.h b/examples/grammars/helpers.h new file mode 100644 index 00000000..e4b7e60a --- /dev/null +++ b/examples/grammars/helpers.h @@ -0,0 +1,19 @@ +#ifndef TREESITTER_EXAMPLES_HELPERS_ +#define TREESITTER_EXAMPLES_HELPERS_ + +#include "tree_sitter/compiler.h" + +namespace tree_sitter_examples { + using namespace tree_sitter::rules; + + rule_ptr comma_sep1(rule_ptr element); + rule_ptr comma_sep(rule_ptr element); + rule_ptr optional(rule_ptr rule); + rule_ptr in_parens(rule_ptr rule); + rule_ptr in_braces(rule_ptr rule); + rule_ptr in_brackets(rule_ptr rule); + rule_ptr infix(int precedence, std::string op); + rule_ptr prefix(int precedence, std::string op); +} + +#endif // TREESITTER_EXAMPLES_HELPERS_ \ No newline at end of file diff --git a/examples/grammars/javascript.cc b/examples/grammars/javascript.cc index 1b6843e7..8281d628 100644 --- a/examples/grammars/javascript.cc +++ b/examples/grammars/javascript.cc @@ -1,44 +1,10 @@ #include "tree_sitter/compiler.h" +#include "helpers.h" namespace tree_sitter_examples { using tree_sitter::Grammar; using namespace tree_sitter::rules; - static rule_ptr optional(rule_ptr rule) { - return choice({ rule, blank() }); - } - - static rule_ptr in_parens(rule_ptr rule) { - return seq({ str("("), rule, str(")") }); - } - - static rule_ptr in_braces(rule_ptr rule) { - return seq({ str("{"), rule, str("}") }); - } - - static rule_ptr in_brackets(rule_ptr rule) { - return seq({ str("["), rule, str("]") }); - } - - static rule_ptr comma_sep(rule_ptr element) { - return choice({ - seq({ element, repeat(seq({ str(","), element })) }), - blank() }); - } - - static rule_ptr infix(int precedence, std::string op) { - return prec(precedence, seq({ - sym("expression"), - str(op), - sym("expression") })); - } - - static rule_ptr prefix(int precedence, std::string op) { - return prec(precedence, seq({ - str(op), - sym("expression") })); - } - extern const Grammar javascript({ { "program", repeat(sym("statement")) }, @@ -73,9 +39,7 @@ namespace tree_sitter_examples { sym("statement") }))) }) }, { "switch_statement", seq({ sym("_switch"), - str("("), - err(sym("expression")), - str(")"), + in_parens(err(sym("expression"))), in_braces(repeat(sym("switch_case"))) }) }, { "switch_case", seq({ choice({ @@ -113,7 +77,6 @@ namespace tree_sitter_examples { sym("property_access"), sym("assignment"), sym("ternary"), - sym("literal"), sym("math_op"), sym("bool_op"), sym("literal"), diff --git a/examples/grammars/json.cc b/examples/grammars/json.cc index ef1107a0..6f0869bc 100644 --- a/examples/grammars/json.cc +++ b/examples/grammars/json.cc @@ -1,16 +1,10 @@ #include "tree_sitter/compiler.h" +#include "helpers.h" namespace tree_sitter_examples { using tree_sitter::Grammar; using namespace tree_sitter::rules; - static rule_ptr comma_sep(rule_ptr rule) { - return choice({ - seq({ rule, repeat(seq({ str(","), rule })) }), - blank(), - }); - } - extern const Grammar json({ { "value", choice({ sym("object"), @@ -20,17 +14,11 @@ namespace tree_sitter_examples { sym("true"), sym("false"), sym("null"), }) }, - { "object", seq({ - str("{"), - comma_sep(err(seq({ - sym("string"), - str(":"), - sym("value") }))), - str("}"), }) }, - { "array", seq({ - str("["), - comma_sep(err(sym("value"))), - str("]"), }) }, + { "object", in_braces(comma_sep(err(seq({ + sym("string"), + str(":"), + sym("value") })))) }, + { "array", in_brackets(comma_sep(err(sym("value")))) }, { "string", pattern("\"([^\"]|\\\\\")+\"") }, { "number", pattern("\\d+(\\.\\d+)?") }, { "null", str("null") }, diff --git a/examples/parsers/golang.c b/examples/parsers/golang.c index 444b61fa..120c2865 100644 --- a/examples/parsers/golang.c +++ b/examples/parsers/golang.c @@ -1,7 +1,7 @@ #include "tree_sitter/parser.h" -#define STATE_COUNT 196 -#define SYMBOL_COUNT 52 +#define STATE_COUNT 209 +#define SYMBOL_COUNT 66 enum { ts_sym_program = 2, @@ -13,47 +13,61 @@ enum { ts_sym_var_declaration = 8, ts_sym_func_declaration = 9, ts_sym_statement_block = 10, - ts_sym_expression = 11, - ts_sym_type_expression = 12, - ts_sym_pointer_type = 13, - ts_sym_map_type = 14, - ts_sym_slice_type = 15, - ts_sym_struct_type = 16, - ts_sym_interface_type = 17, - ts_sym__func_signature = 18, - ts_sym_package_name = 19, - ts_sym_var_name = 20, - ts_sym_type_name = 21, - ts_sym__map = 22, - ts_sym__interface = 23, - ts_sym__struct = 24, - ts_sym__package = 25, - ts_sym__import = 26, - ts_sym__var = 27, - ts_sym__func = 28, - ts_sym__type = 29, - ts_sym_string = 30, - ts_sym__identifier = 31, - ts_sym_number = 32, - ts_aux_sym_program_repeat0 = 33, - ts_aux_sym_program_repeat1 = 34, - ts_aux_sym_imports_block_repeat0 = 35, - ts_aux_sym_struct_type_repeat0 = 36, - ts_aux_sym_interface_type_repeat0 = 37, - ts_aux_sym__func_signature_repeat0 = 38, - ts_aux_sym__func_signature_repeat1 = 39, - ts_aux_sym__func_signature_repeat2 = 40, - ts_aux_sym__func_signature_repeat3 = 41, - ts_aux_sym__func_signature_repeat4 = 42, - ts_aux_sym_token0 = 43, - ts_aux_sym_token1 = 44, - ts_aux_sym_token2 = 45, - ts_aux_sym_token3 = 46, - ts_aux_sym_token4 = 47, - ts_aux_sym_token5 = 48, - ts_aux_sym_token6 = 49, - ts_aux_sym_token7 = 50, - ts_aux_sym_token8 = 51, + ts_sym_type_expression = 11, + ts_sym_pointer_type = 12, + ts_sym_map_type = 13, + ts_sym_slice_type = 14, + ts_sym_struct_type = 15, + ts_sym_interface_type = 16, + ts_sym_expression = 17, + ts_sym_math_op = 18, + ts_sym_bool_op = 19, + ts_sym__func_signature = 20, + ts_sym_package_name = 21, + ts_sym_var_name = 22, + ts_sym_type_name = 23, + ts_sym__map = 24, + ts_sym__interface = 25, + ts_sym__struct = 26, + ts_sym__package = 27, + ts_sym__import = 28, + ts_sym__var = 29, + ts_sym__func = 30, + ts_sym__type = 31, + ts_sym_string = 32, + ts_sym__identifier = 33, + ts_sym_number = 34, + ts_aux_sym_program_repeat0 = 35, + ts_aux_sym_program_repeat1 = 36, + ts_aux_sym_imports_block_repeat0 = 37, + ts_aux_sym_struct_type_repeat0 = 38, + ts_aux_sym_interface_type_repeat0 = 39, + ts_aux_sym__func_signature_repeat0 = 40, + ts_aux_sym__func_signature_repeat1 = 41, + ts_aux_sym__func_signature_repeat2 = 42, + ts_aux_sym__func_signature_repeat3 = 43, + ts_aux_sym__func_signature_repeat4 = 44, + ts_aux_sym_token0 = 45, + ts_aux_sym_token1 = 46, + ts_aux_sym_token2 = 47, + ts_aux_sym_token3 = 48, + ts_aux_sym_token4 = 49, + ts_aux_sym_token5 = 50, + ts_aux_sym_token6 = 51, + ts_aux_sym_token7 = 52, + ts_aux_sym_token8 = 53, + ts_aux_sym_token9 = 54, + ts_aux_sym_token10 = 55, + ts_aux_sym_token11 = 56, + ts_aux_sym_token12 = 57, + ts_aux_sym_token13 = 58, + ts_aux_sym_token14 = 59, + ts_aux_sym_token15 = 60, + ts_aux_sym_token16 = 61, + ts_aux_sym_token17 = 62, + ts_aux_sym_token18 = 63, + ts_aux_sym_token19 = 64, + ts_aux_sym_token20 = 65, }; SYMBOL_NAMES = { @@ -66,13 +80,15 @@ SYMBOL_NAMES = { [ts_sym_var_declaration] = "var_declaration", [ts_sym_func_declaration] = "func_declaration", [ts_sym_statement_block] = "statement_block", - [ts_sym_expression] = "expression", [ts_sym_type_expression] = "type_expression", [ts_sym_pointer_type] = "pointer_type", [ts_sym_map_type] = "map_type", [ts_sym_slice_type] = "slice_type", [ts_sym_struct_type] = "struct_type", [ts_sym_interface_type] = "interface_type", + [ts_sym_expression] = "expression", + [ts_sym_math_op] = "math_op", + [ts_sym_bool_op] = "bool_op", [ts_sym__func_signature] = "_func_signature", [ts_sym_package_name] = "package_name", [ts_sym_var_name] = "var_name", @@ -108,7 +124,19 @@ SYMBOL_NAMES = { [ts_aux_sym_token5] = "'*'", [ts_aux_sym_token6] = "'['", [ts_aux_sym_token7] = "']'", - [ts_aux_sym_token8] = "','", + [ts_aux_sym_token8] = "'/'", + [ts_aux_sym_token9] = "'+'", + [ts_aux_sym_token10] = "'-'", + [ts_aux_sym_token11] = "'&&'", + [ts_aux_sym_token12] = "'||'", + [ts_aux_sym_token13] = "'==='", + [ts_aux_sym_token14] = "'=='", + [ts_aux_sym_token15] = "'<='", + [ts_aux_sym_token16] = "'<'", + [ts_aux_sym_token17] = "'>='", + [ts_aux_sym_token18] = "'>'", + [ts_aux_sym_token19] = "'!'", + [ts_aux_sym_token20] = "','", }; HIDDEN_SYMBOLS = { @@ -141,6 +169,18 @@ HIDDEN_SYMBOLS = { [ts_aux_sym_token6] = 1, [ts_aux_sym_token7] = 1, [ts_aux_sym_token8] = 1, + [ts_aux_sym_token9] = 1, + [ts_aux_sym_token10] = 1, + [ts_aux_sym_token11] = 1, + [ts_aux_sym_token12] = 1, + [ts_aux_sym_token13] = 1, + [ts_aux_sym_token14] = 1, + [ts_aux_sym_token15] = 1, + [ts_aux_sym_token16] = 1, + [ts_aux_sym_token17] = 1, + [ts_aux_sym_token18] = 1, + [ts_aux_sym_token19] = 1, + [ts_aux_sym_token20] = 1, }; LEX_FN() { @@ -324,472 +364,565 @@ LEX_FN() { LEX_ERROR(); case 31: START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(31); - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == '&') ADVANCE(32); + if (lookahead == '*') + ADVANCE(34); + if (lookahead == '+') + ADVANCE(35); + if (lookahead == '-') + ADVANCE(36); + if (lookahead == '/') + ADVANCE(37); + if (lookahead == '<') + ADVANCE(38); + if (lookahead == '=') + ADVANCE(40); + if (lookahead == '>') + ADVANCE(43); + if (lookahead == 'f') + ADVANCE(3); + if (lookahead == 't') + ADVANCE(13); + if (lookahead == 'v') + ADVANCE(17); + if (lookahead == '|') + ADVANCE(45); LEX_ERROR(); case 32: - if (lookahead == '.') + if (lookahead == '&') ADVANCE(33); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(32); - ACCEPT_TOKEN(ts_sym_number); + LEX_ERROR(); case 33: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(34); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token11); case 34: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(34); - ACCEPT_TOKEN(ts_sym_number); + ACCEPT_TOKEN(ts_aux_sym_token5); case 35: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(35); - if (lookahead == '=') - ADVANCE(36); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token9); case 36: - ACCEPT_TOKEN(ts_aux_sym_token2); + ACCEPT_TOKEN(ts_aux_sym_token10); case 37: + ACCEPT_TOKEN(ts_aux_sym_token8); + case 38: + if (lookahead == '=') + ADVANCE(39); + ACCEPT_TOKEN(ts_aux_sym_token16); + case 39: + ACCEPT_TOKEN(ts_aux_sym_token15); + case 40: + if (lookahead == '=') + ADVANCE(41); + LEX_ERROR(); + case 41: + if (lookahead == '=') + ADVANCE(42); + ACCEPT_TOKEN(ts_aux_sym_token14); + case 42: + ACCEPT_TOKEN(ts_aux_sym_token13); + case 43: + if (lookahead == '=') + ADVANCE(44); + ACCEPT_TOKEN(ts_aux_sym_token18); + case 44: + ACCEPT_TOKEN(ts_aux_sym_token17); + case 45: + if (lookahead == '|') + ADVANCE(46); + LEX_ERROR(); + case 46: + ACCEPT_TOKEN(ts_aux_sym_token12); + case 47: START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || + if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(37); + ADVANCE(47); + if (lookahead == '!') + ADVANCE(48); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(49); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); LEX_ERROR(); - case 38: + case 48: + ACCEPT_TOKEN(ts_aux_sym_token19); + case 49: + if (lookahead == '.') + ADVANCE(50); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(49); + ACCEPT_TOKEN(ts_sym_number); + case 50: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(51); + LEX_ERROR(); + case 51: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(51); + ACCEPT_TOKEN(ts_sym_number); + case 52: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); ACCEPT_TOKEN(ts_sym__identifier); - case 39: + case 53: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(39); - if (lookahead == '}') - ADVANCE(40); + ADVANCE(53); + if (lookahead == '=') + ADVANCE(54); LEX_ERROR(); - case 40: + case 54: + ACCEPT_TOKEN(ts_aux_sym_token2); + case 55: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(55); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + LEX_ERROR(); + case 56: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(56); + if (lookahead == '}') + ADVANCE(57); + LEX_ERROR(); + case 57: ACCEPT_TOKEN(ts_aux_sym_token4); - case 41: + case 58: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(41); + ADVANCE(58); if (lookahead == '{') - ADVANCE(42); + ADVANCE(59); LEX_ERROR(); - case 42: + case 59: ACCEPT_TOKEN(ts_aux_sym_token3); - case 43: + case 60: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(43); + ADVANCE(60); if (lookahead == ')') ADVANCE(26); if (lookahead == ',') - ADVANCE(44); + ADVANCE(61); LEX_ERROR(); - case 44: - ACCEPT_TOKEN(ts_aux_sym_token8); - case 45: + case 61: + ACCEPT_TOKEN(ts_aux_sym_token20); + case 62: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(45); + ADVANCE(62); if (lookahead == ')') ADVANCE(26); if (lookahead == ',') - ADVANCE(44); + ADVANCE(61); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); LEX_ERROR(); - case 46: + case 63: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(46); + ADVANCE(63); if (lookahead == '(') ADVANCE(29); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); if (lookahead == '{') - ADVANCE(42); + ADVANCE(59); LEX_ERROR(); - case 47: + case 64: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(47); + ADVANCE(64); if (lookahead == '(') ADVANCE(29); LEX_ERROR(); - case 48: + case 65: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(48); + ADVANCE(65); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); if (lookahead == '}') - ADVANCE(40); + ADVANCE(57); LEX_ERROR(); - case 49: + case 66: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(49); + ADVANCE(66); if (lookahead == '(') ADVANCE(29); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); if (lookahead == '}') - ADVANCE(40); + ADVANCE(57); LEX_ERROR(); - case 50: + case 67: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(50); + ADVANCE(67); if (lookahead == '*') - ADVANCE(51); + ADVANCE(34); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == '[') ADVANCE(52); + if (lookahead == '[') + ADVANCE(68); if (lookahead == 'i') - ADVANCE(53); + ADVANCE(69); if (lookahead == 'm') - ADVANCE(62); + ADVANCE(78); if (lookahead == 's') - ADVANCE(65); + ADVANCE(81); LEX_ERROR(); - case 51: - ACCEPT_TOKEN(ts_aux_sym_token5); - case 52: + case 68: ACCEPT_TOKEN(ts_aux_sym_token6); - case 53: + case 69: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); if (lookahead == 'n') - ADVANCE(54); - ACCEPT_TOKEN(ts_sym__identifier); - case 54: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 't') - ADVANCE(55); - ACCEPT_TOKEN(ts_sym__identifier); - case 55: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'e') - ADVANCE(56); - ACCEPT_TOKEN(ts_sym__identifier); - case 56: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'r') - ADVANCE(57); - ACCEPT_TOKEN(ts_sym__identifier); - case 57: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'e') || - ('g' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'f') - ADVANCE(58); - ACCEPT_TOKEN(ts_sym__identifier); - case 58: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'a') - ADVANCE(59); - ACCEPT_TOKEN(ts_sym__identifier); - case 59: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'c') - ADVANCE(60); - ACCEPT_TOKEN(ts_sym__identifier); - case 60: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'e') - ADVANCE(61); - ACCEPT_TOKEN(ts_sym__identifier); - case 61: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__interface); - case 62: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'a') - ADVANCE(63); - ACCEPT_TOKEN(ts_sym__identifier); - case 63: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'p') - ADVANCE(64); - ACCEPT_TOKEN(ts_sym__identifier); - case 64: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__map); - case 65: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 't') - ADVANCE(66); - ACCEPT_TOKEN(ts_sym__identifier); - case 66: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'r') - ADVANCE(67); - ACCEPT_TOKEN(ts_sym__identifier); - case 67: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 't') || - ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'u') - ADVANCE(68); - ACCEPT_TOKEN(ts_sym__identifier); - case 68: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'c') - ADVANCE(69); - ACCEPT_TOKEN(ts_sym__identifier); - case 69: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 't') ADVANCE(70); ACCEPT_TOKEN(ts_sym__identifier); case 70: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__struct); - case 71: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(71); - if (lookahead == ']') - ADVANCE(72); - LEX_ERROR(); - case 72: - ACCEPT_TOKEN(ts_aux_sym_token7); - case 73: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(73); - if (lookahead == '[') + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) ADVANCE(52); - LEX_ERROR(); + if (lookahead == 't') + ADVANCE(71); + ACCEPT_TOKEN(ts_sym__identifier); + case 71: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'e') + ADVANCE(72); + ACCEPT_TOKEN(ts_sym__identifier); + case 72: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'r') + ADVANCE(73); + ACCEPT_TOKEN(ts_sym__identifier); + case 73: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'f') + ADVANCE(74); + ACCEPT_TOKEN(ts_sym__identifier); case 74: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'a') + ADVANCE(75); + ACCEPT_TOKEN(ts_sym__identifier); + case 75: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'c') + ADVANCE(76); + ACCEPT_TOKEN(ts_sym__identifier); + case 76: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'e') + ADVANCE(77); + ACCEPT_TOKEN(ts_sym__identifier); + case 77: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__interface); + case 78: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'a') + ADVANCE(79); + ACCEPT_TOKEN(ts_sym__identifier); + case 79: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'p') + ADVANCE(80); + ACCEPT_TOKEN(ts_sym__identifier); + case 80: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__map); + case 81: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 't') + ADVANCE(82); + ACCEPT_TOKEN(ts_sym__identifier); + case 82: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'r') + ADVANCE(83); + ACCEPT_TOKEN(ts_sym__identifier); + case 83: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'u') + ADVANCE(84); + ACCEPT_TOKEN(ts_sym__identifier); + case 84: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'c') + ADVANCE(85); + ACCEPT_TOKEN(ts_sym__identifier); + case 85: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 't') + ADVANCE(86); + ACCEPT_TOKEN(ts_sym__identifier); + case 86: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__struct); + case 87: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(87); + if (lookahead == ']') + ADVANCE(88); + LEX_ERROR(); + case 88: + ACCEPT_TOKEN(ts_aux_sym_token7); + case 89: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(89); + if (lookahead == '[') + ADVANCE(68); + LEX_ERROR(); + case 90: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(74); + ADVANCE(90); if (lookahead == '*') - ADVANCE(51); + ADVANCE(34); if (lookahead == ',') - ADVANCE(44); + ADVANCE(61); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == '[') ADVANCE(52); + if (lookahead == '[') + ADVANCE(68); if (lookahead == 'i') - ADVANCE(53); + ADVANCE(69); if (lookahead == 'm') - ADVANCE(62); + ADVANCE(78); if (lookahead == 's') - ADVANCE(65); + ADVANCE(81); LEX_ERROR(); - case 75: + case 91: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(75); + ADVANCE(91); if (lookahead == ')') ADVANCE(26); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); LEX_ERROR(); - case 76: + case 92: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(76); + ADVANCE(92); if (lookahead == 'p') - ADVANCE(77); + ADVANCE(93); LEX_ERROR(); - case 77: + case 93: if (lookahead == 'a') - ADVANCE(78); + ADVANCE(94); LEX_ERROR(); - case 78: + case 94: if (lookahead == 'c') - ADVANCE(79); + ADVANCE(95); LEX_ERROR(); - case 79: + case 95: if (lookahead == 'k') - ADVANCE(80); + ADVANCE(96); LEX_ERROR(); - case 80: + case 96: if (lookahead == 'a') - ADVANCE(81); + ADVANCE(97); LEX_ERROR(); - case 81: + case 97: if (lookahead == 'g') - ADVANCE(82); + ADVANCE(98); LEX_ERROR(); - case 82: + case 98: if (lookahead == 'e') - ADVANCE(83); + ADVANCE(99); LEX_ERROR(); - case 83: + case 99: ACCEPT_TOKEN(ts_sym__package); - case 84: + case 100: START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(84); + ADVANCE(100); + if (lookahead == '!') + ADVANCE(48); if (lookahead == '\"') ADVANCE(21); + if (lookahead == '&') + ADVANCE(32); if (lookahead == '(') ADVANCE(29); if (lookahead == ')') ADVANCE(26); if (lookahead == '*') - ADVANCE(51); + ADVANCE(34); + if (lookahead == '+') + ADVANCE(35); if (lookahead == ',') - ADVANCE(44); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(32); - if (lookahead == '=') + ADVANCE(61); + if (lookahead == '-') ADVANCE(36); + if (lookahead == '/') + ADVANCE(37); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(49); + if (lookahead == '<') + ADVANCE(38); + if (lookahead == '=') + ADVANCE(101); + if (lookahead == '>') + ADVANCE(43); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -798,219 +931,64 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == '[') ADVANCE(52); + if (lookahead == '[') + ADVANCE(68); if (lookahead == ']') - ADVANCE(72); + ADVANCE(88); if (lookahead == 'f') - ADVANCE(85); - if (lookahead == 'i') - ADVANCE(89); - if (lookahead == 'm') - ADVANCE(62); - if (lookahead == 'p') - ADVANCE(95); - if (lookahead == 's') - ADVANCE(65); - if (lookahead == 't') ADVANCE(102); - if (lookahead == 'v') + if (lookahead == 'i') ADVANCE(106); + if (lookahead == 'm') + ADVANCE(78); + if (lookahead == 'p') + ADVANCE(112); + if (lookahead == 's') + ADVANCE(81); + if (lookahead == 't') + ADVANCE(119); + if (lookahead == 'v') + ADVANCE(123); if (lookahead == '{') - ADVANCE(42); + ADVANCE(59); + if (lookahead == '|') + ADVANCE(45); if (lookahead == '}') - ADVANCE(40); + ADVANCE(57); LEX_ERROR(); - case 85: + case 101: + if (lookahead == '=') + ADVANCE(41); + ACCEPT_TOKEN(ts_aux_sym_token2); + case 102: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); if (lookahead == 'u') - ADVANCE(86); - ACCEPT_TOKEN(ts_sym__identifier); - case 86: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'n') - ADVANCE(87); - ACCEPT_TOKEN(ts_sym__identifier); - case 87: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'c') - ADVANCE(88); - ACCEPT_TOKEN(ts_sym__identifier); - case 88: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__func); - case 89: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'l') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'm') - ADVANCE(90); - if (lookahead == 'n') - ADVANCE(54); - ACCEPT_TOKEN(ts_sym__identifier); - case 90: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'p') - ADVANCE(91); - ACCEPT_TOKEN(ts_sym__identifier); - case 91: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'n') || - ('p' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'o') - ADVANCE(92); - ACCEPT_TOKEN(ts_sym__identifier); - case 92: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'r') - ADVANCE(93); - ACCEPT_TOKEN(ts_sym__identifier); - case 93: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 't') - ADVANCE(94); - ACCEPT_TOKEN(ts_sym__identifier); - case 94: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__import); - case 95: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'a') - ADVANCE(96); - ACCEPT_TOKEN(ts_sym__identifier); - case 96: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'c') - ADVANCE(97); - ACCEPT_TOKEN(ts_sym__identifier); - case 97: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'j') || - ('l' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'k') - ADVANCE(98); - ACCEPT_TOKEN(ts_sym__identifier); - case 98: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'a') - ADVANCE(99); - ACCEPT_TOKEN(ts_sym__identifier); - case 99: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'f') || - ('h' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'g') - ADVANCE(100); - ACCEPT_TOKEN(ts_sym__identifier); - case 100: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'e') - ADVANCE(101); - ACCEPT_TOKEN(ts_sym__identifier); - case 101: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__package); - case 102: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'x') || - (lookahead == 'z')) - ADVANCE(38); - if (lookahead == 'y') ADVANCE(103); ACCEPT_TOKEN(ts_sym__identifier); case 103: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'p') + ('a' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'n') ADVANCE(104); ACCEPT_TOKEN(ts_sym__identifier); case 104: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'e') + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'c') ADVANCE(105); ACCEPT_TOKEN(ts_sym__identifier); case 105: @@ -1018,33 +996,194 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - ACCEPT_TOKEN(ts_sym__type); + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__func); case 106: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'a') + ('a' <= lookahead && lookahead <= 'l') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'm') ADVANCE(107); + if (lookahead == 'n') + ADVANCE(70); ACCEPT_TOKEN(ts_sym__identifier); case 107: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == 'r') + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'p') ADVANCE(108); ACCEPT_TOKEN(ts_sym__identifier); case 108: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'n') || + ('p' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'o') + ADVANCE(109); + ACCEPT_TOKEN(ts_sym__identifier); + case 109: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'r') + ADVANCE(110); + ACCEPT_TOKEN(ts_sym__identifier); + case 110: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 't') + ADVANCE(111); + ACCEPT_TOKEN(ts_sym__identifier); + case 111: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(38); + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__import); + case 112: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'a') + ADVANCE(113); + ACCEPT_TOKEN(ts_sym__identifier); + case 113: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'c') + ADVANCE(114); + ACCEPT_TOKEN(ts_sym__identifier); + case 114: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'j') || + ('l' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'k') + ADVANCE(115); + ACCEPT_TOKEN(ts_sym__identifier); + case 115: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'a') + ADVANCE(116); + ACCEPT_TOKEN(ts_sym__identifier); + case 116: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'f') || + ('h' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'g') + ADVANCE(117); + ACCEPT_TOKEN(ts_sym__identifier); + case 117: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'e') + ADVANCE(118); + ACCEPT_TOKEN(ts_sym__identifier); + case 118: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__package); + case 119: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'x') || + (lookahead == 'z')) + ADVANCE(52); + if (lookahead == 'y') + ADVANCE(120); + ACCEPT_TOKEN(ts_sym__identifier); + case 120: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'p') + ADVANCE(121); + ACCEPT_TOKEN(ts_sym__identifier); + case 121: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'e') + ADVANCE(122); + ACCEPT_TOKEN(ts_sym__identifier); + case 122: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + ACCEPT_TOKEN(ts_sym__type); + case 123: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'a') + ADVANCE(124); + ACCEPT_TOKEN(ts_sym__identifier); + case 124: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(52); + if (lookahead == 'r') + ADVANCE(125); + ACCEPT_TOKEN(ts_sym__identifier); + case 125: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(52); ACCEPT_TOKEN(ts_sym__var); case ts_lex_state_error: if (lookahead == '\0') @@ -1052,21 +1191,35 @@ LEX_FN() { if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(84); + ADVANCE(100); + if (lookahead == '!') + ADVANCE(48); if (lookahead == '\"') ADVANCE(21); + if (lookahead == '&') + ADVANCE(32); if (lookahead == '(') ADVANCE(29); if (lookahead == ')') ADVANCE(26); if (lookahead == '*') - ADVANCE(51); + ADVANCE(34); + if (lookahead == '+') + ADVANCE(35); if (lookahead == ',') - ADVANCE(44); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(32); - if (lookahead == '=') + ADVANCE(61); + if (lookahead == '-') ADVANCE(36); + if (lookahead == '/') + ADVANCE(37); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(49); + if (lookahead == '<') + ADVANCE(38); + if (lookahead == '=') + ADVANCE(101); + if (lookahead == '>') + ADVANCE(43); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -1075,29 +1228,31 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(38); - if (lookahead == '[') ADVANCE(52); + if (lookahead == '[') + ADVANCE(68); if (lookahead == ']') - ADVANCE(72); + ADVANCE(88); if (lookahead == 'f') - ADVANCE(85); - if (lookahead == 'i') - ADVANCE(89); - if (lookahead == 'm') - ADVANCE(62); - if (lookahead == 'p') - ADVANCE(95); - if (lookahead == 's') - ADVANCE(65); - if (lookahead == 't') ADVANCE(102); - if (lookahead == 'v') + if (lookahead == 'i') ADVANCE(106); + if (lookahead == 'm') + ADVANCE(78); + if (lookahead == 'p') + ADVANCE(112); + if (lookahead == 's') + ADVANCE(81); + if (lookahead == 't') + ADVANCE(119); + if (lookahead == 'v') + ADVANCE(123); if (lookahead == '{') - ADVANCE(42); + ADVANCE(59); + if (lookahead == '|') + ADVANCE(45); if (lookahead == '}') - ADVANCE(40); + ADVANCE(57); LEX_ERROR(); default: LEX_PANIC(); @@ -1105,7 +1260,7 @@ LEX_FN() { } LEX_STATES = { - [0] = 76, + [0] = 92, [1] = 0, [2] = 2, [3] = 2, @@ -1122,185 +1277,198 @@ LEX_STATES = { [14] = 30, [15] = 30, [16] = 30, - [17] = 37, - [18] = 35, - [19] = 31, - [20] = 30, - [21] = 30, - [22] = 35, - [23] = 37, - [24] = 47, - [25] = 41, - [26] = 30, - [27] = 39, - [28] = 30, - [29] = 75, - [30] = 74, - [31] = 50, - [32] = 43, - [33] = 27, - [34] = 46, - [35] = 41, - [36] = 41, - [37] = 37, - [38] = 37, - [39] = 43, - [40] = 27, - [41] = 41, - [42] = 37, - [43] = 37, - [44] = 43, - [45] = 27, - [46] = 43, - [47] = 37, - [48] = 43, - [49] = 27, - [50] = 41, - [51] = 37, - [52] = 43, + [17] = 55, + [18] = 53, + [19] = 47, + [20] = 31, + [21] = 47, + [22] = 31, + [23] = 47, + [24] = 31, + [25] = 47, + [26] = 31, + [27] = 47, + [28] = 31, + [29] = 47, + [30] = 31, + [31] = 31, + [32] = 31, + [33] = 47, + [34] = 31, + [35] = 53, + [36] = 55, + [37] = 64, + [38] = 58, + [39] = 30, + [40] = 56, + [41] = 30, + [42] = 91, + [43] = 90, + [44] = 67, + [45] = 60, + [46] = 27, + [47] = 63, + [48] = 58, + [49] = 58, + [50] = 55, + [51] = 55, + [52] = 60, [53] = 27, - [54] = 45, - [55] = 37, - [56] = 74, - [57] = 50, - [58] = 43, - [59] = 27, - [60] = 43, - [61] = 73, - [62] = 50, - [63] = 71, - [64] = 50, - [65] = 43, - [66] = 41, - [67] = 48, - [68] = 47, - [69] = 48, - [70] = 47, - [71] = 39, - [72] = 75, - [73] = 74, - [74] = 50, - [75] = 43, - [76] = 27, - [77] = 49, - [78] = 48, - [79] = 48, - [80] = 37, - [81] = 37, - [82] = 43, - [83] = 27, - [84] = 48, - [85] = 43, - [86] = 27, - [87] = 48, - [88] = 41, - [89] = 48, - [90] = 50, - [91] = 48, - [92] = 50, - [93] = 39, - [94] = 48, - [95] = 73, - [96] = 50, - [97] = 71, - [98] = 50, - [99] = 48, - [100] = 41, - [101] = 48, - [102] = 39, - [103] = 48, - [104] = 41, - [105] = 48, - [106] = 39, - [107] = 48, - [108] = 50, - [109] = 48, - [110] = 71, - [111] = 50, - [112] = 48, - [113] = 71, - [114] = 73, - [115] = 50, - [116] = 71, - [117] = 50, - [118] = 71, - [119] = 41, - [120] = 48, - [121] = 39, - [122] = 71, - [123] = 41, - [124] = 48, - [125] = 39, - [126] = 71, - [127] = 71, - [128] = 50, - [129] = 71, - [130] = 71, - [131] = 50, - [132] = 71, - [133] = 39, - [134] = 43, - [135] = 50, - [136] = 43, - [137] = 71, - [138] = 50, - [139] = 43, - [140] = 37, - [141] = 74, - [142] = 50, - [143] = 74, - [144] = 49, - [145] = 48, - [146] = 37, - [147] = 37, - [148] = 43, - [149] = 27, - [150] = 43, - [151] = 27, - [152] = 48, - [153] = 39, - [154] = 43, - [155] = 37, - [156] = 74, - [157] = 50, - [158] = 46, - [159] = 41, - [160] = 37, - [161] = 37, - [162] = 43, - [163] = 27, - [164] = 43, - [165] = 27, - [166] = 41, - [167] = 37, - [168] = 50, - [169] = 30, - [170] = 30, - [171] = 73, - [172] = 50, - [173] = 71, - [174] = 50, - [175] = 30, - [176] = 41, - [177] = 48, - [178] = 39, - [179] = 30, - [180] = 41, - [181] = 48, - [182] = 39, + [54] = 58, + [55] = 55, + [56] = 55, + [57] = 60, + [58] = 27, + [59] = 60, + [60] = 55, + [61] = 60, + [62] = 27, + [63] = 58, + [64] = 55, + [65] = 60, + [66] = 27, + [67] = 62, + [68] = 55, + [69] = 90, + [70] = 67, + [71] = 60, + [72] = 27, + [73] = 60, + [74] = 89, + [75] = 67, + [76] = 87, + [77] = 67, + [78] = 60, + [79] = 58, + [80] = 65, + [81] = 64, + [82] = 65, + [83] = 64, + [84] = 56, + [85] = 91, + [86] = 90, + [87] = 67, + [88] = 60, + [89] = 27, + [90] = 66, + [91] = 65, + [92] = 65, + [93] = 55, + [94] = 55, + [95] = 60, + [96] = 27, + [97] = 65, + [98] = 60, + [99] = 27, + [100] = 65, + [101] = 58, + [102] = 65, + [103] = 67, + [104] = 65, + [105] = 67, + [106] = 56, + [107] = 65, + [108] = 89, + [109] = 67, + [110] = 87, + [111] = 67, + [112] = 65, + [113] = 58, + [114] = 65, + [115] = 56, + [116] = 65, + [117] = 58, + [118] = 65, + [119] = 56, + [120] = 65, + [121] = 67, + [122] = 65, + [123] = 87, + [124] = 67, + [125] = 65, + [126] = 87, + [127] = 89, + [128] = 67, + [129] = 87, + [130] = 67, + [131] = 87, + [132] = 58, + [133] = 65, + [134] = 56, + [135] = 87, + [136] = 58, + [137] = 65, + [138] = 56, + [139] = 87, + [140] = 87, + [141] = 67, + [142] = 87, + [143] = 87, + [144] = 67, + [145] = 87, + [146] = 56, + [147] = 60, + [148] = 67, + [149] = 60, + [150] = 87, + [151] = 67, + [152] = 60, + [153] = 55, + [154] = 90, + [155] = 67, + [156] = 90, + [157] = 66, + [158] = 65, + [159] = 55, + [160] = 55, + [161] = 60, + [162] = 27, + [163] = 60, + [164] = 27, + [165] = 65, + [166] = 56, + [167] = 60, + [168] = 55, + [169] = 90, + [170] = 67, + [171] = 63, + [172] = 58, + [173] = 55, + [174] = 55, + [175] = 60, + [176] = 27, + [177] = 60, + [178] = 27, + [179] = 58, + [180] = 55, + [181] = 67, + [182] = 30, [183] = 30, - [184] = 30, - [185] = 50, - [186] = 30, - [187] = 71, - [188] = 50, - [189] = 30, - [190] = 50, - [191] = 0, - [192] = 0, - [193] = 37, - [194] = 2, - [195] = 2, + [184] = 89, + [185] = 67, + [186] = 87, + [187] = 67, + [188] = 30, + [189] = 58, + [190] = 65, + [191] = 56, + [192] = 30, + [193] = 58, + [194] = 65, + [195] = 56, + [196] = 30, + [197] = 30, + [198] = 67, + [199] = 30, + [200] = 87, + [201] = 67, + [202] = 30, + [203] = 67, + [204] = 0, + [205] = 0, + [206] = 55, + [207] = 2, + [208] = 2, }; #pragma GCC diagnostic push @@ -1310,7 +1478,7 @@ PARSE_TABLE = { [0] = { [ts_sym_program] = SHIFT(1), [ts_sym_package_directive] = SHIFT(2), - [ts_sym__package] = SHIFT(193), + [ts_sym__package] = SHIFT(206), }, [1] = { [ts_builtin_sym_end] = ACCEPT_INPUT(), @@ -1395,9 +1563,9 @@ PARSE_TABLE = { [ts_sym_func_declaration] = SHIFT(16), [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), [ts_sym__var] = SHIFT(17), - [ts_sym__func] = SHIFT(23), - [ts_sym__type] = SHIFT(167), - [ts_aux_sym_program_repeat1] = SHIFT(192), + [ts_sym__func] = SHIFT(36), + [ts_sym__type] = SHIFT(180), + [ts_aux_sym_program_repeat1] = SHIFT(205), }, [15] = { [ts_sym_declaration] = SHIFT(15), @@ -1406,9 +1574,9 @@ PARSE_TABLE = { [ts_sym_func_declaration] = SHIFT(16), [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), [ts_sym__var] = SHIFT(17), - [ts_sym__func] = SHIFT(23), - [ts_sym__type] = SHIFT(167), - [ts_aux_sym_program_repeat1] = SHIFT(191), + [ts_sym__func] = SHIFT(36), + [ts_sym__type] = SHIFT(180), + [ts_aux_sym_program_repeat1] = SHIFT(204), }, [16] = { [ts_builtin_sym_end] = REDUCE(ts_sym_declaration, 1), @@ -1418,400 +1586,609 @@ PARSE_TABLE = { }, [17] = { [ts_sym_var_name] = SHIFT(18), - [ts_sym__identifier] = SHIFT(22), + [ts_sym__identifier] = SHIFT(35), }, [18] = { [ts_aux_sym_token2] = SHIFT(19), }, [19] = { [ts_sym_expression] = SHIFT(20), - [ts_sym_number] = SHIFT(21), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), }, [20] = { [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 4), [ts_sym__var] = REDUCE(ts_sym_var_declaration, 4), [ts_sym__func] = REDUCE(ts_sym_var_declaration, 4), [ts_sym__type] = REDUCE(ts_sym_var_declaration, 4), + [ts_aux_sym_token5] = SHIFT(21), + [ts_aux_sym_token8] = SHIFT(21), + [ts_aux_sym_token9] = SHIFT(23), + [ts_aux_sym_token10] = SHIFT(23), + [ts_aux_sym_token11] = SHIFT(25), + [ts_aux_sym_token12] = SHIFT(27), + [ts_aux_sym_token13] = SHIFT(27), + [ts_aux_sym_token14] = SHIFT(27), + [ts_aux_sym_token15] = SHIFT(27), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = SHIFT(27), + [ts_aux_sym_token18] = SHIFT(27), }, [21] = { + [ts_sym_expression] = SHIFT(22), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), + }, + [22] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_math_op, 3), + [ts_sym__var] = REDUCE(ts_sym_math_op, 3), + [ts_sym__func] = REDUCE(ts_sym_math_op, 3), + [ts_sym__type] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_token5] = SHIFT(21), + [ts_aux_sym_token8] = SHIFT(21), + [ts_aux_sym_token9] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_token10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_token11] = SHIFT(25), + [ts_aux_sym_token12] = SHIFT(27), + [ts_aux_sym_token13] = SHIFT(27), + [ts_aux_sym_token14] = SHIFT(27), + [ts_aux_sym_token15] = SHIFT(27), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = SHIFT(27), + [ts_aux_sym_token18] = SHIFT(27), + }, + [23] = { + [ts_sym_expression] = SHIFT(24), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), + }, + [24] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_math_op, 3), + [ts_sym__var] = REDUCE(ts_sym_math_op, 3), + [ts_sym__func] = REDUCE(ts_sym_math_op, 3), + [ts_sym__type] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_token5] = SHIFT(21), + [ts_aux_sym_token8] = SHIFT(21), + [ts_aux_sym_token9] = SHIFT(23), + [ts_aux_sym_token10] = SHIFT(23), + [ts_aux_sym_token11] = SHIFT(25), + [ts_aux_sym_token12] = SHIFT(27), + [ts_aux_sym_token13] = SHIFT(27), + [ts_aux_sym_token14] = SHIFT(27), + [ts_aux_sym_token15] = SHIFT(27), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = SHIFT(27), + [ts_aux_sym_token18] = SHIFT(27), + }, + [25] = { + [ts_sym_expression] = SHIFT(26), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), + }, + [26] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__var] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__func] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__type] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token11] = SHIFT(25), + [ts_aux_sym_token12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token15] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token18] = REDUCE(ts_sym_bool_op, 3), + }, + [27] = { + [ts_sym_expression] = SHIFT(28), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), + }, + [28] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__var] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__func] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__type] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token5] = SHIFT(21), + [ts_aux_sym_token8] = SHIFT(21), + [ts_aux_sym_token9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token11] = SHIFT(25), + [ts_aux_sym_token12] = SHIFT(27), + [ts_aux_sym_token13] = SHIFT(27), + [ts_aux_sym_token14] = SHIFT(27), + [ts_aux_sym_token15] = SHIFT(27), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = SHIFT(27), + [ts_aux_sym_token18] = SHIFT(27), + }, + [29] = { + [ts_sym_expression] = SHIFT(30), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), + }, + [30] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__var] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__func] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__type] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token11] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token15] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_token18] = REDUCE(ts_sym_bool_op, 3), + }, + [31] = { [ts_builtin_sym_end] = REDUCE(ts_sym_expression, 1), [ts_sym__var] = REDUCE(ts_sym_expression, 1), [ts_sym__func] = REDUCE(ts_sym_expression, 1), [ts_sym__type] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token11] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token12] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token13] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token14] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token15] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token16] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token17] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token18] = REDUCE(ts_sym_expression, 1), }, - [22] = { + [32] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_var_name, 1), + [ts_sym__var] = REDUCE(ts_sym_var_name, 1), + [ts_sym__func] = REDUCE(ts_sym_var_name, 1), + [ts_sym__type] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token5] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token9] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token10] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token11] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token12] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token13] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token14] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token15] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token16] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token17] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token18] = REDUCE(ts_sym_var_name, 1), + }, + [33] = { + [ts_sym_expression] = SHIFT(34), + [ts_sym_math_op] = SHIFT(31), + [ts_sym_bool_op] = SHIFT(31), + [ts_sym_var_name] = SHIFT(31), + [ts_sym__identifier] = SHIFT(32), + [ts_sym_number] = SHIFT(31), + [ts_aux_sym_token19] = SHIFT(33), + }, + [34] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_bool_op, 2), + [ts_sym__var] = REDUCE(ts_sym_bool_op, 2), + [ts_sym__func] = REDUCE(ts_sym_bool_op, 2), + [ts_sym__type] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token5] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token9] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token10] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token11] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token12] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token13] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token14] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token15] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token16] = SHIFT(29), + [ts_aux_sym_token17] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_token18] = REDUCE(ts_sym_bool_op, 2), + }, + [35] = { [ts_aux_sym_token2] = REDUCE(ts_sym_var_name, 1), }, - [23] = { - [ts_sym_var_name] = SHIFT(24), - [ts_sym__identifier] = SHIFT(70), + [36] = { + [ts_sym_var_name] = SHIFT(37), + [ts_sym__identifier] = SHIFT(83), }, - [24] = { - [ts_sym__func_signature] = SHIFT(25), - [ts_aux_sym_token0] = SHIFT(29), + [37] = { + [ts_sym__func_signature] = SHIFT(38), + [ts_aux_sym_token0] = SHIFT(42), }, - [25] = { - [ts_sym_statement_block] = SHIFT(26), - [ts_aux_sym_token3] = SHIFT(27), + [38] = { + [ts_sym_statement_block] = SHIFT(39), + [ts_aux_sym_token3] = SHIFT(40), }, - [26] = { + [39] = { [ts_builtin_sym_end] = REDUCE(ts_sym_func_declaration, 4), [ts_sym__var] = REDUCE(ts_sym_func_declaration, 4), [ts_sym__func] = REDUCE(ts_sym_func_declaration, 4), [ts_sym__type] = REDUCE(ts_sym_func_declaration, 4), }, - [27] = { - [ts_aux_sym_token4] = SHIFT(28), + [40] = { + [ts_aux_sym_token4] = SHIFT(41), }, - [28] = { + [41] = { [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 2), [ts_sym__var] = REDUCE(ts_sym_statement_block, 2), [ts_sym__func] = REDUCE(ts_sym_statement_block, 2), [ts_sym__type] = REDUCE(ts_sym_statement_block, 2), }, - [29] = { - [ts_sym_var_name] = SHIFT(30), - [ts_sym__identifier] = SHIFT(143), - [ts_aux_sym_token1] = SHIFT(158), + [42] = { + [ts_sym_var_name] = SHIFT(43), + [ts_sym__identifier] = SHIFT(156), + [ts_aux_sym_token1] = SHIFT(171), }, - [30] = { + [43] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym__func_signature_repeat0] = SHIFT(31), + [ts_aux_sym__func_signature_repeat0] = SHIFT(44), [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym_token8] = SHIFT(140), - }, - [31] = { - [ts_sym_type_expression] = SHIFT(32), - [ts_sym_pointer_type] = SHIFT(60), - [ts_sym_map_type] = SHIFT(60), - [ts_sym_slice_type] = SHIFT(60), - [ts_sym_struct_type] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(60), - [ts_sym_type_name] = SHIFT(60), - [ts_sym__map] = SHIFT(61), - [ts_sym__interface] = SHIFT(66), - [ts_sym__struct] = SHIFT(88), - [ts_sym__identifier] = SHIFT(46), - [ts_aux_sym_token5] = SHIFT(135), - [ts_aux_sym_token6] = SHIFT(137), - }, - [32] = { - [ts_aux_sym__func_signature_repeat2] = SHIFT(33), - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token8] = SHIFT(55), - }, - [33] = { - [ts_aux_sym_token1] = SHIFT(34), - }, - [34] = { - [ts_sym_type_name] = SHIFT(35), - [ts_sym__identifier] = SHIFT(36), - [ts_aux_sym_token0] = SHIFT(37), - [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 6), - }, - [35] = { - [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 7), - }, - [36] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_type_name, 1), - }, - [37] = { - [ts_sym_var_name] = SHIFT(38), - [ts_sym_type_name] = SHIFT(48), - [ts_sym__identifier] = SHIFT(54), - }, - [38] = { - [ts_sym_type_name] = SHIFT(39), - [ts_sym__identifier] = SHIFT(46), - }, - [39] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(40), - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token8] = SHIFT(42), - }, - [40] = { - [ts_aux_sym_token1] = SHIFT(41), - }, - [41] = { - [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 11), - }, - [42] = { - [ts_sym_var_name] = SHIFT(43), - [ts_sym__identifier] = SHIFT(47), - }, - [43] = { - [ts_sym_type_name] = SHIFT(44), - [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token20] = SHIFT(153), }, [44] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(45), - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token8] = SHIFT(42), + [ts_sym_type_expression] = SHIFT(45), + [ts_sym_pointer_type] = SHIFT(73), + [ts_sym_map_type] = SHIFT(73), + [ts_sym_slice_type] = SHIFT(73), + [ts_sym_struct_type] = SHIFT(73), + [ts_sym_interface_type] = SHIFT(73), + [ts_sym_type_name] = SHIFT(73), + [ts_sym__map] = SHIFT(74), + [ts_sym__interface] = SHIFT(79), + [ts_sym__struct] = SHIFT(101), + [ts_sym__identifier] = SHIFT(59), + [ts_aux_sym_token5] = SHIFT(148), + [ts_aux_sym_token6] = SHIFT(150), }, [45] = { - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 4), + [ts_aux_sym__func_signature_repeat2] = SHIFT(46), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), + [ts_aux_sym_token20] = SHIFT(68), }, [46] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token1] = SHIFT(47), }, [47] = { - [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + [ts_sym_type_name] = SHIFT(48), + [ts_sym__identifier] = SHIFT(49), + [ts_aux_sym_token0] = SHIFT(50), + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 6), }, [48] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(49), - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token8] = SHIFT(51), + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 7), }, [49] = { - [ts_aux_sym_token1] = SHIFT(50), + [ts_aux_sym_token3] = REDUCE(ts_sym_type_name, 1), }, [50] = { - [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 10), + [ts_sym_var_name] = SHIFT(51), + [ts_sym_type_name] = SHIFT(61), + [ts_sym__identifier] = SHIFT(67), }, [51] = { [ts_sym_type_name] = SHIFT(52), - [ts_sym__identifier] = SHIFT(46), + [ts_sym__identifier] = SHIFT(59), }, [52] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(53), - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token8] = SHIFT(51), + [ts_aux_sym__func_signature_repeat3] = SHIFT(53), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token20] = SHIFT(55), }, [53] = { - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 3), + [ts_aux_sym_token1] = SHIFT(54), }, [54] = { - [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 11), }, [55] = { [ts_sym_var_name] = SHIFT(56), - [ts_sym__identifier] = SHIFT(143), + [ts_sym__identifier] = SHIFT(60), }, [56] = { + [ts_sym_type_name] = SHIFT(57), + [ts_sym__identifier] = SHIFT(59), + }, + [57] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(58), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token20] = SHIFT(55), + }, + [58] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 4), + }, + [59] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token20] = REDUCE(ts_sym_type_name, 1), + }, + [60] = { + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + }, + [61] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(62), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token20] = SHIFT(64), + }, + [62] = { + [ts_aux_sym_token1] = SHIFT(63), + }, + [63] = { + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 10), + }, + [64] = { + [ts_sym_type_name] = SHIFT(65), + [ts_sym__identifier] = SHIFT(59), + }, + [65] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(66), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token20] = SHIFT(64), + }, + [66] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 3), + }, + [67] = { + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token20] = REDUCE(ts_sym_type_name, 1), + }, + [68] = { + [ts_sym_var_name] = SHIFT(69), + [ts_sym__identifier] = SHIFT(156), + }, + [69] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym__func_signature_repeat1] = SHIFT(57), + [ts_aux_sym__func_signature_repeat1] = SHIFT(70), [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token8] = SHIFT(155), - }, - [57] = { - [ts_sym_type_expression] = SHIFT(58), - [ts_sym_pointer_type] = SHIFT(60), - [ts_sym_map_type] = SHIFT(60), - [ts_sym_slice_type] = SHIFT(60), - [ts_sym_struct_type] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(60), - [ts_sym_type_name] = SHIFT(60), - [ts_sym__map] = SHIFT(61), - [ts_sym__interface] = SHIFT(66), - [ts_sym__struct] = SHIFT(88), - [ts_sym__identifier] = SHIFT(46), - [ts_aux_sym_token5] = SHIFT(135), - [ts_aux_sym_token6] = SHIFT(137), - }, - [58] = { - [ts_aux_sym__func_signature_repeat2] = SHIFT(59), - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token8] = SHIFT(55), - }, - [59] = { - [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 5), - }, - [60] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_type_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_type_expression, 1), - }, - [61] = { - [ts_aux_sym_token6] = SHIFT(62), - }, - [62] = { - [ts_sym_type_expression] = SHIFT(63), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), - }, - [63] = { - [ts_aux_sym_token7] = SHIFT(64), - }, - [64] = { - [ts_sym_type_expression] = SHIFT(65), - [ts_sym_pointer_type] = SHIFT(60), - [ts_sym_map_type] = SHIFT(60), - [ts_sym_slice_type] = SHIFT(60), - [ts_sym_struct_type] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(60), - [ts_sym_type_name] = SHIFT(60), - [ts_sym__map] = SHIFT(61), - [ts_sym__interface] = SHIFT(66), - [ts_sym__struct] = SHIFT(88), - [ts_sym__identifier] = SHIFT(46), - [ts_aux_sym_token5] = SHIFT(135), - [ts_aux_sym_token6] = SHIFT(137), - }, - [65] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_map_type, 5), - [ts_aux_sym_token8] = REDUCE(ts_sym_map_type, 5), - }, - [66] = { - [ts_aux_sym_token3] = SHIFT(67), - }, - [67] = { - [ts_sym_var_name] = SHIFT(68), - [ts_sym__identifier] = SHIFT(70), - [ts_aux_sym_interface_type_repeat0] = SHIFT(153), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), - }, - [68] = { - [ts_sym__func_signature] = SHIFT(69), - [ts_aux_sym_token0] = SHIFT(72), - }, - [69] = { - [ts_sym_var_name] = SHIFT(68), - [ts_sym__identifier] = SHIFT(70), - [ts_aux_sym_interface_type_repeat0] = SHIFT(71), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + [ts_aux_sym_token20] = SHIFT(168), }, [70] = { - [ts_aux_sym_token0] = REDUCE(ts_sym_var_name, 1), + [ts_sym_type_expression] = SHIFT(71), + [ts_sym_pointer_type] = SHIFT(73), + [ts_sym_map_type] = SHIFT(73), + [ts_sym_slice_type] = SHIFT(73), + [ts_sym_struct_type] = SHIFT(73), + [ts_sym_interface_type] = SHIFT(73), + [ts_sym_type_name] = SHIFT(73), + [ts_sym__map] = SHIFT(74), + [ts_sym__interface] = SHIFT(79), + [ts_sym__struct] = SHIFT(101), + [ts_sym__identifier] = SHIFT(59), + [ts_aux_sym_token5] = SHIFT(148), + [ts_aux_sym_token6] = SHIFT(150), }, [71] = { - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 3), + [ts_aux_sym__func_signature_repeat2] = SHIFT(72), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), + [ts_aux_sym_token20] = SHIFT(68), }, [72] = { - [ts_sym_var_name] = SHIFT(73), - [ts_sym__identifier] = SHIFT(143), - [ts_aux_sym_token1] = SHIFT(144), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 5), }, [73] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_type_expression, 1), + [ts_aux_sym_token20] = REDUCE(ts_sym_type_expression, 1), + }, + [74] = { + [ts_aux_sym_token6] = SHIFT(75), + }, + [75] = { + [ts_sym_type_expression] = SHIFT(76), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), + }, + [76] = { + [ts_aux_sym_token7] = SHIFT(77), + }, + [77] = { + [ts_sym_type_expression] = SHIFT(78), + [ts_sym_pointer_type] = SHIFT(73), + [ts_sym_map_type] = SHIFT(73), + [ts_sym_slice_type] = SHIFT(73), + [ts_sym_struct_type] = SHIFT(73), + [ts_sym_interface_type] = SHIFT(73), + [ts_sym_type_name] = SHIFT(73), + [ts_sym__map] = SHIFT(74), + [ts_sym__interface] = SHIFT(79), + [ts_sym__struct] = SHIFT(101), + [ts_sym__identifier] = SHIFT(59), + [ts_aux_sym_token5] = SHIFT(148), + [ts_aux_sym_token6] = SHIFT(150), + }, + [78] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_map_type, 5), + [ts_aux_sym_token20] = REDUCE(ts_sym_map_type, 5), + }, + [79] = { + [ts_aux_sym_token3] = SHIFT(80), + }, + [80] = { + [ts_sym_var_name] = SHIFT(81), + [ts_sym__identifier] = SHIFT(83), + [ts_aux_sym_interface_type_repeat0] = SHIFT(166), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [81] = { + [ts_sym__func_signature] = SHIFT(82), + [ts_aux_sym_token0] = SHIFT(85), + }, + [82] = { + [ts_sym_var_name] = SHIFT(81), + [ts_sym__identifier] = SHIFT(83), + [ts_aux_sym_interface_type_repeat0] = SHIFT(84), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [83] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_var_name, 1), + }, + [84] = { + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 3), + }, + [85] = { + [ts_sym_var_name] = SHIFT(86), + [ts_sym__identifier] = SHIFT(156), + [ts_aux_sym_token1] = SHIFT(157), + }, + [86] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym__func_signature_repeat0] = SHIFT(74), + [ts_aux_sym__func_signature_repeat0] = SHIFT(87), [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym_token8] = SHIFT(140), + [ts_aux_sym_token20] = SHIFT(153), }, - [74] = { - [ts_sym_type_expression] = SHIFT(75), - [ts_sym_pointer_type] = SHIFT(60), - [ts_sym_map_type] = SHIFT(60), - [ts_sym_slice_type] = SHIFT(60), - [ts_sym_struct_type] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(60), - [ts_sym_type_name] = SHIFT(60), - [ts_sym__map] = SHIFT(61), - [ts_sym__interface] = SHIFT(66), - [ts_sym__struct] = SHIFT(88), - [ts_sym__identifier] = SHIFT(46), - [ts_aux_sym_token5] = SHIFT(135), - [ts_aux_sym_token6] = SHIFT(137), + [87] = { + [ts_sym_type_expression] = SHIFT(88), + [ts_sym_pointer_type] = SHIFT(73), + [ts_sym_map_type] = SHIFT(73), + [ts_sym_slice_type] = SHIFT(73), + [ts_sym_struct_type] = SHIFT(73), + [ts_sym_interface_type] = SHIFT(73), + [ts_sym_type_name] = SHIFT(73), + [ts_sym__map] = SHIFT(74), + [ts_sym__interface] = SHIFT(79), + [ts_sym__struct] = SHIFT(101), + [ts_sym__identifier] = SHIFT(59), + [ts_aux_sym_token5] = SHIFT(148), + [ts_aux_sym_token6] = SHIFT(150), }, - [75] = { - [ts_aux_sym__func_signature_repeat2] = SHIFT(76), + [88] = { + [ts_aux_sym__func_signature_repeat2] = SHIFT(89), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token8] = SHIFT(55), + [ts_aux_sym_token20] = SHIFT(68), }, - [76] = { - [ts_aux_sym_token1] = SHIFT(77), + [89] = { + [ts_aux_sym_token1] = SHIFT(90), }, - [77] = { - [ts_sym_type_name] = SHIFT(78), - [ts_sym__identifier] = SHIFT(79), - [ts_aux_sym_token0] = SHIFT(80), + [90] = { + [ts_sym_type_name] = SHIFT(91), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_token0] = SHIFT(93), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 6), }, - [78] = { + [91] = { [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 7), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 7), }, - [79] = { + [92] = { [ts_sym__identifier] = REDUCE(ts_sym_type_name, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_type_name, 1), }, - [80] = { - [ts_sym_var_name] = SHIFT(81), - [ts_sym_type_name] = SHIFT(85), - [ts_sym__identifier] = SHIFT(54), + [93] = { + [ts_sym_var_name] = SHIFT(94), + [ts_sym_type_name] = SHIFT(98), + [ts_sym__identifier] = SHIFT(67), }, - [81] = { - [ts_sym_type_name] = SHIFT(82), - [ts_sym__identifier] = SHIFT(46), + [94] = { + [ts_sym_type_name] = SHIFT(95), + [ts_sym__identifier] = SHIFT(59), }, - [82] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(83), + [95] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(96), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token8] = SHIFT(42), + [ts_aux_sym_token20] = SHIFT(55), }, - [83] = { - [ts_aux_sym_token1] = SHIFT(84), + [96] = { + [ts_aux_sym_token1] = SHIFT(97), }, - [84] = { + [97] = { [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 11), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 11), }, - [85] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(86), + [98] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(99), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token8] = SHIFT(51), + [ts_aux_sym_token20] = SHIFT(64), }, - [86] = { - [ts_aux_sym_token1] = SHIFT(87), + [99] = { + [ts_aux_sym_token1] = SHIFT(100), }, - [87] = { + [100] = { [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 10), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 10), }, - [88] = { - [ts_aux_sym_token3] = SHIFT(89), + [101] = { + [ts_aux_sym_token3] = SHIFT(102), }, - [89] = { - [ts_sym_var_name] = SHIFT(90), - [ts_sym__identifier] = SHIFT(92), - [ts_aux_sym_struct_type_repeat0] = SHIFT(133), + [102] = { + [ts_sym_var_name] = SHIFT(103), + [ts_sym__identifier] = SHIFT(105), + [ts_aux_sym_struct_type_repeat0] = SHIFT(146), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), }, - [90] = { - [ts_sym_type_expression] = SHIFT(91), - [ts_sym_pointer_type] = SHIFT(94), - [ts_sym_map_type] = SHIFT(94), - [ts_sym_slice_type] = SHIFT(94), - [ts_sym_struct_type] = SHIFT(94), - [ts_sym_interface_type] = SHIFT(94), - [ts_sym_type_name] = SHIFT(94), - [ts_sym__map] = SHIFT(95), - [ts_sym__interface] = SHIFT(100), - [ts_sym__struct] = SHIFT(104), - [ts_sym__identifier] = SHIFT(79), - [ts_aux_sym_token5] = SHIFT(108), - [ts_aux_sym_token6] = SHIFT(110), - }, - [91] = { - [ts_sym_var_name] = SHIFT(90), + [103] = { + [ts_sym_type_expression] = SHIFT(104), + [ts_sym_pointer_type] = SHIFT(107), + [ts_sym_map_type] = SHIFT(107), + [ts_sym_slice_type] = SHIFT(107), + [ts_sym_struct_type] = SHIFT(107), + [ts_sym_interface_type] = SHIFT(107), + [ts_sym_type_name] = SHIFT(107), + [ts_sym__map] = SHIFT(108), + [ts_sym__interface] = SHIFT(113), + [ts_sym__struct] = SHIFT(117), [ts_sym__identifier] = SHIFT(92), - [ts_aux_sym_struct_type_repeat0] = SHIFT(93), + [ts_aux_sym_token5] = SHIFT(121), + [ts_aux_sym_token6] = SHIFT(123), + }, + [104] = { + [ts_sym_var_name] = SHIFT(103), + [ts_sym__identifier] = SHIFT(105), + [ts_aux_sym_struct_type_repeat0] = SHIFT(106), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), }, - [92] = { + [105] = { [ts_sym__map] = REDUCE(ts_sym_var_name, 1), [ts_sym__interface] = REDUCE(ts_sym_var_name, 1), [ts_sym__struct] = REDUCE(ts_sym_var_name, 1), @@ -1819,303 +2196,303 @@ PARSE_TABLE = { [ts_aux_sym_token5] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_var_name, 1), }, - [93] = { + [106] = { [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 3), }, - [94] = { + [107] = { [ts_sym__identifier] = REDUCE(ts_sym_type_expression, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_type_expression, 1), }, - [95] = { - [ts_aux_sym_token6] = SHIFT(96), - }, - [96] = { - [ts_sym_type_expression] = SHIFT(97), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), - }, - [97] = { - [ts_aux_sym_token7] = SHIFT(98), - }, - [98] = { - [ts_sym_type_expression] = SHIFT(99), - [ts_sym_pointer_type] = SHIFT(94), - [ts_sym_map_type] = SHIFT(94), - [ts_sym_slice_type] = SHIFT(94), - [ts_sym_struct_type] = SHIFT(94), - [ts_sym_interface_type] = SHIFT(94), - [ts_sym_type_name] = SHIFT(94), - [ts_sym__map] = SHIFT(95), - [ts_sym__interface] = SHIFT(100), - [ts_sym__struct] = SHIFT(104), - [ts_sym__identifier] = SHIFT(79), - [ts_aux_sym_token5] = SHIFT(108), - [ts_aux_sym_token6] = SHIFT(110), - }, - [99] = { - [ts_sym__identifier] = REDUCE(ts_sym_map_type, 5), - [ts_aux_sym_token4] = REDUCE(ts_sym_map_type, 5), - }, - [100] = { - [ts_aux_sym_token3] = SHIFT(101), - }, - [101] = { - [ts_sym_var_name] = SHIFT(68), - [ts_sym__identifier] = SHIFT(70), - [ts_aux_sym_interface_type_repeat0] = SHIFT(102), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), - }, - [102] = { - [ts_aux_sym_token4] = SHIFT(103), - }, - [103] = { - [ts_sym__identifier] = REDUCE(ts_sym_interface_type, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_interface_type, 4), - }, - [104] = { - [ts_aux_sym_token3] = SHIFT(105), - }, - [105] = { - [ts_sym_var_name] = SHIFT(90), - [ts_sym__identifier] = SHIFT(92), - [ts_aux_sym_struct_type_repeat0] = SHIFT(106), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), - }, - [106] = { - [ts_aux_sym_token4] = SHIFT(107), - }, - [107] = { - [ts_sym__identifier] = REDUCE(ts_sym_struct_type, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_struct_type, 4), - }, [108] = { - [ts_sym_type_expression] = SHIFT(109), - [ts_sym_pointer_type] = SHIFT(94), - [ts_sym_map_type] = SHIFT(94), - [ts_sym_slice_type] = SHIFT(94), - [ts_sym_struct_type] = SHIFT(94), - [ts_sym_interface_type] = SHIFT(94), - [ts_sym_type_name] = SHIFT(94), - [ts_sym__map] = SHIFT(95), - [ts_sym__interface] = SHIFT(100), - [ts_sym__struct] = SHIFT(104), - [ts_sym__identifier] = SHIFT(79), - [ts_aux_sym_token5] = SHIFT(108), - [ts_aux_sym_token6] = SHIFT(110), + [ts_aux_sym_token6] = SHIFT(109), }, [109] = { - [ts_sym__identifier] = REDUCE(ts_sym_pointer_type, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_pointer_type, 2), + [ts_sym_type_expression] = SHIFT(110), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), }, [110] = { [ts_aux_sym_token7] = SHIFT(111), }, [111] = { [ts_sym_type_expression] = SHIFT(112), - [ts_sym_pointer_type] = SHIFT(94), - [ts_sym_map_type] = SHIFT(94), - [ts_sym_slice_type] = SHIFT(94), - [ts_sym_struct_type] = SHIFT(94), - [ts_sym_interface_type] = SHIFT(94), - [ts_sym_type_name] = SHIFT(94), - [ts_sym__map] = SHIFT(95), - [ts_sym__interface] = SHIFT(100), - [ts_sym__struct] = SHIFT(104), - [ts_sym__identifier] = SHIFT(79), - [ts_aux_sym_token5] = SHIFT(108), - [ts_aux_sym_token6] = SHIFT(110), + [ts_sym_pointer_type] = SHIFT(107), + [ts_sym_map_type] = SHIFT(107), + [ts_sym_slice_type] = SHIFT(107), + [ts_sym_struct_type] = SHIFT(107), + [ts_sym_interface_type] = SHIFT(107), + [ts_sym_type_name] = SHIFT(107), + [ts_sym__map] = SHIFT(108), + [ts_sym__interface] = SHIFT(113), + [ts_sym__struct] = SHIFT(117), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_token5] = SHIFT(121), + [ts_aux_sym_token6] = SHIFT(123), }, [112] = { + [ts_sym__identifier] = REDUCE(ts_sym_map_type, 5), + [ts_aux_sym_token4] = REDUCE(ts_sym_map_type, 5), + }, + [113] = { + [ts_aux_sym_token3] = SHIFT(114), + }, + [114] = { + [ts_sym_var_name] = SHIFT(81), + [ts_sym__identifier] = SHIFT(83), + [ts_aux_sym_interface_type_repeat0] = SHIFT(115), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [115] = { + [ts_aux_sym_token4] = SHIFT(116), + }, + [116] = { + [ts_sym__identifier] = REDUCE(ts_sym_interface_type, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_interface_type, 4), + }, + [117] = { + [ts_aux_sym_token3] = SHIFT(118), + }, + [118] = { + [ts_sym_var_name] = SHIFT(103), + [ts_sym__identifier] = SHIFT(105), + [ts_aux_sym_struct_type_repeat0] = SHIFT(119), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), + }, + [119] = { + [ts_aux_sym_token4] = SHIFT(120), + }, + [120] = { + [ts_sym__identifier] = REDUCE(ts_sym_struct_type, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_struct_type, 4), + }, + [121] = { + [ts_sym_type_expression] = SHIFT(122), + [ts_sym_pointer_type] = SHIFT(107), + [ts_sym_map_type] = SHIFT(107), + [ts_sym_slice_type] = SHIFT(107), + [ts_sym_struct_type] = SHIFT(107), + [ts_sym_interface_type] = SHIFT(107), + [ts_sym_type_name] = SHIFT(107), + [ts_sym__map] = SHIFT(108), + [ts_sym__interface] = SHIFT(113), + [ts_sym__struct] = SHIFT(117), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_token5] = SHIFT(121), + [ts_aux_sym_token6] = SHIFT(123), + }, + [122] = { + [ts_sym__identifier] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_token4] = REDUCE(ts_sym_pointer_type, 2), + }, + [123] = { + [ts_aux_sym_token7] = SHIFT(124), + }, + [124] = { + [ts_sym_type_expression] = SHIFT(125), + [ts_sym_pointer_type] = SHIFT(107), + [ts_sym_map_type] = SHIFT(107), + [ts_sym_slice_type] = SHIFT(107), + [ts_sym_struct_type] = SHIFT(107), + [ts_sym_interface_type] = SHIFT(107), + [ts_sym_type_name] = SHIFT(107), + [ts_sym__map] = SHIFT(108), + [ts_sym__interface] = SHIFT(113), + [ts_sym__struct] = SHIFT(117), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_token5] = SHIFT(121), + [ts_aux_sym_token6] = SHIFT(123), + }, + [125] = { [ts_sym__identifier] = REDUCE(ts_sym_slice_type, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_slice_type, 3), }, - [113] = { + [126] = { [ts_aux_sym_token7] = REDUCE(ts_sym_type_expression, 1), }, - [114] = { - [ts_aux_sym_token6] = SHIFT(115), - }, - [115] = { - [ts_sym_type_expression] = SHIFT(116), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), - }, - [116] = { - [ts_aux_sym_token7] = SHIFT(117), - }, - [117] = { - [ts_sym_type_expression] = SHIFT(118), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), - }, - [118] = { - [ts_aux_sym_token7] = REDUCE(ts_sym_map_type, 5), - }, - [119] = { - [ts_aux_sym_token3] = SHIFT(120), - }, - [120] = { - [ts_sym_var_name] = SHIFT(68), - [ts_sym__identifier] = SHIFT(70), - [ts_aux_sym_interface_type_repeat0] = SHIFT(121), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), - }, - [121] = { - [ts_aux_sym_token4] = SHIFT(122), - }, - [122] = { - [ts_aux_sym_token7] = REDUCE(ts_sym_interface_type, 4), - }, - [123] = { - [ts_aux_sym_token3] = SHIFT(124), - }, - [124] = { - [ts_sym_var_name] = SHIFT(90), - [ts_sym__identifier] = SHIFT(92), - [ts_aux_sym_struct_type_repeat0] = SHIFT(125), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), - }, - [125] = { - [ts_aux_sym_token4] = SHIFT(126), - }, - [126] = { - [ts_aux_sym_token7] = REDUCE(ts_sym_struct_type, 4), - }, [127] = { - [ts_aux_sym_token7] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token6] = SHIFT(128), }, [128] = { [ts_sym_type_expression] = SHIFT(129), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), }, [129] = { - [ts_aux_sym_token7] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_token7] = SHIFT(130), }, [130] = { - [ts_aux_sym_token7] = SHIFT(131), + [ts_sym_type_expression] = SHIFT(131), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), }, [131] = { - [ts_sym_type_expression] = SHIFT(132), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token7] = REDUCE(ts_sym_map_type, 5), }, [132] = { - [ts_aux_sym_token7] = REDUCE(ts_sym_slice_type, 3), + [ts_aux_sym_token3] = SHIFT(133), }, [133] = { - [ts_aux_sym_token4] = SHIFT(134), + [ts_sym_var_name] = SHIFT(81), + [ts_sym__identifier] = SHIFT(83), + [ts_aux_sym_interface_type_repeat0] = SHIFT(134), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), }, [134] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_struct_type, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_struct_type, 4), + [ts_aux_sym_token4] = SHIFT(135), }, [135] = { - [ts_sym_type_expression] = SHIFT(136), - [ts_sym_pointer_type] = SHIFT(60), - [ts_sym_map_type] = SHIFT(60), - [ts_sym_slice_type] = SHIFT(60), - [ts_sym_struct_type] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(60), - [ts_sym_type_name] = SHIFT(60), - [ts_sym__map] = SHIFT(61), - [ts_sym__interface] = SHIFT(66), - [ts_sym__struct] = SHIFT(88), - [ts_sym__identifier] = SHIFT(46), - [ts_aux_sym_token5] = SHIFT(135), - [ts_aux_sym_token6] = SHIFT(137), + [ts_aux_sym_token7] = REDUCE(ts_sym_interface_type, 4), }, [136] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_pointer_type, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_token3] = SHIFT(137), }, [137] = { - [ts_aux_sym_token7] = SHIFT(138), + [ts_sym_var_name] = SHIFT(103), + [ts_sym__identifier] = SHIFT(105), + [ts_aux_sym_struct_type_repeat0] = SHIFT(138), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), }, [138] = { - [ts_sym_type_expression] = SHIFT(139), - [ts_sym_pointer_type] = SHIFT(60), - [ts_sym_map_type] = SHIFT(60), - [ts_sym_slice_type] = SHIFT(60), - [ts_sym_struct_type] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(60), - [ts_sym_type_name] = SHIFT(60), - [ts_sym__map] = SHIFT(61), - [ts_sym__interface] = SHIFT(66), - [ts_sym__struct] = SHIFT(88), - [ts_sym__identifier] = SHIFT(46), - [ts_aux_sym_token5] = SHIFT(135), - [ts_aux_sym_token6] = SHIFT(137), + [ts_aux_sym_token4] = SHIFT(139), }, [139] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_slice_type, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_slice_type, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_struct_type, 4), }, [140] = { - [ts_sym_var_name] = SHIFT(141), - [ts_sym__identifier] = SHIFT(143), + [ts_aux_sym_token7] = REDUCE(ts_sym_type_name, 1), }, [141] = { + [ts_sym_type_expression] = SHIFT(142), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), + }, + [142] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_pointer_type, 2), + }, + [143] = { + [ts_aux_sym_token7] = SHIFT(144), + }, + [144] = { + [ts_sym_type_expression] = SHIFT(145), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), + }, + [145] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_slice_type, 3), + }, + [146] = { + [ts_aux_sym_token4] = SHIFT(147), + }, + [147] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_struct_type, 4), + [ts_aux_sym_token20] = REDUCE(ts_sym_struct_type, 4), + }, + [148] = { + [ts_sym_type_expression] = SHIFT(149), + [ts_sym_pointer_type] = SHIFT(73), + [ts_sym_map_type] = SHIFT(73), + [ts_sym_slice_type] = SHIFT(73), + [ts_sym_struct_type] = SHIFT(73), + [ts_sym_interface_type] = SHIFT(73), + [ts_sym_type_name] = SHIFT(73), + [ts_sym__map] = SHIFT(74), + [ts_sym__interface] = SHIFT(79), + [ts_sym__struct] = SHIFT(101), + [ts_sym__identifier] = SHIFT(59), + [ts_aux_sym_token5] = SHIFT(148), + [ts_aux_sym_token6] = SHIFT(150), + }, + [149] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_token20] = REDUCE(ts_sym_pointer_type, 2), + }, + [150] = { + [ts_aux_sym_token7] = SHIFT(151), + }, + [151] = { + [ts_sym_type_expression] = SHIFT(152), + [ts_sym_pointer_type] = SHIFT(73), + [ts_sym_map_type] = SHIFT(73), + [ts_sym_slice_type] = SHIFT(73), + [ts_sym_struct_type] = SHIFT(73), + [ts_sym_interface_type] = SHIFT(73), + [ts_sym_type_name] = SHIFT(73), + [ts_sym__map] = SHIFT(74), + [ts_sym__interface] = SHIFT(79), + [ts_sym__struct] = SHIFT(101), + [ts_sym__identifier] = SHIFT(59), + [ts_aux_sym_token5] = SHIFT(148), + [ts_aux_sym_token6] = SHIFT(150), + }, + [152] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_slice_type, 3), + [ts_aux_sym_token20] = REDUCE(ts_sym_slice_type, 3), + }, + [153] = { + [ts_sym_var_name] = SHIFT(154), + [ts_sym__identifier] = SHIFT(156), + }, + [154] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym__func_signature_repeat0] = SHIFT(142), + [ts_aux_sym__func_signature_repeat0] = SHIFT(155), [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym_token8] = SHIFT(140), + [ts_aux_sym_token20] = SHIFT(153), }, - [142] = { + [155] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), @@ -2123,76 +2500,76 @@ PARSE_TABLE = { [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), }, - [143] = { + [156] = { [ts_sym__map] = REDUCE(ts_sym_var_name, 1), [ts_sym__interface] = REDUCE(ts_sym_var_name, 1), [ts_sym__struct] = REDUCE(ts_sym_var_name, 1), [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_token5] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token20] = REDUCE(ts_sym_var_name, 1), }, - [144] = { - [ts_sym_type_name] = SHIFT(145), - [ts_sym__identifier] = SHIFT(79), - [ts_aux_sym_token0] = SHIFT(146), + [157] = { + [ts_sym_type_name] = SHIFT(158), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_token0] = SHIFT(159), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 2), }, - [145] = { + [158] = { [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 3), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 3), }, - [146] = { - [ts_sym_var_name] = SHIFT(147), - [ts_sym_type_name] = SHIFT(150), - [ts_sym__identifier] = SHIFT(54), + [159] = { + [ts_sym_var_name] = SHIFT(160), + [ts_sym_type_name] = SHIFT(163), + [ts_sym__identifier] = SHIFT(67), }, - [147] = { - [ts_sym_type_name] = SHIFT(148), - [ts_sym__identifier] = SHIFT(46), + [160] = { + [ts_sym_type_name] = SHIFT(161), + [ts_sym__identifier] = SHIFT(59), }, - [148] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(149), + [161] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(162), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token8] = SHIFT(42), + [ts_aux_sym_token20] = SHIFT(55), }, - [149] = { - [ts_aux_sym_token1] = SHIFT(78), + [162] = { + [ts_aux_sym_token1] = SHIFT(91), }, - [150] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(151), + [163] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(164), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token8] = SHIFT(51), + [ts_aux_sym_token20] = SHIFT(64), }, - [151] = { - [ts_aux_sym_token1] = SHIFT(152), + [164] = { + [ts_aux_sym_token1] = SHIFT(165), }, - [152] = { + [165] = { [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 6), [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 6), }, - [153] = { - [ts_aux_sym_token4] = SHIFT(154), + [166] = { + [ts_aux_sym_token4] = SHIFT(167), }, - [154] = { + [167] = { [ts_aux_sym_token1] = REDUCE(ts_sym_interface_type, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_interface_type, 4), + [ts_aux_sym_token20] = REDUCE(ts_sym_interface_type, 4), }, - [155] = { - [ts_sym_var_name] = SHIFT(156), - [ts_sym__identifier] = SHIFT(143), + [168] = { + [ts_sym_var_name] = SHIFT(169), + [ts_sym__identifier] = SHIFT(156), }, - [156] = { + [169] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym__func_signature_repeat1] = SHIFT(157), + [ts_aux_sym__func_signature_repeat1] = SHIFT(170), [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token8] = SHIFT(155), + [ts_aux_sym_token20] = SHIFT(168), }, - [157] = { + [170] = { [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), @@ -2200,204 +2577,204 @@ PARSE_TABLE = { [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), }, - [158] = { - [ts_sym_type_name] = SHIFT(159), - [ts_sym__identifier] = SHIFT(36), - [ts_aux_sym_token0] = SHIFT(160), + [171] = { + [ts_sym_type_name] = SHIFT(172), + [ts_sym__identifier] = SHIFT(49), + [ts_aux_sym_token0] = SHIFT(173), [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 2), }, - [159] = { + [172] = { [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 3), }, - [160] = { - [ts_sym_var_name] = SHIFT(161), - [ts_sym_type_name] = SHIFT(164), - [ts_sym__identifier] = SHIFT(54), + [173] = { + [ts_sym_var_name] = SHIFT(174), + [ts_sym_type_name] = SHIFT(177), + [ts_sym__identifier] = SHIFT(67), }, - [161] = { - [ts_sym_type_name] = SHIFT(162), - [ts_sym__identifier] = SHIFT(46), + [174] = { + [ts_sym_type_name] = SHIFT(175), + [ts_sym__identifier] = SHIFT(59), }, - [162] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(163), + [175] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(176), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token8] = SHIFT(42), + [ts_aux_sym_token20] = SHIFT(55), }, - [163] = { - [ts_aux_sym_token1] = SHIFT(35), + [176] = { + [ts_aux_sym_token1] = SHIFT(48), }, - [164] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(165), + [177] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(178), [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token8] = SHIFT(51), + [ts_aux_sym_token20] = SHIFT(64), }, - [165] = { - [ts_aux_sym_token1] = SHIFT(166), + [178] = { + [ts_aux_sym_token1] = SHIFT(179), }, - [166] = { + [179] = { [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 6), }, - [167] = { - [ts_sym_type_name] = SHIFT(168), - [ts_sym__identifier] = SHIFT(190), + [180] = { + [ts_sym_type_name] = SHIFT(181), + [ts_sym__identifier] = SHIFT(203), }, - [168] = { - [ts_sym_type_expression] = SHIFT(169), - [ts_sym_pointer_type] = SHIFT(170), - [ts_sym_map_type] = SHIFT(170), - [ts_sym_slice_type] = SHIFT(170), - [ts_sym_struct_type] = SHIFT(170), - [ts_sym_interface_type] = SHIFT(170), - [ts_sym_type_name] = SHIFT(170), - [ts_sym__map] = SHIFT(171), - [ts_sym__interface] = SHIFT(176), - [ts_sym__struct] = SHIFT(180), - [ts_sym__identifier] = SHIFT(184), - [ts_aux_sym_token5] = SHIFT(185), - [ts_aux_sym_token6] = SHIFT(187), + [181] = { + [ts_sym_type_expression] = SHIFT(182), + [ts_sym_pointer_type] = SHIFT(183), + [ts_sym_map_type] = SHIFT(183), + [ts_sym_slice_type] = SHIFT(183), + [ts_sym_struct_type] = SHIFT(183), + [ts_sym_interface_type] = SHIFT(183), + [ts_sym_type_name] = SHIFT(183), + [ts_sym__map] = SHIFT(184), + [ts_sym__interface] = SHIFT(189), + [ts_sym__struct] = SHIFT(193), + [ts_sym__identifier] = SHIFT(197), + [ts_aux_sym_token5] = SHIFT(198), + [ts_aux_sym_token6] = SHIFT(200), }, - [169] = { + [182] = { [ts_builtin_sym_end] = REDUCE(ts_sym_type_declaration, 3), [ts_sym__var] = REDUCE(ts_sym_type_declaration, 3), [ts_sym__func] = REDUCE(ts_sym_type_declaration, 3), [ts_sym__type] = REDUCE(ts_sym_type_declaration, 3), }, - [170] = { + [183] = { [ts_builtin_sym_end] = REDUCE(ts_sym_type_expression, 1), [ts_sym__var] = REDUCE(ts_sym_type_expression, 1), [ts_sym__func] = REDUCE(ts_sym_type_expression, 1), [ts_sym__type] = REDUCE(ts_sym_type_expression, 1), }, - [171] = { - [ts_aux_sym_token6] = SHIFT(172), + [184] = { + [ts_aux_sym_token6] = SHIFT(185), }, - [172] = { - [ts_sym_type_expression] = SHIFT(173), - [ts_sym_pointer_type] = SHIFT(113), - [ts_sym_map_type] = SHIFT(113), - [ts_sym_slice_type] = SHIFT(113), - [ts_sym_struct_type] = SHIFT(113), - [ts_sym_interface_type] = SHIFT(113), - [ts_sym_type_name] = SHIFT(113), - [ts_sym__map] = SHIFT(114), - [ts_sym__interface] = SHIFT(119), - [ts_sym__struct] = SHIFT(123), - [ts_sym__identifier] = SHIFT(127), - [ts_aux_sym_token5] = SHIFT(128), - [ts_aux_sym_token6] = SHIFT(130), + [185] = { + [ts_sym_type_expression] = SHIFT(186), + [ts_sym_pointer_type] = SHIFT(126), + [ts_sym_map_type] = SHIFT(126), + [ts_sym_slice_type] = SHIFT(126), + [ts_sym_struct_type] = SHIFT(126), + [ts_sym_interface_type] = SHIFT(126), + [ts_sym_type_name] = SHIFT(126), + [ts_sym__map] = SHIFT(127), + [ts_sym__interface] = SHIFT(132), + [ts_sym__struct] = SHIFT(136), + [ts_sym__identifier] = SHIFT(140), + [ts_aux_sym_token5] = SHIFT(141), + [ts_aux_sym_token6] = SHIFT(143), }, - [173] = { - [ts_aux_sym_token7] = SHIFT(174), + [186] = { + [ts_aux_sym_token7] = SHIFT(187), }, - [174] = { - [ts_sym_type_expression] = SHIFT(175), - [ts_sym_pointer_type] = SHIFT(170), - [ts_sym_map_type] = SHIFT(170), - [ts_sym_slice_type] = SHIFT(170), - [ts_sym_struct_type] = SHIFT(170), - [ts_sym_interface_type] = SHIFT(170), - [ts_sym_type_name] = SHIFT(170), - [ts_sym__map] = SHIFT(171), - [ts_sym__interface] = SHIFT(176), - [ts_sym__struct] = SHIFT(180), - [ts_sym__identifier] = SHIFT(184), - [ts_aux_sym_token5] = SHIFT(185), - [ts_aux_sym_token6] = SHIFT(187), + [187] = { + [ts_sym_type_expression] = SHIFT(188), + [ts_sym_pointer_type] = SHIFT(183), + [ts_sym_map_type] = SHIFT(183), + [ts_sym_slice_type] = SHIFT(183), + [ts_sym_struct_type] = SHIFT(183), + [ts_sym_interface_type] = SHIFT(183), + [ts_sym_type_name] = SHIFT(183), + [ts_sym__map] = SHIFT(184), + [ts_sym__interface] = SHIFT(189), + [ts_sym__struct] = SHIFT(193), + [ts_sym__identifier] = SHIFT(197), + [ts_aux_sym_token5] = SHIFT(198), + [ts_aux_sym_token6] = SHIFT(200), }, - [175] = { + [188] = { [ts_builtin_sym_end] = REDUCE(ts_sym_map_type, 5), [ts_sym__var] = REDUCE(ts_sym_map_type, 5), [ts_sym__func] = REDUCE(ts_sym_map_type, 5), [ts_sym__type] = REDUCE(ts_sym_map_type, 5), }, - [176] = { - [ts_aux_sym_token3] = SHIFT(177), + [189] = { + [ts_aux_sym_token3] = SHIFT(190), }, - [177] = { - [ts_sym_var_name] = SHIFT(68), - [ts_sym__identifier] = SHIFT(70), - [ts_aux_sym_interface_type_repeat0] = SHIFT(178), + [190] = { + [ts_sym_var_name] = SHIFT(81), + [ts_sym__identifier] = SHIFT(83), + [ts_aux_sym_interface_type_repeat0] = SHIFT(191), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), }, - [178] = { - [ts_aux_sym_token4] = SHIFT(179), + [191] = { + [ts_aux_sym_token4] = SHIFT(192), }, - [179] = { + [192] = { [ts_builtin_sym_end] = REDUCE(ts_sym_interface_type, 4), [ts_sym__var] = REDUCE(ts_sym_interface_type, 4), [ts_sym__func] = REDUCE(ts_sym_interface_type, 4), [ts_sym__type] = REDUCE(ts_sym_interface_type, 4), }, - [180] = { - [ts_aux_sym_token3] = SHIFT(181), + [193] = { + [ts_aux_sym_token3] = SHIFT(194), }, - [181] = { - [ts_sym_var_name] = SHIFT(90), - [ts_sym__identifier] = SHIFT(92), - [ts_aux_sym_struct_type_repeat0] = SHIFT(182), + [194] = { + [ts_sym_var_name] = SHIFT(103), + [ts_sym__identifier] = SHIFT(105), + [ts_aux_sym_struct_type_repeat0] = SHIFT(195), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), }, - [182] = { - [ts_aux_sym_token4] = SHIFT(183), + [195] = { + [ts_aux_sym_token4] = SHIFT(196), }, - [183] = { + [196] = { [ts_builtin_sym_end] = REDUCE(ts_sym_struct_type, 4), [ts_sym__var] = REDUCE(ts_sym_struct_type, 4), [ts_sym__func] = REDUCE(ts_sym_struct_type, 4), [ts_sym__type] = REDUCE(ts_sym_struct_type, 4), }, - [184] = { + [197] = { [ts_builtin_sym_end] = REDUCE(ts_sym_type_name, 1), [ts_sym__var] = REDUCE(ts_sym_type_name, 1), [ts_sym__func] = REDUCE(ts_sym_type_name, 1), [ts_sym__type] = REDUCE(ts_sym_type_name, 1), }, - [185] = { - [ts_sym_type_expression] = SHIFT(186), - [ts_sym_pointer_type] = SHIFT(170), - [ts_sym_map_type] = SHIFT(170), - [ts_sym_slice_type] = SHIFT(170), - [ts_sym_struct_type] = SHIFT(170), - [ts_sym_interface_type] = SHIFT(170), - [ts_sym_type_name] = SHIFT(170), - [ts_sym__map] = SHIFT(171), - [ts_sym__interface] = SHIFT(176), - [ts_sym__struct] = SHIFT(180), - [ts_sym__identifier] = SHIFT(184), - [ts_aux_sym_token5] = SHIFT(185), - [ts_aux_sym_token6] = SHIFT(187), + [198] = { + [ts_sym_type_expression] = SHIFT(199), + [ts_sym_pointer_type] = SHIFT(183), + [ts_sym_map_type] = SHIFT(183), + [ts_sym_slice_type] = SHIFT(183), + [ts_sym_struct_type] = SHIFT(183), + [ts_sym_interface_type] = SHIFT(183), + [ts_sym_type_name] = SHIFT(183), + [ts_sym__map] = SHIFT(184), + [ts_sym__interface] = SHIFT(189), + [ts_sym__struct] = SHIFT(193), + [ts_sym__identifier] = SHIFT(197), + [ts_aux_sym_token5] = SHIFT(198), + [ts_aux_sym_token6] = SHIFT(200), }, - [186] = { + [199] = { [ts_builtin_sym_end] = REDUCE(ts_sym_pointer_type, 2), [ts_sym__var] = REDUCE(ts_sym_pointer_type, 2), [ts_sym__func] = REDUCE(ts_sym_pointer_type, 2), [ts_sym__type] = REDUCE(ts_sym_pointer_type, 2), }, - [187] = { - [ts_aux_sym_token7] = SHIFT(188), + [200] = { + [ts_aux_sym_token7] = SHIFT(201), }, - [188] = { - [ts_sym_type_expression] = SHIFT(189), - [ts_sym_pointer_type] = SHIFT(170), - [ts_sym_map_type] = SHIFT(170), - [ts_sym_slice_type] = SHIFT(170), - [ts_sym_struct_type] = SHIFT(170), - [ts_sym_interface_type] = SHIFT(170), - [ts_sym_type_name] = SHIFT(170), - [ts_sym__map] = SHIFT(171), - [ts_sym__interface] = SHIFT(176), - [ts_sym__struct] = SHIFT(180), - [ts_sym__identifier] = SHIFT(184), - [ts_aux_sym_token5] = SHIFT(185), - [ts_aux_sym_token6] = SHIFT(187), + [201] = { + [ts_sym_type_expression] = SHIFT(202), + [ts_sym_pointer_type] = SHIFT(183), + [ts_sym_map_type] = SHIFT(183), + [ts_sym_slice_type] = SHIFT(183), + [ts_sym_struct_type] = SHIFT(183), + [ts_sym_interface_type] = SHIFT(183), + [ts_sym_type_name] = SHIFT(183), + [ts_sym__map] = SHIFT(184), + [ts_sym__interface] = SHIFT(189), + [ts_sym__struct] = SHIFT(193), + [ts_sym__identifier] = SHIFT(197), + [ts_aux_sym_token5] = SHIFT(198), + [ts_aux_sym_token6] = SHIFT(200), }, - [189] = { + [202] = { [ts_builtin_sym_end] = REDUCE(ts_sym_slice_type, 3), [ts_sym__var] = REDUCE(ts_sym_slice_type, 3), [ts_sym__func] = REDUCE(ts_sym_slice_type, 3), [ts_sym__type] = REDUCE(ts_sym_slice_type, 3), }, - [190] = { + [203] = { [ts_sym__map] = REDUCE(ts_sym_type_name, 1), [ts_sym__interface] = REDUCE(ts_sym_type_name, 1), [ts_sym__struct] = REDUCE(ts_sym_type_name, 1), @@ -2405,24 +2782,24 @@ PARSE_TABLE = { [ts_aux_sym_token5] = REDUCE(ts_sym_type_name, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_type_name, 1), }, - [191] = { + [204] = { [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 2), }, - [192] = { + [205] = { [ts_builtin_sym_end] = REDUCE(ts_sym_program, 3), }, - [193] = { - [ts_sym_package_name] = SHIFT(194), - [ts_sym__identifier] = SHIFT(195), + [206] = { + [ts_sym_package_name] = SHIFT(207), + [ts_sym__identifier] = SHIFT(208), }, - [194] = { + [207] = { [ts_builtin_sym_end] = REDUCE(ts_sym_package_directive, 2), [ts_sym__import] = REDUCE(ts_sym_package_directive, 2), [ts_sym__var] = REDUCE(ts_sym_package_directive, 2), [ts_sym__func] = REDUCE(ts_sym_package_directive, 2), [ts_sym__type] = REDUCE(ts_sym_package_directive, 2), }, - [195] = { + [208] = { [ts_builtin_sym_end] = REDUCE(ts_sym_package_name, 1), [ts_sym__import] = REDUCE(ts_sym_package_name, 1), [ts_sym__var] = REDUCE(ts_sym_package_name, 1), diff --git a/src/compiler/build_tables/follow_sets.cc b/src/compiler/build_tables/follow_sets.cc index 75ad9135..be7c29ed 100644 --- a/src/compiler/build_tables/follow_sets.cc +++ b/src/compiler/build_tables/follow_sets.cc @@ -12,9 +12,8 @@ namespace tree_sitter { namespace build_tables { map> follow_sets(const ParseItem &item, - const PreparedGrammar &grammar) { + const PreparedGrammar &grammar) { map> result; - for (auto &pair : sym_transitions(item.rule)) { ISymbol symbol = pair.first; rule_ptr next_rule = pair.second;