From 123d3b26d826a5fd893273daffde80c0cbf5f6e4 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 10 Jun 2014 11:33:05 -0700 Subject: [PATCH] Add more expressions, statements to golang grammar --- examples/grammars/golang.cc | 27 +- examples/parsers/golang.c | 2370 +++++++++++++---- .../runtime/languages/golang/flow_control.txt | 52 + src/compiler/prepared_grammar.cc | 10 +- 4 files changed, 1917 insertions(+), 542 deletions(-) create mode 100644 spec/runtime/languages/golang/flow_control.txt diff --git a/examples/grammars/golang.cc b/examples/grammars/golang.cc index 75ae494c..4e769480 100644 --- a/examples/grammars/golang.cc +++ b/examples/grammars/golang.cc @@ -43,7 +43,7 @@ namespace tree_sitter_examples { sym("var_name"), sym("_func_signature"), sym("statement_block") })) }, - { "statement_block", in_braces(blank()) }, + { "statement_block", in_braces(err(repeat(sym("statement")))) }, { "type_expression", choice({ sym("pointer_type"), sym("slice_type"), @@ -58,13 +58,10 @@ namespace tree_sitter_examples { sym("type_expression") }) }, { "map_type", seq({ keyword("map"), - str("["), - sym("type_expression"), - str("]"), + in_brackets(sym("type_expression")), sym("type_expression") }) }, { "slice_type", seq({ - str("["), - str("]"), + in_brackets(blank()), sym("type_expression") }) }, { "struct_type", seq({ keyword("struct"), @@ -77,13 +74,31 @@ namespace tree_sitter_examples { sym("var_name"), sym("_func_signature") }))) }) }, + // Statements + { "statement", choice({ + sym("expression_statement"), + sym("return_statement") }) }, + { "return_statement", seq({ + keyword("return"), + comma_sep(sym("expression")) }) }, + { "expression_statement", terminated(sym("expression")) }, + // Value expressions { "expression", choice({ + sym("call_expression"), + sym("selector_expression"), sym("math_op"), sym("bool_op"), sym("number"), sym("string"), sym("var_name") }) }, + { "call_expression", seq({ + sym("expression"), + in_parens(comma_sep(sym("expression"))) }) }, + { "selector_expression", seq({ + sym("expression"), + str("."), + sym("var_name") }) }, { "math_op", choice({ infix_op("*", "expression", 2), infix_op("/", "expression", 2), diff --git a/examples/parsers/golang.c b/examples/parsers/golang.c index 043c4339..ab66c347 100644 --- a/examples/parsers/golang.c +++ b/examples/parsers/golang.c @@ -1,7 +1,7 @@ #include "tree_sitter/parser.h" -#define STATE_COUNT 212 -#define SYMBOL_COUNT 67 +#define STATE_COUNT 276 +#define SYMBOL_COUNT 77 enum { ts_sym_program = ts_start_sym, @@ -19,7 +19,12 @@ enum { ts_sym_slice_type, ts_sym_struct_type, ts_sym_interface_type, + ts_sym_statement, + ts_sym_return_statement, + ts_sym_expression_statement, ts_sym_expression, + ts_sym_call_expression, + ts_sym_selector_expression, ts_sym_math_op, ts_sym_bool_op, ts_sym__func_signature, @@ -34,8 +39,11 @@ enum { ts_aux_sym_program_repeat0, ts_aux_sym_program_repeat1, ts_aux_sym_imports_block_repeat0, + ts_aux_sym_statement_block_repeat0, ts_aux_sym_struct_type_repeat0, ts_aux_sym_interface_type_repeat0, + ts_aux_sym_return_statement_repeat0, + ts_aux_sym_call_expression_repeat0, ts_aux_sym__func_signature_repeat0, ts_aux_sym__func_signature_repeat1, ts_aux_sym__func_signature_repeat2, @@ -57,6 +65,7 @@ enum { ts_aux_sym_8, ts_aux_sym_struct, ts_aux_sym_interface, + ts_aux_sym_return, ts_aux_sym_9, ts_aux_sym_10, ts_aux_sym_11, @@ -69,6 +78,7 @@ enum { ts_aux_sym_18, ts_aux_sym_19, ts_aux_sym_20, + ts_aux_sym_21, }; SYMBOL_NAMES = { @@ -87,7 +97,12 @@ SYMBOL_NAMES = { [ts_sym_slice_type] = "slice_type", [ts_sym_struct_type] = "struct_type", [ts_sym_interface_type] = "interface_type", + [ts_sym_statement] = "statement", + [ts_sym_return_statement] = "return_statement", + [ts_sym_expression_statement] = "expression_statement", [ts_sym_expression] = "expression", + [ts_sym_call_expression] = "call_expression", + [ts_sym_selector_expression] = "selector_expression", [ts_sym_math_op] = "math_op", [ts_sym_bool_op] = "bool_op", [ts_sym__func_signature] = "_func_signature", @@ -104,8 +119,11 @@ SYMBOL_NAMES = { [ts_aux_sym_program_repeat0] = "program_repeat0", [ts_aux_sym_program_repeat1] = "program_repeat1", [ts_aux_sym_imports_block_repeat0] = "imports_block_repeat0", + [ts_aux_sym_statement_block_repeat0] = "statement_block_repeat0", [ts_aux_sym_struct_type_repeat0] = "struct_type_repeat0", [ts_aux_sym_interface_type_repeat0] = "interface_type_repeat0", + [ts_aux_sym_return_statement_repeat0] = "return_statement_repeat0", + [ts_aux_sym_call_expression_repeat0] = "call_expression_repeat0", [ts_aux_sym__func_signature_repeat0] = "_func_signature_repeat0", [ts_aux_sym__func_signature_repeat1] = "_func_signature_repeat1", [ts_aux_sym__func_signature_repeat2] = "_func_signature_repeat2", @@ -127,18 +145,20 @@ SYMBOL_NAMES = { [ts_aux_sym_8] = "']'", [ts_aux_sym_struct] = "'struct'", [ts_aux_sym_interface] = "'interface'", - [ts_aux_sym_9] = "'/'", - [ts_aux_sym_10] = "'+'", - [ts_aux_sym_11] = "'-'", - [ts_aux_sym_12] = "'||'", - [ts_aux_sym_13] = "'&&'", - [ts_aux_sym_14] = "'=='", - [ts_aux_sym_15] = "'<='", - [ts_aux_sym_16] = "'<'", - [ts_aux_sym_17] = "'>='", - [ts_aux_sym_18] = "'>'", - [ts_aux_sym_19] = "'!'", - [ts_aux_sym_20] = "','", + [ts_aux_sym_return] = "'return'", + [ts_aux_sym_9] = "','", + [ts_aux_sym_10] = "'.'", + [ts_aux_sym_11] = "'/'", + [ts_aux_sym_12] = "'+'", + [ts_aux_sym_13] = "'-'", + [ts_aux_sym_14] = "'||'", + [ts_aux_sym_15] = "'&&'", + [ts_aux_sym_16] = "'=='", + [ts_aux_sym_17] = "'<='", + [ts_aux_sym_18] = "'<'", + [ts_aux_sym_19] = "'>='", + [ts_aux_sym_20] = "'>'", + [ts_aux_sym_21] = "'!'", }; UBIQUITOUS_SYMBOLS = { @@ -152,8 +172,11 @@ HIDDEN_SYMBOLS = { [ts_aux_sym_program_repeat0] = 1, [ts_aux_sym_program_repeat1] = 1, [ts_aux_sym_imports_block_repeat0] = 1, + [ts_aux_sym_statement_block_repeat0] = 1, [ts_aux_sym_struct_type_repeat0] = 1, [ts_aux_sym_interface_type_repeat0] = 1, + [ts_aux_sym_return_statement_repeat0] = 1, + [ts_aux_sym_call_expression_repeat0] = 1, [ts_aux_sym__func_signature_repeat0] = 1, [ts_aux_sym__func_signature_repeat1] = 1, [ts_aux_sym__func_signature_repeat2] = 1, @@ -175,6 +198,7 @@ HIDDEN_SYMBOLS = { [ts_aux_sym_8] = 1, [ts_aux_sym_struct] = 1, [ts_aux_sym_interface] = 1, + [ts_aux_sym_return] = 1, [ts_aux_sym_9] = 1, [ts_aux_sym_10] = 1, [ts_aux_sym_11] = 1, @@ -187,6 +211,7 @@ HIDDEN_SYMBOLS = { [ts_aux_sym_18] = 1, [ts_aux_sym_19] = 1, [ts_aux_sym_20] = 1, + [ts_aux_sym_21] = 1, }; LEX_FN() { @@ -759,7 +784,7 @@ LEX_FN() { ADVANCE(58); LEX_ERROR(); case 78: - ACCEPT_TOKEN(ts_aux_sym_20); + ACCEPT_TOKEN(ts_aux_sym_9); case 79: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || @@ -837,7 +862,7 @@ LEX_FN() { ADVANCE(42); LEX_ERROR(); case 85: - ACCEPT_TOKEN(ts_aux_sym_19); + ACCEPT_TOKEN(ts_aux_sym_21); case 86: if (lookahead == '.') ADVANCE(87); @@ -862,24 +887,28 @@ LEX_FN() { ADVANCE(90); if (lookahead == '&') ADVANCE(91); + if (lookahead == '(') + ADVANCE(37); if (lookahead == '*') ADVANCE(44); if (lookahead == '+') ADVANCE(93); if (lookahead == '-') ADVANCE(94); - if (lookahead == '/') + if (lookahead == '.') ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); if (lookahead == ';') ADVANCE(66); if (lookahead == '<') - ADVANCE(96); + ADVANCE(97); if (lookahead == '=') - ADVANCE(98); + ADVANCE(99); if (lookahead == '>') - ADVANCE(100); + ADVANCE(101); if (lookahead == '|') - ADVANCE(102); + ADVANCE(103); LEX_ERROR(); case 90: START_TOKEN(); @@ -887,69 +916,248 @@ LEX_FN() { ADVANCE(90); if (lookahead == '&') ADVANCE(91); + if (lookahead == '(') + ADVANCE(37); if (lookahead == '*') ADVANCE(44); if (lookahead == '+') ADVANCE(93); if (lookahead == '-') ADVANCE(94); - if (lookahead == '/') + if (lookahead == '.') ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); if (lookahead == ';') ADVANCE(66); if (lookahead == '<') - ADVANCE(96); + ADVANCE(97); if (lookahead == '=') - ADVANCE(98); + ADVANCE(99); if (lookahead == '>') - ADVANCE(100); + ADVANCE(101); if (lookahead == '|') - ADVANCE(102); + ADVANCE(103); ACCEPT_TOKEN(ts_sym__terminator); case 91: if (lookahead == '&') ADVANCE(92); LEX_ERROR(); case 92: - ACCEPT_TOKEN(ts_aux_sym_13); + ACCEPT_TOKEN(ts_aux_sym_15); case 93: - ACCEPT_TOKEN(ts_aux_sym_10); + ACCEPT_TOKEN(ts_aux_sym_12); case 94: - ACCEPT_TOKEN(ts_aux_sym_11); + ACCEPT_TOKEN(ts_aux_sym_13); case 95: + ACCEPT_TOKEN(ts_aux_sym_10); + case 96: if (lookahead == '/') ADVANCE(3); - ACCEPT_TOKEN(ts_aux_sym_9); - case 96: - if (lookahead == '=') - ADVANCE(97); - ACCEPT_TOKEN(ts_aux_sym_16); + ACCEPT_TOKEN(ts_aux_sym_11); case 97: - ACCEPT_TOKEN(ts_aux_sym_15); - case 98: if (lookahead == '=') - ADVANCE(99); - LEX_ERROR(); - case 99: - ACCEPT_TOKEN(ts_aux_sym_14); - case 100: - if (lookahead == '=') - ADVANCE(101); + ADVANCE(98); ACCEPT_TOKEN(ts_aux_sym_18); - case 101: + case 98: ACCEPT_TOKEN(ts_aux_sym_17); - case 102: - if (lookahead == '|') - ADVANCE(103); + case 99: + if (lookahead == '=') + ADVANCE(100); LEX_ERROR(); + case 100: + ACCEPT_TOKEN(ts_aux_sym_16); + case 101: + if (lookahead == '=') + ADVANCE(102); + ACCEPT_TOKEN(ts_aux_sym_20); + case 102: + ACCEPT_TOKEN(ts_aux_sym_19); case 103: - ACCEPT_TOKEN(ts_aux_sym_12); + if (lookahead == '|') + ADVANCE(104); + LEX_ERROR(); case 104: + ACCEPT_TOKEN(ts_aux_sym_14); + case 105: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(104); + ADVANCE(105); + if (lookahead == '!') + ADVANCE(85); + if (lookahead == '\"') + ADVANCE(33); + if (lookahead == ')') + ADVANCE(39); + if (lookahead == '/') + ADVANCE(2); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + LEX_ERROR(); + case 106: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(106); + if (lookahead == '&') + ADVANCE(91); + if (lookahead == '(') + ADVANCE(37); + if (lookahead == ')') + ADVANCE(39); + if (lookahead == '*') + ADVANCE(44); + if (lookahead == '+') + ADVANCE(93); + if (lookahead == ',') + ADVANCE(78); + if (lookahead == '-') + ADVANCE(94); + if (lookahead == '.') + ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); + if (lookahead == '<') + ADVANCE(97); + if (lookahead == '=') + ADVANCE(99); + if (lookahead == '>') + ADVANCE(101); + if (lookahead == '|') + ADVANCE(103); + LEX_ERROR(); + case 107: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(107); + if (lookahead == '!') + ADVANCE(85); + if (lookahead == '\"') + ADVANCE(33); + if (lookahead == '/') + ADVANCE(2); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'r') + ADVANCE(108); + if (lookahead == '}') + ADVANCE(73); + LEX_ERROR(); + case 108: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'e') + ADVANCE(109); + ACCEPT_TOKEN(ts_sym__identifier); + case 109: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 't') + ADVANCE(110); + ACCEPT_TOKEN(ts_sym__identifier); + case 110: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'u') + ADVANCE(111); + ACCEPT_TOKEN(ts_sym__identifier); + case 111: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'r') + ADVANCE(112); + ACCEPT_TOKEN(ts_sym__identifier); + case 112: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'n') + ADVANCE(113); + ACCEPT_TOKEN(ts_sym__identifier); + case 113: + ACCEPT_TOKEN(ts_aux_sym_return); + case 114: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(114); + if (lookahead == '!') + ADVANCE(85); + if (lookahead == '\"') + ADVANCE(33); + if (lookahead == '&') + ADVANCE(91); + if (lookahead == '(') + ADVANCE(37); + if (lookahead == '*') + ADVANCE(44); + if (lookahead == '+') + ADVANCE(93); + if (lookahead == ',') + ADVANCE(78); + if (lookahead == '-') + ADVANCE(94); + if (lookahead == '.') + ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(86); + if (lookahead == '<') + ADVANCE(97); + if (lookahead == '=') + ADVANCE(99); + if (lookahead == '>') + ADVANCE(101); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'r') + ADVANCE(108); + if (lookahead == '|') + ADVANCE(103); + if (lookahead == '}') + ADVANCE(73); + LEX_ERROR(); + case 115: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(115); if (lookahead == '(') ADVANCE(37); if (lookahead == '/') @@ -960,16 +1168,16 @@ LEX_FN() { if (lookahead == '{') ADVANCE(71); LEX_ERROR(); - case 105: + case 116: START_TOKEN(); if (lookahead == '\0') ADVANCE(12); if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(105); + ADVANCE(116); if (lookahead == '\n') - ADVANCE(106); + ADVANCE(117); if (lookahead == '!') ADVANCE(85); if (lookahead == '\"') @@ -988,24 +1196,26 @@ LEX_FN() { ADVANCE(78); if (lookahead == '-') ADVANCE(94); - if (lookahead == '/') + if (lookahead == '.') ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); if ('0' <= lookahead && lookahead <= '9') ADVANCE(86); if (lookahead == ';') ADVANCE(66); if (lookahead == '<') - ADVANCE(96); + ADVANCE(97); if (lookahead == '=') - ADVANCE(107); + ADVANCE(118); if (lookahead == '>') - ADVANCE(100); + ADVANCE(101); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'r') || + (lookahead == 'q') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) ADVANCE(42); @@ -1014,32 +1224,34 @@ LEX_FN() { if (lookahead == ']') ADVANCE(69); if (lookahead == 'f') - ADVANCE(108); + ADVANCE(119); if (lookahead == 'i') - ADVANCE(112); + ADVANCE(123); if (lookahead == 'm') ADVANCE(55); if (lookahead == 'p') - ADVANCE(118); + ADVANCE(129); + if (lookahead == 'r') + ADVANCE(108); if (lookahead == 's') ADVANCE(58); if (lookahead == 't') - ADVANCE(125); + ADVANCE(136); if (lookahead == 'v') - ADVANCE(129); + ADVANCE(140); if (lookahead == '{') ADVANCE(71); if (lookahead == '|') - ADVANCE(102); + ADVANCE(103); if (lookahead == '}') ADVANCE(73); LEX_ERROR(); - case 106: + case 117: START_TOKEN(); if (lookahead == '\0') ADVANCE(12); if (lookahead == '\n') - ADVANCE(106); + ADVANCE(117); if (lookahead == '!') ADVANCE(85); if (lookahead == '\"') @@ -1058,24 +1270,26 @@ LEX_FN() { ADVANCE(78); if (lookahead == '-') ADVANCE(94); - if (lookahead == '/') + if (lookahead == '.') ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); if ('0' <= lookahead && lookahead <= '9') ADVANCE(86); if (lookahead == ';') ADVANCE(66); if (lookahead == '<') - ADVANCE(96); + ADVANCE(97); if (lookahead == '=') - ADVANCE(107); + ADVANCE(118); if (lookahead == '>') - ADVANCE(100); + ADVANCE(101); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'r') || + (lookahead == 'q') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) ADVANCE(42); @@ -1084,31 +1298,33 @@ LEX_FN() { if (lookahead == ']') ADVANCE(69); if (lookahead == 'f') - ADVANCE(108); + ADVANCE(119); if (lookahead == 'i') - ADVANCE(112); + ADVANCE(123); if (lookahead == 'm') ADVANCE(55); if (lookahead == 'p') - ADVANCE(118); + ADVANCE(129); + if (lookahead == 'r') + ADVANCE(108); if (lookahead == 's') ADVANCE(58); if (lookahead == 't') - ADVANCE(125); + ADVANCE(136); if (lookahead == 'v') - ADVANCE(129); + ADVANCE(140); if (lookahead == '{') ADVANCE(71); if (lookahead == '|') - ADVANCE(102); + ADVANCE(103); if (lookahead == '}') ADVANCE(73); ACCEPT_TOKEN(ts_sym__terminator); - case 107: + case 118: if (lookahead == '=') - ADVANCE(99); + ADVANCE(100); ACCEPT_TOKEN(ts_aux_sym_3); - case 108: + case 119: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1116,9 +1332,9 @@ LEX_FN() { ('v' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'u') - ADVANCE(109); + ADVANCE(120); ACCEPT_TOKEN(ts_sym__identifier); - case 109: + case 120: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1126,9 +1342,9 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'n') - ADVANCE(110); + ADVANCE(121); ACCEPT_TOKEN(ts_sym__identifier); - case 110: + case 121: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1136,11 +1352,11 @@ LEX_FN() { ('d' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'c') - ADVANCE(111); + ADVANCE(122); ACCEPT_TOKEN(ts_sym__identifier); - case 111: + case 122: ACCEPT_TOKEN(ts_aux_sym_func); - case 112: + case 123: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1148,11 +1364,11 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'm') - ADVANCE(113); + ADVANCE(124); if (lookahead == 'n') ADVANCE(47); ACCEPT_TOKEN(ts_sym__identifier); - case 113: + case 124: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1160,9 +1376,9 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'p') - ADVANCE(114); + ADVANCE(125); ACCEPT_TOKEN(ts_sym__identifier); - case 114: + case 125: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1170,9 +1386,9 @@ LEX_FN() { ('p' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'o') - ADVANCE(115); + ADVANCE(126); ACCEPT_TOKEN(ts_sym__identifier); - case 115: + case 126: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1180,9 +1396,9 @@ LEX_FN() { ('s' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'r') - ADVANCE(116); + ADVANCE(127); ACCEPT_TOKEN(ts_sym__identifier); - case 116: + case 127: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1190,102 +1406,10 @@ LEX_FN() { ('u' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 't') - ADVANCE(117); - ACCEPT_TOKEN(ts_sym__identifier); - case 117: - ACCEPT_TOKEN(ts_aux_sym_import); - case 118: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'a') - ADVANCE(119); - ACCEPT_TOKEN(ts_sym__identifier); - case 119: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'c') - ADVANCE(120); - ACCEPT_TOKEN(ts_sym__identifier); - case 120: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'j') || - ('l' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'k') - ADVANCE(121); - ACCEPT_TOKEN(ts_sym__identifier); - case 121: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'a') - ADVANCE(122); - ACCEPT_TOKEN(ts_sym__identifier); - case 122: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'f') || - ('h' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'g') - ADVANCE(123); - ACCEPT_TOKEN(ts_sym__identifier); - case 123: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'e') - ADVANCE(124); - ACCEPT_TOKEN(ts_sym__identifier); - case 124: - ACCEPT_TOKEN(ts_aux_sym_package); - case 125: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'x') || - (lookahead == 'z')) - ADVANCE(42); - if (lookahead == 'y') - ADVANCE(126); - ACCEPT_TOKEN(ts_sym__identifier); - case 126: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'p') - ADVANCE(127); - ACCEPT_TOKEN(ts_sym__identifier); - case 127: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(42); - if (lookahead == 'e') ADVANCE(128); ACCEPT_TOKEN(ts_sym__identifier); case 128: - ACCEPT_TOKEN(ts_aux_sym_type); + ACCEPT_TOKEN(ts_aux_sym_import); case 129: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || @@ -1296,6 +1420,98 @@ LEX_FN() { ADVANCE(130); ACCEPT_TOKEN(ts_sym__identifier); case 130: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'c') + ADVANCE(131); + ACCEPT_TOKEN(ts_sym__identifier); + case 131: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'j') || + ('l' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'k') + ADVANCE(132); + ACCEPT_TOKEN(ts_sym__identifier); + case 132: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'a') + ADVANCE(133); + ACCEPT_TOKEN(ts_sym__identifier); + case 133: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'f') || + ('h' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'g') + ADVANCE(134); + ACCEPT_TOKEN(ts_sym__identifier); + case 134: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'e') + ADVANCE(135); + ACCEPT_TOKEN(ts_sym__identifier); + case 135: + ACCEPT_TOKEN(ts_aux_sym_package); + case 136: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'x') || + (lookahead == 'z')) + ADVANCE(42); + if (lookahead == 'y') + ADVANCE(137); + ACCEPT_TOKEN(ts_sym__identifier); + case 137: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'p') + ADVANCE(138); + ACCEPT_TOKEN(ts_sym__identifier); + case 138: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'e') + ADVANCE(139); + ACCEPT_TOKEN(ts_sym__identifier); + case 139: + ACCEPT_TOKEN(ts_aux_sym_type); + case 140: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(42); + if (lookahead == 'a') + ADVANCE(141); + ACCEPT_TOKEN(ts_sym__identifier); + case 141: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -1303,9 +1519,9 @@ LEX_FN() { ('s' <= lookahead && lookahead <= 'z')) ADVANCE(42); if (lookahead == 'r') - ADVANCE(131); + ADVANCE(142); ACCEPT_TOKEN(ts_sym__identifier); - case 131: + case 142: ACCEPT_TOKEN(ts_aux_sym_var); case ts_lex_state_error: START_TOKEN(); @@ -1314,9 +1530,9 @@ LEX_FN() { if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(105); + ADVANCE(116); if (lookahead == '\n') - ADVANCE(106); + ADVANCE(117); if (lookahead == '!') ADVANCE(85); if (lookahead == '\"') @@ -1335,24 +1551,26 @@ LEX_FN() { ADVANCE(78); if (lookahead == '-') ADVANCE(94); - if (lookahead == '/') + if (lookahead == '.') ADVANCE(95); + if (lookahead == '/') + ADVANCE(96); if ('0' <= lookahead && lookahead <= '9') ADVANCE(86); if (lookahead == ';') ADVANCE(66); if (lookahead == '<') - ADVANCE(96); + ADVANCE(97); if (lookahead == '=') - ADVANCE(107); + ADVANCE(118); if (lookahead == '>') - ADVANCE(100); + ADVANCE(101); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'r') || + (lookahead == 'q') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) ADVANCE(42); @@ -1361,23 +1579,25 @@ LEX_FN() { if (lookahead == ']') ADVANCE(69); if (lookahead == 'f') - ADVANCE(108); + ADVANCE(119); if (lookahead == 'i') - ADVANCE(112); + ADVANCE(123); if (lookahead == 'm') ADVANCE(55); if (lookahead == 'p') - ADVANCE(118); + ADVANCE(129); + if (lookahead == 'r') + ADVANCE(108); if (lookahead == 's') ADVANCE(58); if (lookahead == 't') - ADVANCE(125); + ADVANCE(136); if (lookahead == 'v') - ADVANCE(129); + ADVANCE(140); if (lookahead == '{') ADVANCE(71); if (lookahead == '|') - ADVANCE(102); + ADVANCE(103); if (lookahead == '}') ADVANCE(73); LEX_ERROR(); @@ -1548,57 +1768,121 @@ LEX_STATES = { [158] = 84, [159] = 89, [160] = 31, - [161] = 84, - [162] = 89, - [163] = 84, + [161] = 105, + [162] = 106, + [163] = 40, [164] = 89, - [165] = 84, - [166] = 89, - [167] = 84, - [168] = 89, + [165] = 105, + [166] = 106, + [167] = 40, + [168] = 106, [169] = 84, - [170] = 89, - [171] = 89, - [172] = 89, - [173] = 84, - [174] = 89, - [175] = 82, - [176] = 41, - [177] = 75, - [178] = 70, - [179] = 64, - [180] = 31, - [181] = 74, - [182] = 64, - [183] = 76, - [184] = 77, - [185] = 43, - [186] = 79, + [170] = 106, + [171] = 41, + [172] = 106, + [173] = 106, + [174] = 84, + [175] = 106, + [176] = 84, + [177] = 106, + [178] = 84, + [179] = 106, + [180] = 84, + [181] = 106, + [182] = 106, + [183] = 84, + [184] = 106, + [185] = 84, + [186] = 106, [187] = 40, - [188] = 104, - [189] = 70, - [190] = 70, - [191] = 41, + [188] = 106, + [189] = 89, + [190] = 84, + [191] = 89, [192] = 41, - [193] = 79, - [194] = 40, - [195] = 70, - [196] = 79, - [197] = 40, - [198] = 70, - [199] = 104, - [200] = 70, - [201] = 41, - [202] = 41, - [203] = 79, - [204] = 40, - [205] = 79, - [206] = 40, - [207] = 70, - [208] = 11, - [209] = 41, - [210] = 13, - [211] = 13, + [193] = 89, + [194] = 89, + [195] = 84, + [196] = 89, + [197] = 84, + [198] = 89, + [199] = 84, + [200] = 89, + [201] = 84, + [202] = 89, + [203] = 89, + [204] = 84, + [205] = 89, + [206] = 82, + [207] = 41, + [208] = 75, + [209] = 70, + [210] = 64, + [211] = 31, + [212] = 107, + [213] = 107, + [214] = 107, + [215] = 89, + [216] = 107, + [217] = 74, + [218] = 107, + [219] = 114, + [220] = 107, + [221] = 105, + [222] = 106, + [223] = 40, + [224] = 114, + [225] = 114, + [226] = 84, + [227] = 114, + [228] = 41, + [229] = 114, + [230] = 114, + [231] = 84, + [232] = 114, + [233] = 84, + [234] = 114, + [235] = 84, + [236] = 114, + [237] = 84, + [238] = 114, + [239] = 114, + [240] = 84, + [241] = 114, + [242] = 84, + [243] = 114, + [244] = 107, + [245] = 74, + [246] = 64, + [247] = 76, + [248] = 77, + [249] = 43, + [250] = 79, + [251] = 40, + [252] = 115, + [253] = 70, + [254] = 70, + [255] = 41, + [256] = 41, + [257] = 79, + [258] = 40, + [259] = 70, + [260] = 79, + [261] = 40, + [262] = 70, + [263] = 115, + [264] = 70, + [265] = 41, + [266] = 41, + [267] = 79, + [268] = 40, + [269] = 79, + [270] = 40, + [271] = 70, + [272] = 11, + [273] = 41, + [274] = 13, + [275] = 13, }; #pragma GCC diagnostic push @@ -1609,7 +1893,7 @@ PARSE_TABLE = { [ts_sym_program] = SHIFT(1), [ts_sym_package_directive] = SHIFT(2), [ts_sym_comment] = SHIFT(0), - [ts_aux_sym_package] = SHIFT(209), + [ts_aux_sym_package] = SHIFT(273), }, [1] = { [ts_builtin_sym_end] = ACCEPT_INPUT(), @@ -1707,10 +1991,10 @@ PARSE_TABLE = { [ts_sym_func_declaration] = SHIFT(16), [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), [ts_sym_comment] = SHIFT(14), - [ts_aux_sym_program_repeat1] = SHIFT(208), + [ts_aux_sym_program_repeat1] = SHIFT(272), [ts_aux_sym_type] = SHIFT(18), [ts_aux_sym_var] = SHIFT(156), - [ts_aux_sym_func] = SHIFT(176), + [ts_aux_sym_func] = SHIFT(207), }, [15] = { [ts_sym_declaration] = SHIFT(15), @@ -1722,7 +2006,7 @@ PARSE_TABLE = { [ts_aux_sym_program_repeat1] = SHIFT(17), [ts_aux_sym_type] = SHIFT(18), [ts_aux_sym_var] = SHIFT(156), - [ts_aux_sym_func] = SHIFT(176), + [ts_aux_sym_func] = SHIFT(207), }, [16] = { [ts_builtin_sym_end] = REDUCE(ts_sym_declaration, 1), @@ -2077,7 +2361,7 @@ PARSE_TABLE = { [ts_aux_sym_7] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym_20] = SHIFT(135), + [ts_aux_sym_9] = SHIFT(135), }, [64] = { [ts_sym_type_expression] = SHIFT(65), @@ -2099,7 +2383,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(65), [ts_aux_sym__func_signature_repeat2] = SHIFT(66), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_20] = SHIFT(87), + [ts_aux_sym_9] = SHIFT(87), }, [66] = { [ts_sym_comment] = SHIFT(66), @@ -2132,7 +2416,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(71), [ts_aux_sym__func_signature_repeat3] = SHIFT(72), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_20] = SHIFT(74), + [ts_aux_sym_9] = SHIFT(74), }, [72] = { [ts_sym_comment] = SHIFT(72), @@ -2157,7 +2441,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(76), [ts_aux_sym__func_signature_repeat3] = SHIFT(77), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_20] = SHIFT(74), + [ts_aux_sym_9] = SHIFT(74), }, [77] = { [ts_sym_comment] = SHIFT(77), @@ -2166,7 +2450,7 @@ PARSE_TABLE = { [78] = { [ts_sym_comment] = SHIFT(78), [ts_aux_sym_2] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_20] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_type_name, 1), }, [79] = { [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), @@ -2176,7 +2460,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(80), [ts_aux_sym__func_signature_repeat4] = SHIFT(81), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_20] = SHIFT(83), + [ts_aux_sym_9] = SHIFT(83), }, [81] = { [ts_sym_comment] = SHIFT(81), @@ -2196,7 +2480,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(84), [ts_aux_sym__func_signature_repeat4] = SHIFT(85), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_20] = SHIFT(83), + [ts_aux_sym_9] = SHIFT(83), }, [85] = { [ts_sym_comment] = SHIFT(85), @@ -2206,7 +2490,7 @@ PARSE_TABLE = { [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), [ts_sym_comment] = SHIFT(86), [ts_aux_sym_2] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_20] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_type_name, 1), }, [87] = { [ts_sym_var_name] = SHIFT(88), @@ -2222,7 +2506,7 @@ PARSE_TABLE = { [ts_aux_sym_7] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_aux_sym_struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_aux_sym_interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_20] = SHIFT(131), + [ts_aux_sym_9] = SHIFT(131), }, [89] = { [ts_sym_type_expression] = SHIFT(90), @@ -2244,7 +2528,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(90), [ts_aux_sym__func_signature_repeat2] = SHIFT(91), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_20] = SHIFT(87), + [ts_aux_sym_9] = SHIFT(87), }, [91] = { [ts_sym_comment] = SHIFT(91), @@ -2253,7 +2537,7 @@ PARSE_TABLE = { [92] = { [ts_sym_comment] = SHIFT(92), [ts_aux_sym_2] = REDUCE(ts_sym_type_expression, 1), - [ts_aux_sym_20] = REDUCE(ts_sym_type_expression, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_type_expression, 1), }, [93] = { [ts_sym_type_expression] = SHIFT(94), @@ -2274,7 +2558,7 @@ PARSE_TABLE = { [94] = { [ts_sym_comment] = SHIFT(94), [ts_aux_sym_2] = REDUCE(ts_sym_pointer_type, 2), - [ts_aux_sym_20] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_9] = REDUCE(ts_sym_pointer_type, 2), }, [95] = { [ts_sym_comment] = SHIFT(95), @@ -2319,7 +2603,7 @@ PARSE_TABLE = { [99] = { [ts_sym_comment] = SHIFT(99), [ts_aux_sym_2] = REDUCE(ts_sym_map_type, 5), - [ts_aux_sym_20] = REDUCE(ts_sym_map_type, 5), + [ts_aux_sym_9] = REDUCE(ts_sym_map_type, 5), }, [100] = { [ts_sym_comment] = SHIFT(100), @@ -2344,7 +2628,7 @@ PARSE_TABLE = { [102] = { [ts_sym_comment] = SHIFT(102), [ts_aux_sym_2] = REDUCE(ts_sym_slice_type, 3), - [ts_aux_sym_20] = REDUCE(ts_sym_slice_type, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_slice_type, 3), }, [103] = { [ts_sym_comment] = SHIFT(103), @@ -2364,7 +2648,7 @@ PARSE_TABLE = { [106] = { [ts_sym_comment] = SHIFT(106), [ts_aux_sym_2] = REDUCE(ts_sym_struct_type, 4), - [ts_aux_sym_20] = REDUCE(ts_sym_struct_type, 4), + [ts_aux_sym_9] = REDUCE(ts_sym_struct_type, 4), }, [107] = { [ts_sym_comment] = SHIFT(107), @@ -2384,7 +2668,7 @@ PARSE_TABLE = { [110] = { [ts_sym_comment] = SHIFT(110), [ts_aux_sym_2] = REDUCE(ts_sym_interface_type, 4), - [ts_aux_sym_20] = REDUCE(ts_sym_interface_type, 4), + [ts_aux_sym_9] = REDUCE(ts_sym_interface_type, 4), }, [111] = { [ts_sym_comment] = SHIFT(111), @@ -2534,7 +2818,7 @@ PARSE_TABLE = { [ts_aux_sym_7] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_aux_sym_struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), [ts_aux_sym_interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_20] = SHIFT(131), + [ts_aux_sym_9] = SHIFT(131), }, [133] = { [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), @@ -2553,7 +2837,7 @@ PARSE_TABLE = { [ts_aux_sym_7] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_struct] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_interface] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_20] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_var_name, 1), }, [135] = { [ts_sym_var_name] = SHIFT(136), @@ -2569,7 +2853,7 @@ PARSE_TABLE = { [ts_aux_sym_7] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym_20] = SHIFT(135), + [ts_aux_sym_9] = SHIFT(135), }, [137] = { [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), @@ -2607,7 +2891,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(142), [ts_aux_sym__func_signature_repeat3] = SHIFT(143), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_20] = SHIFT(74), + [ts_aux_sym_9] = SHIFT(74), }, [143] = { [ts_sym_comment] = SHIFT(143), @@ -2617,7 +2901,7 @@ PARSE_TABLE = { [ts_sym_comment] = SHIFT(144), [ts_aux_sym__func_signature_repeat4] = SHIFT(145), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_20] = SHIFT(83), + [ts_aux_sym_9] = SHIFT(83), }, [145] = { [ts_sym_comment] = SHIFT(145), @@ -2675,7 +2959,7 @@ PARSE_TABLE = { }, [156] = { [ts_sym_var_name] = SHIFT(157), - [ts_sym__identifier] = SHIFT(175), + [ts_sym__identifier] = SHIFT(206), [ts_sym_comment] = SHIFT(156), }, [157] = { @@ -2684,29 +2968,33 @@ PARSE_TABLE = { }, [158] = { [ts_sym_expression] = SHIFT(159), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), [ts_sym_comment] = SHIFT(158), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_21] = SHIFT(204), }, [159] = { [ts_sym__terminator] = SHIFT(160), [ts_sym_comment] = SHIFT(159), - [ts_aux_sym_6] = SHIFT(161), - [ts_aux_sym_9] = SHIFT(161), - [ts_aux_sym_10] = SHIFT(163), - [ts_aux_sym_11] = SHIFT(163), - [ts_aux_sym_12] = SHIFT(165), - [ts_aux_sym_13] = SHIFT(167), - [ts_aux_sym_14] = SHIFT(169), - [ts_aux_sym_15] = SHIFT(169), - [ts_aux_sym_16] = SHIFT(169), - [ts_aux_sym_17] = SHIFT(169), - [ts_aux_sym_18] = SHIFT(169), + [ts_aux_sym_1] = SHIFT(161), + [ts_aux_sym_6] = SHIFT(190), + [ts_aux_sym_10] = SHIFT(192), + [ts_aux_sym_11] = SHIFT(190), + [ts_aux_sym_12] = SHIFT(195), + [ts_aux_sym_13] = SHIFT(195), + [ts_aux_sym_14] = SHIFT(197), + [ts_aux_sym_15] = SHIFT(199), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), }, [160] = { [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 5), @@ -2717,152 +3005,171 @@ PARSE_TABLE = { }, [161] = { [ts_sym_expression] = SHIFT(162), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), [ts_sym_comment] = SHIFT(161), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_2] = SHIFT(189), + [ts_aux_sym_21] = SHIFT(183), }, [162] = { - [ts_sym__terminator] = REDUCE(ts_sym_math_op, 3), [ts_sym_comment] = SHIFT(162), - [ts_aux_sym_6] = SHIFT(161), - [ts_aux_sym_9] = SHIFT(161), - [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_11] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_12] = REDUCE(ts_sym_math_op, 3), - [ts_aux_sym_13] = SHIFT(167), - [ts_aux_sym_14] = SHIFT(169), - [ts_aux_sym_15] = SHIFT(169), - [ts_aux_sym_16] = SHIFT(169), - [ts_aux_sym_17] = SHIFT(169), - [ts_aux_sym_18] = SHIFT(169), + [ts_aux_sym_call_expression_repeat0] = SHIFT(163), + [ts_aux_sym_1] = SHIFT(165), + [ts_aux_sym_2] = REDUCE(ts_aux_sym_call_expression_repeat0, 0), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = SHIFT(185), + [ts_aux_sym_10] = SHIFT(171), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = SHIFT(174), + [ts_aux_sym_13] = SHIFT(174), + [ts_aux_sym_14] = SHIFT(176), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), }, [163] = { - [ts_sym_expression] = SHIFT(164), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), [ts_sym_comment] = SHIFT(163), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_2] = SHIFT(164), }, [164] = { - [ts_sym__terminator] = REDUCE(ts_sym_math_op, 3), + [ts_sym__terminator] = REDUCE(ts_sym_call_expression, 5), [ts_sym_comment] = SHIFT(164), - [ts_aux_sym_6] = SHIFT(161), - [ts_aux_sym_9] = SHIFT(161), - [ts_aux_sym_10] = SHIFT(163), - [ts_aux_sym_11] = SHIFT(163), - [ts_aux_sym_12] = SHIFT(165), - [ts_aux_sym_13] = SHIFT(167), - [ts_aux_sym_14] = SHIFT(169), - [ts_aux_sym_15] = SHIFT(169), - [ts_aux_sym_16] = SHIFT(169), - [ts_aux_sym_17] = SHIFT(169), - [ts_aux_sym_18] = SHIFT(169), + [ts_aux_sym_1] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_6] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_10] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_11] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_12] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_13] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_14] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_15] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_16] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_17] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_18] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_19] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_20] = REDUCE(ts_sym_call_expression, 5), }, [165] = { [ts_sym_expression] = SHIFT(166), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), [ts_sym_comment] = SHIFT(165), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_2] = SHIFT(188), + [ts_aux_sym_21] = SHIFT(183), }, [166] = { - [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 3), [ts_sym_comment] = SHIFT(166), - [ts_aux_sym_6] = SHIFT(161), - [ts_aux_sym_9] = SHIFT(161), - [ts_aux_sym_10] = SHIFT(163), - [ts_aux_sym_11] = SHIFT(163), - [ts_aux_sym_12] = SHIFT(165), - [ts_aux_sym_13] = SHIFT(167), - [ts_aux_sym_14] = SHIFT(169), - [ts_aux_sym_15] = SHIFT(169), - [ts_aux_sym_16] = SHIFT(169), - [ts_aux_sym_17] = SHIFT(169), - [ts_aux_sym_18] = SHIFT(169), + [ts_aux_sym_call_expression_repeat0] = SHIFT(167), + [ts_aux_sym_1] = SHIFT(165), + [ts_aux_sym_2] = REDUCE(ts_aux_sym_call_expression_repeat0, 0), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = SHIFT(185), + [ts_aux_sym_10] = SHIFT(171), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = SHIFT(174), + [ts_aux_sym_13] = SHIFT(174), + [ts_aux_sym_14] = SHIFT(176), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), }, [167] = { - [ts_sym_expression] = SHIFT(168), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), [ts_sym_comment] = SHIFT(167), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_2] = SHIFT(168), }, [168] = { - [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 3), [ts_sym_comment] = SHIFT(168), - [ts_aux_sym_6] = SHIFT(161), - [ts_aux_sym_9] = SHIFT(161), - [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_13] = SHIFT(167), - [ts_aux_sym_14] = SHIFT(169), - [ts_aux_sym_15] = SHIFT(169), - [ts_aux_sym_16] = SHIFT(169), - [ts_aux_sym_17] = SHIFT(169), - [ts_aux_sym_18] = SHIFT(169), + [ts_aux_sym_1] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_2] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_6] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_9] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_10] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_11] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_12] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_13] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_14] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_15] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_16] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_17] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_18] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_19] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_20] = REDUCE(ts_sym_call_expression, 5), }, [169] = { [ts_sym_expression] = SHIFT(170), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), [ts_sym_comment] = SHIFT(169), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_21] = SHIFT(183), }, [170] = { - [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 3), [ts_sym_comment] = SHIFT(170), - [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), - [ts_aux_sym_14] = SHIFT(169), - [ts_aux_sym_15] = SHIFT(169), - [ts_aux_sym_16] = SHIFT(169), - [ts_aux_sym_17] = SHIFT(169), - [ts_aux_sym_18] = SHIFT(169), + [ts_aux_sym_1] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), }, [171] = { - [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), + [ts_sym_var_name] = SHIFT(172), + [ts_sym__identifier] = SHIFT(173), [ts_sym_comment] = SHIFT(171), - [ts_aux_sym_6] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_9] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_10] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_11] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_12] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_13] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_14] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_15] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_16] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_17] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_18] = REDUCE(ts_sym_expression, 1), }, [172] = { - [ts_sym__terminator] = REDUCE(ts_sym_var_name, 1), [ts_sym_comment] = SHIFT(172), + [ts_aux_sym_1] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_16] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_17] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_18] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_19] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_20] = REDUCE(ts_sym_selector_expression, 3), + }, + [173] = { + [ts_sym_comment] = SHIFT(173), + [ts_aux_sym_1] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_2] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_6] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_9] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_10] = REDUCE(ts_sym_var_name, 1), @@ -2874,21 +3181,168 @@ PARSE_TABLE = { [ts_aux_sym_16] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_17] = REDUCE(ts_sym_var_name, 1), [ts_aux_sym_18] = REDUCE(ts_sym_var_name, 1), - }, - [173] = { - [ts_sym_expression] = SHIFT(174), - [ts_sym_math_op] = SHIFT(171), - [ts_sym_bool_op] = SHIFT(171), - [ts_sym_var_name] = SHIFT(171), - [ts_sym_string] = SHIFT(171), - [ts_sym__identifier] = SHIFT(172), - [ts_sym_number] = SHIFT(171), - [ts_sym_comment] = SHIFT(173), - [ts_aux_sym_19] = SHIFT(173), + [ts_aux_sym_19] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_20] = REDUCE(ts_sym_var_name, 1), }, [174] = { - [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 2), + [ts_sym_expression] = SHIFT(175), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), [ts_sym_comment] = SHIFT(174), + [ts_aux_sym_21] = SHIFT(183), + }, + [175] = { + [ts_sym_comment] = SHIFT(175), + [ts_aux_sym_1] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = SHIFT(174), + [ts_aux_sym_13] = SHIFT(174), + [ts_aux_sym_14] = SHIFT(176), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), + }, + [176] = { + [ts_sym_expression] = SHIFT(177), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), + [ts_sym_comment] = SHIFT(176), + [ts_aux_sym_21] = SHIFT(183), + }, + [177] = { + [ts_sym_comment] = SHIFT(177), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = SHIFT(174), + [ts_aux_sym_13] = SHIFT(174), + [ts_aux_sym_14] = SHIFT(176), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), + }, + [178] = { + [ts_sym_expression] = SHIFT(179), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), + [ts_sym_comment] = SHIFT(178), + [ts_aux_sym_21] = SHIFT(183), + }, + [179] = { + [ts_sym_comment] = SHIFT(179), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), + }, + [180] = { + [ts_sym_expression] = SHIFT(181), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), + [ts_sym_comment] = SHIFT(180), + [ts_aux_sym_21] = SHIFT(183), + }, + [181] = { + [ts_sym_comment] = SHIFT(181), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), + }, + [182] = { + [ts_sym_comment] = SHIFT(182), + [ts_aux_sym_1] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_10] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_11] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_12] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_13] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_14] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_15] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_16] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_17] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_18] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_19] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_20] = REDUCE(ts_sym_expression, 1), + }, + [183] = { + [ts_sym_expression] = SHIFT(184), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), + [ts_sym_comment] = SHIFT(183), + [ts_aux_sym_21] = SHIFT(183), + }, + [184] = { + [ts_sym_comment] = SHIFT(184), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_2] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 2), @@ -2900,64 +3354,918 @@ PARSE_TABLE = { [ts_aux_sym_16] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_17] = REDUCE(ts_sym_bool_op, 2), [ts_aux_sym_18] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_19] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_20] = REDUCE(ts_sym_bool_op, 2), }, - [175] = { - [ts_sym_comment] = SHIFT(175), + [185] = { + [ts_sym_expression] = SHIFT(186), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), + [ts_sym_comment] = SHIFT(185), + [ts_aux_sym_21] = SHIFT(183), + }, + [186] = { + [ts_sym_comment] = SHIFT(186), + [ts_aux_sym_call_expression_repeat0] = SHIFT(187), + [ts_aux_sym_1] = SHIFT(165), + [ts_aux_sym_2] = REDUCE(ts_aux_sym_call_expression_repeat0, 0), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = SHIFT(185), + [ts_aux_sym_10] = SHIFT(171), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = SHIFT(174), + [ts_aux_sym_13] = SHIFT(174), + [ts_aux_sym_14] = SHIFT(176), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), + }, + [187] = { + [ts_sym_comment] = SHIFT(187), + [ts_aux_sym_2] = REDUCE(ts_aux_sym_call_expression_repeat0, 3), + }, + [188] = { + [ts_sym_comment] = SHIFT(188), + [ts_aux_sym_1] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_2] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_16] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_17] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_18] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_19] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_20] = REDUCE(ts_sym_call_expression, 3), + }, + [189] = { + [ts_sym__terminator] = REDUCE(ts_sym_call_expression, 3), + [ts_sym_comment] = SHIFT(189), + [ts_aux_sym_1] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_16] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_17] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_18] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_19] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_20] = REDUCE(ts_sym_call_expression, 3), + }, + [190] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(190), + [ts_aux_sym_21] = SHIFT(204), + }, + [191] = { + [ts_sym__terminator] = REDUCE(ts_sym_math_op, 3), + [ts_sym_comment] = SHIFT(191), + [ts_aux_sym_1] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_6] = SHIFT(190), + [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_11] = SHIFT(190), + [ts_aux_sym_12] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_15] = SHIFT(199), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), + }, + [192] = { + [ts_sym_var_name] = SHIFT(193), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_comment] = SHIFT(192), + }, + [193] = { + [ts_sym__terminator] = REDUCE(ts_sym_selector_expression, 3), + [ts_sym_comment] = SHIFT(193), + [ts_aux_sym_1] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_16] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_17] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_18] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_19] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_20] = REDUCE(ts_sym_selector_expression, 3), + }, + [194] = { + [ts_sym__terminator] = REDUCE(ts_sym_var_name, 1), + [ts_sym_comment] = SHIFT(194), + [ts_aux_sym_1] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_6] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_10] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_11] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_12] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_13] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_14] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_15] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_16] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_17] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_18] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_19] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_20] = REDUCE(ts_sym_var_name, 1), + }, + [195] = { + [ts_sym_expression] = SHIFT(196), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(195), + [ts_aux_sym_21] = SHIFT(204), + }, + [196] = { + [ts_sym__terminator] = REDUCE(ts_sym_math_op, 3), + [ts_sym_comment] = SHIFT(196), + [ts_aux_sym_1] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_6] = SHIFT(190), + [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_11] = SHIFT(190), + [ts_aux_sym_12] = SHIFT(195), + [ts_aux_sym_13] = SHIFT(195), + [ts_aux_sym_14] = SHIFT(197), + [ts_aux_sym_15] = SHIFT(199), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), + }, + [197] = { + [ts_sym_expression] = SHIFT(198), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(197), + [ts_aux_sym_21] = SHIFT(204), + }, + [198] = { + [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_comment] = SHIFT(198), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = SHIFT(190), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = SHIFT(190), + [ts_aux_sym_12] = SHIFT(195), + [ts_aux_sym_13] = SHIFT(195), + [ts_aux_sym_14] = SHIFT(197), + [ts_aux_sym_15] = SHIFT(199), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), + }, + [199] = { + [ts_sym_expression] = SHIFT(200), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(199), + [ts_aux_sym_21] = SHIFT(204), + }, + [200] = { + [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_comment] = SHIFT(200), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = SHIFT(190), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = SHIFT(190), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_15] = SHIFT(199), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), + }, + [201] = { + [ts_sym_expression] = SHIFT(202), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(201), + [ts_aux_sym_21] = SHIFT(204), + }, + [202] = { + [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_comment] = SHIFT(202), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), + }, + [203] = { + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), + [ts_sym_comment] = SHIFT(203), + [ts_aux_sym_1] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_10] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_11] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_12] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_13] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_14] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_15] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_16] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_17] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_18] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_19] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_20] = REDUCE(ts_sym_expression, 1), + }, + [204] = { + [ts_sym_expression] = SHIFT(205), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(204), + [ts_aux_sym_21] = SHIFT(204), + }, + [205] = { + [ts_sym__terminator] = REDUCE(ts_sym_bool_op, 2), + [ts_sym_comment] = SHIFT(205), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_15] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_16] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_17] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_18] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_19] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_20] = REDUCE(ts_sym_bool_op, 2), + }, + [206] = { + [ts_sym_comment] = SHIFT(206), [ts_aux_sym_3] = REDUCE(ts_sym_var_name, 1), }, - [176] = { - [ts_sym_var_name] = SHIFT(177), + [207] = { + [ts_sym_var_name] = SHIFT(208), [ts_sym__identifier] = SHIFT(60), - [ts_sym_comment] = SHIFT(176), + [ts_sym_comment] = SHIFT(207), }, - [177] = { - [ts_sym__func_signature] = SHIFT(178), - [ts_sym_comment] = SHIFT(177), - [ts_aux_sym_1] = SHIFT(183), + [208] = { + [ts_sym__func_signature] = SHIFT(209), + [ts_sym_comment] = SHIFT(208), + [ts_aux_sym_1] = SHIFT(247), }, - [178] = { - [ts_sym_statement_block] = SHIFT(179), - [ts_sym_comment] = SHIFT(178), - [ts_aux_sym_4] = SHIFT(181), + [209] = { + [ts_sym_statement_block] = SHIFT(210), + [ts_sym_comment] = SHIFT(209), + [ts_aux_sym_4] = SHIFT(212), }, - [179] = { - [ts_sym__terminator] = SHIFT(180), - [ts_sym_comment] = SHIFT(179), + [210] = { + [ts_sym__terminator] = SHIFT(211), + [ts_sym_comment] = SHIFT(210), }, - [180] = { + [211] = { [ts_builtin_sym_end] = REDUCE(ts_sym_func_declaration, 5), - [ts_sym_comment] = SHIFT(180), + [ts_sym_comment] = SHIFT(211), [ts_aux_sym_type] = REDUCE(ts_sym_func_declaration, 5), [ts_aux_sym_var] = REDUCE(ts_sym_func_declaration, 5), [ts_aux_sym_func] = REDUCE(ts_sym_func_declaration, 5), }, - [181] = { - [ts_sym_comment] = SHIFT(181), - [ts_aux_sym_5] = SHIFT(182), + [212] = { + [ts_sym_statement] = SHIFT(213), + [ts_sym_return_statement] = SHIFT(214), + [ts_sym_expression_statement] = SHIFT(214), + [ts_sym_expression] = SHIFT(215), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_builtin_sym_error] = SHIFT(245), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(212), + [ts_aux_sym_statement_block_repeat0] = SHIFT(245), + [ts_aux_sym_5] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_return] = SHIFT(218), + [ts_aux_sym_21] = SHIFT(204), }, - [182] = { - [ts_sym__terminator] = REDUCE(ts_sym_statement_block, 2), - [ts_sym_comment] = SHIFT(182), + [213] = { + [ts_sym_statement] = SHIFT(213), + [ts_sym_return_statement] = SHIFT(214), + [ts_sym_expression_statement] = SHIFT(214), + [ts_sym_expression] = SHIFT(215), + [ts_sym_call_expression] = SHIFT(203), + [ts_sym_selector_expression] = SHIFT(203), + [ts_sym_math_op] = SHIFT(203), + [ts_sym_bool_op] = SHIFT(203), + [ts_sym_var_name] = SHIFT(203), + [ts_sym_string] = SHIFT(203), + [ts_sym__identifier] = SHIFT(194), + [ts_sym_number] = SHIFT(203), + [ts_sym_comment] = SHIFT(213), + [ts_aux_sym_statement_block_repeat0] = SHIFT(217), + [ts_aux_sym_5] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_return] = SHIFT(218), + [ts_aux_sym_21] = SHIFT(204), }, - [183] = { - [ts_sym_var_name] = SHIFT(184), + [214] = { + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym__identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_sym_comment] = SHIFT(214), + [ts_aux_sym_5] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_return] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_21] = REDUCE(ts_sym_statement, 1), + }, + [215] = { + [ts_sym__terminator] = SHIFT(216), + [ts_sym_comment] = SHIFT(215), + [ts_aux_sym_1] = SHIFT(161), + [ts_aux_sym_6] = SHIFT(190), + [ts_aux_sym_10] = SHIFT(192), + [ts_aux_sym_11] = SHIFT(190), + [ts_aux_sym_12] = SHIFT(195), + [ts_aux_sym_13] = SHIFT(195), + [ts_aux_sym_14] = SHIFT(197), + [ts_aux_sym_15] = SHIFT(199), + [ts_aux_sym_16] = SHIFT(201), + [ts_aux_sym_17] = SHIFT(201), + [ts_aux_sym_18] = SHIFT(201), + [ts_aux_sym_19] = SHIFT(201), + [ts_aux_sym_20] = SHIFT(201), + }, + [216] = { + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_comment] = SHIFT(216), + [ts_aux_sym_5] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_return] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_21] = REDUCE(ts_sym_expression_statement, 2), + }, + [217] = { + [ts_sym_comment] = SHIFT(217), + [ts_aux_sym_5] = REDUCE(ts_aux_sym_statement_block_repeat0, 2), + }, + [218] = { + [ts_sym_expression] = SHIFT(219), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(218), + [ts_aux_sym_5] = REDUCE(ts_sym_return_statement, 1), + [ts_aux_sym_return] = REDUCE(ts_sym_return_statement, 1), + [ts_aux_sym_21] = SHIFT(240), + }, + [219] = { + [ts_sym_string] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_sym_number] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_sym_comment] = SHIFT(219), + [ts_aux_sym_return_statement_repeat0] = SHIFT(220), + [ts_aux_sym_1] = SHIFT(221), + [ts_aux_sym_5] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_aux_sym_6] = SHIFT(226), + [ts_aux_sym_return] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_aux_sym_9] = SHIFT(242), + [ts_aux_sym_10] = SHIFT(228), + [ts_aux_sym_11] = SHIFT(226), + [ts_aux_sym_12] = SHIFT(231), + [ts_aux_sym_13] = SHIFT(231), + [ts_aux_sym_14] = SHIFT(233), + [ts_aux_sym_15] = SHIFT(235), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + }, + [220] = { + [ts_sym_string] = REDUCE(ts_sym_return_statement, 3), + [ts_sym__identifier] = REDUCE(ts_sym_return_statement, 3), + [ts_sym_number] = REDUCE(ts_sym_return_statement, 3), + [ts_sym_comment] = SHIFT(220), + [ts_aux_sym_5] = REDUCE(ts_sym_return_statement, 3), + [ts_aux_sym_return] = REDUCE(ts_sym_return_statement, 3), + [ts_aux_sym_21] = REDUCE(ts_sym_return_statement, 3), + }, + [221] = { + [ts_sym_expression] = SHIFT(222), + [ts_sym_call_expression] = SHIFT(182), + [ts_sym_selector_expression] = SHIFT(182), + [ts_sym_math_op] = SHIFT(182), + [ts_sym_bool_op] = SHIFT(182), + [ts_sym_var_name] = SHIFT(182), + [ts_sym_string] = SHIFT(182), + [ts_sym__identifier] = SHIFT(173), + [ts_sym_number] = SHIFT(182), + [ts_sym_comment] = SHIFT(221), + [ts_aux_sym_2] = SHIFT(225), + [ts_aux_sym_21] = SHIFT(183), + }, + [222] = { + [ts_sym_comment] = SHIFT(222), + [ts_aux_sym_call_expression_repeat0] = SHIFT(223), + [ts_aux_sym_1] = SHIFT(165), + [ts_aux_sym_2] = REDUCE(ts_aux_sym_call_expression_repeat0, 0), + [ts_aux_sym_6] = SHIFT(169), + [ts_aux_sym_9] = SHIFT(185), + [ts_aux_sym_10] = SHIFT(171), + [ts_aux_sym_11] = SHIFT(169), + [ts_aux_sym_12] = SHIFT(174), + [ts_aux_sym_13] = SHIFT(174), + [ts_aux_sym_14] = SHIFT(176), + [ts_aux_sym_15] = SHIFT(178), + [ts_aux_sym_16] = SHIFT(180), + [ts_aux_sym_17] = SHIFT(180), + [ts_aux_sym_18] = SHIFT(180), + [ts_aux_sym_19] = SHIFT(180), + [ts_aux_sym_20] = SHIFT(180), + }, + [223] = { + [ts_sym_comment] = SHIFT(223), + [ts_aux_sym_2] = SHIFT(224), + }, + [224] = { + [ts_sym_string] = REDUCE(ts_sym_call_expression, 5), + [ts_sym__identifier] = REDUCE(ts_sym_call_expression, 5), + [ts_sym_number] = REDUCE(ts_sym_call_expression, 5), + [ts_sym_comment] = SHIFT(224), + [ts_aux_sym_1] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_5] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_6] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_return] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_9] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_10] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_11] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_12] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_13] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_14] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_15] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_16] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_17] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_18] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_19] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_20] = REDUCE(ts_sym_call_expression, 5), + [ts_aux_sym_21] = REDUCE(ts_sym_call_expression, 5), + }, + [225] = { + [ts_sym_string] = REDUCE(ts_sym_call_expression, 3), + [ts_sym__identifier] = REDUCE(ts_sym_call_expression, 3), + [ts_sym_number] = REDUCE(ts_sym_call_expression, 3), + [ts_sym_comment] = SHIFT(225), + [ts_aux_sym_1] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_return] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_16] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_17] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_18] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_19] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_20] = REDUCE(ts_sym_call_expression, 3), + [ts_aux_sym_21] = REDUCE(ts_sym_call_expression, 3), + }, + [226] = { + [ts_sym_expression] = SHIFT(227), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(226), + [ts_aux_sym_21] = SHIFT(240), + }, + [227] = { + [ts_sym_string] = REDUCE(ts_sym_math_op, 3), + [ts_sym__identifier] = REDUCE(ts_sym_math_op, 3), + [ts_sym_number] = REDUCE(ts_sym_math_op, 3), + [ts_sym_comment] = SHIFT(227), + [ts_aux_sym_1] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_6] = SHIFT(226), + [ts_aux_sym_return] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_11] = SHIFT(226), + [ts_aux_sym_12] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_15] = SHIFT(235), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_sym_math_op, 3), + }, + [228] = { + [ts_sym_var_name] = SHIFT(229), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_comment] = SHIFT(228), + }, + [229] = { + [ts_sym_string] = REDUCE(ts_sym_selector_expression, 3), + [ts_sym__identifier] = REDUCE(ts_sym_selector_expression, 3), + [ts_sym_number] = REDUCE(ts_sym_selector_expression, 3), + [ts_sym_comment] = SHIFT(229), + [ts_aux_sym_1] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_return] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_16] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_17] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_18] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_19] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_20] = REDUCE(ts_sym_selector_expression, 3), + [ts_aux_sym_21] = REDUCE(ts_sym_selector_expression, 3), + }, + [230] = { + [ts_sym_string] = REDUCE(ts_sym_var_name, 1), + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + [ts_sym_number] = REDUCE(ts_sym_var_name, 1), + [ts_sym_comment] = SHIFT(230), + [ts_aux_sym_1] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_5] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_6] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_return] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_10] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_11] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_12] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_13] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_14] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_15] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_16] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_17] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_18] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_19] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_20] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_21] = REDUCE(ts_sym_var_name, 1), + }, + [231] = { + [ts_sym_expression] = SHIFT(232), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(231), + [ts_aux_sym_21] = SHIFT(240), + }, + [232] = { + [ts_sym_string] = REDUCE(ts_sym_math_op, 3), + [ts_sym__identifier] = REDUCE(ts_sym_math_op, 3), + [ts_sym_number] = REDUCE(ts_sym_math_op, 3), + [ts_sym_comment] = SHIFT(232), + [ts_aux_sym_1] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_6] = SHIFT(226), + [ts_aux_sym_return] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_math_op, 3), + [ts_aux_sym_11] = SHIFT(226), + [ts_aux_sym_12] = SHIFT(231), + [ts_aux_sym_13] = SHIFT(231), + [ts_aux_sym_14] = SHIFT(233), + [ts_aux_sym_15] = SHIFT(235), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_sym_math_op, 3), + }, + [233] = { + [ts_sym_expression] = SHIFT(234), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(233), + [ts_aux_sym_21] = SHIFT(240), + }, + [234] = { + [ts_sym_string] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__identifier] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_number] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_comment] = SHIFT(234), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = SHIFT(226), + [ts_aux_sym_return] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = SHIFT(226), + [ts_aux_sym_12] = SHIFT(231), + [ts_aux_sym_13] = SHIFT(231), + [ts_aux_sym_14] = SHIFT(233), + [ts_aux_sym_15] = SHIFT(235), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_sym_bool_op, 3), + }, + [235] = { + [ts_sym_expression] = SHIFT(236), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(235), + [ts_aux_sym_21] = SHIFT(240), + }, + [236] = { + [ts_sym_string] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__identifier] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_number] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_comment] = SHIFT(236), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = SHIFT(226), + [ts_aux_sym_return] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = SHIFT(226), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_15] = SHIFT(235), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_sym_bool_op, 3), + }, + [237] = { + [ts_sym_expression] = SHIFT(238), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(237), + [ts_aux_sym_21] = SHIFT(240), + }, + [238] = { + [ts_sym_string] = REDUCE(ts_sym_bool_op, 3), + [ts_sym__identifier] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_number] = REDUCE(ts_sym_bool_op, 3), + [ts_sym_comment] = SHIFT(238), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_5] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_return] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_15] = REDUCE(ts_sym_bool_op, 3), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_sym_bool_op, 3), + }, + [239] = { + [ts_sym_string] = REDUCE(ts_sym_expression, 1), + [ts_sym__identifier] = REDUCE(ts_sym_expression, 1), + [ts_sym_number] = REDUCE(ts_sym_expression, 1), + [ts_sym_comment] = SHIFT(239), + [ts_aux_sym_1] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_5] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_return] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_9] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_10] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_11] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_12] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_13] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_14] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_15] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_16] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_17] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_18] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_19] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_20] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_21] = REDUCE(ts_sym_expression, 1), + }, + [240] = { + [ts_sym_expression] = SHIFT(241), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(240), + [ts_aux_sym_21] = SHIFT(240), + }, + [241] = { + [ts_sym_string] = REDUCE(ts_sym_bool_op, 2), + [ts_sym__identifier] = REDUCE(ts_sym_bool_op, 2), + [ts_sym_number] = REDUCE(ts_sym_bool_op, 2), + [ts_sym_comment] = SHIFT(241), + [ts_aux_sym_1] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_5] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_6] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_return] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_9] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_10] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_11] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_12] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_13] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_14] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_15] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_16] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_17] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_18] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_19] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_20] = REDUCE(ts_sym_bool_op, 2), + [ts_aux_sym_21] = REDUCE(ts_sym_bool_op, 2), + }, + [242] = { + [ts_sym_expression] = SHIFT(243), + [ts_sym_call_expression] = SHIFT(239), + [ts_sym_selector_expression] = SHIFT(239), + [ts_sym_math_op] = SHIFT(239), + [ts_sym_bool_op] = SHIFT(239), + [ts_sym_var_name] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_sym__identifier] = SHIFT(230), + [ts_sym_number] = SHIFT(239), + [ts_sym_comment] = SHIFT(242), + [ts_aux_sym_21] = SHIFT(240), + }, + [243] = { + [ts_sym_string] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_sym_number] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_sym_comment] = SHIFT(243), + [ts_aux_sym_return_statement_repeat0] = SHIFT(244), + [ts_aux_sym_1] = SHIFT(221), + [ts_aux_sym_5] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_aux_sym_6] = SHIFT(226), + [ts_aux_sym_return] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + [ts_aux_sym_9] = SHIFT(242), + [ts_aux_sym_10] = SHIFT(228), + [ts_aux_sym_11] = SHIFT(226), + [ts_aux_sym_12] = SHIFT(231), + [ts_aux_sym_13] = SHIFT(231), + [ts_aux_sym_14] = SHIFT(233), + [ts_aux_sym_15] = SHIFT(235), + [ts_aux_sym_16] = SHIFT(237), + [ts_aux_sym_17] = SHIFT(237), + [ts_aux_sym_18] = SHIFT(237), + [ts_aux_sym_19] = SHIFT(237), + [ts_aux_sym_20] = SHIFT(237), + [ts_aux_sym_21] = REDUCE(ts_aux_sym_return_statement_repeat0, 0), + }, + [244] = { + [ts_sym_string] = REDUCE(ts_aux_sym_return_statement_repeat0, 3), + [ts_sym__identifier] = REDUCE(ts_aux_sym_return_statement_repeat0, 3), + [ts_sym_number] = REDUCE(ts_aux_sym_return_statement_repeat0, 3), + [ts_sym_comment] = SHIFT(244), + [ts_aux_sym_5] = REDUCE(ts_aux_sym_return_statement_repeat0, 3), + [ts_aux_sym_return] = REDUCE(ts_aux_sym_return_statement_repeat0, 3), + [ts_aux_sym_21] = REDUCE(ts_aux_sym_return_statement_repeat0, 3), + }, + [245] = { + [ts_sym_comment] = SHIFT(245), + [ts_aux_sym_5] = SHIFT(246), + }, + [246] = { + [ts_sym__terminator] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_comment] = SHIFT(246), + }, + [247] = { + [ts_sym_var_name] = SHIFT(248), [ts_sym__identifier] = SHIFT(134), - [ts_sym_comment] = SHIFT(183), - [ts_aux_sym_2] = SHIFT(199), + [ts_sym_comment] = SHIFT(247), + [ts_aux_sym_2] = SHIFT(263), }, - [184] = { + [248] = { [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_sym_comment] = SHIFT(184), - [ts_aux_sym__func_signature_repeat0] = SHIFT(185), + [ts_sym_comment] = SHIFT(248), + [ts_aux_sym__func_signature_repeat0] = SHIFT(249), [ts_aux_sym_6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_7] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), [ts_aux_sym_interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), - [ts_aux_sym_20] = SHIFT(135), + [ts_aux_sym_9] = SHIFT(135), }, - [185] = { - [ts_sym_type_expression] = SHIFT(186), + [249] = { + [ts_sym_type_expression] = SHIFT(250), [ts_sym_pointer_type] = SHIFT(92), [ts_sym_map_type] = SHIFT(92), [ts_sym_slice_type] = SHIFT(92), @@ -2965,143 +4273,143 @@ PARSE_TABLE = { [ts_sym_interface_type] = SHIFT(92), [ts_sym_type_name] = SHIFT(92), [ts_sym__identifier] = SHIFT(78), - [ts_sym_comment] = SHIFT(185), + [ts_sym_comment] = SHIFT(249), [ts_aux_sym_6] = SHIFT(93), [ts_aux_sym_map] = SHIFT(95), [ts_aux_sym_7] = SHIFT(100), [ts_aux_sym_struct] = SHIFT(103), [ts_aux_sym_interface] = SHIFT(107), }, - [186] = { - [ts_sym_comment] = SHIFT(186), - [ts_aux_sym__func_signature_repeat2] = SHIFT(187), + [250] = { + [ts_sym_comment] = SHIFT(250), + [ts_aux_sym__func_signature_repeat2] = SHIFT(251), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_20] = SHIFT(87), + [ts_aux_sym_9] = SHIFT(87), }, - [187] = { - [ts_sym_comment] = SHIFT(187), - [ts_aux_sym_2] = SHIFT(188), + [251] = { + [ts_sym_comment] = SHIFT(251), + [ts_aux_sym_2] = SHIFT(252), }, - [188] = { - [ts_sym_type_name] = SHIFT(189), - [ts_sym__identifier] = SHIFT(190), - [ts_sym_comment] = SHIFT(188), - [ts_aux_sym_1] = SHIFT(191), + [252] = { + [ts_sym_type_name] = SHIFT(253), + [ts_sym__identifier] = SHIFT(254), + [ts_sym_comment] = SHIFT(252), + [ts_aux_sym_1] = SHIFT(255), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 6), }, - [189] = { - [ts_sym_comment] = SHIFT(189), + [253] = { + [ts_sym_comment] = SHIFT(253), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 7), }, - [190] = { - [ts_sym_comment] = SHIFT(190), + [254] = { + [ts_sym_comment] = SHIFT(254), [ts_aux_sym_4] = REDUCE(ts_sym_type_name, 1), }, - [191] = { - [ts_sym_var_name] = SHIFT(192), - [ts_sym_type_name] = SHIFT(196), + [255] = { + [ts_sym_var_name] = SHIFT(256), + [ts_sym_type_name] = SHIFT(260), [ts_sym__identifier] = SHIFT(86), - [ts_sym_comment] = SHIFT(191), + [ts_sym_comment] = SHIFT(255), }, - [192] = { - [ts_sym_type_name] = SHIFT(193), + [256] = { + [ts_sym_type_name] = SHIFT(257), [ts_sym__identifier] = SHIFT(78), - [ts_sym_comment] = SHIFT(192), + [ts_sym_comment] = SHIFT(256), }, - [193] = { - [ts_sym_comment] = SHIFT(193), - [ts_aux_sym__func_signature_repeat3] = SHIFT(194), + [257] = { + [ts_sym_comment] = SHIFT(257), + [ts_aux_sym__func_signature_repeat3] = SHIFT(258), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_20] = SHIFT(74), + [ts_aux_sym_9] = SHIFT(74), }, - [194] = { - [ts_sym_comment] = SHIFT(194), - [ts_aux_sym_2] = SHIFT(195), + [258] = { + [ts_sym_comment] = SHIFT(258), + [ts_aux_sym_2] = SHIFT(259), }, - [195] = { - [ts_sym_comment] = SHIFT(195), + [259] = { + [ts_sym_comment] = SHIFT(259), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 11), }, - [196] = { - [ts_sym_comment] = SHIFT(196), - [ts_aux_sym__func_signature_repeat4] = SHIFT(197), + [260] = { + [ts_sym_comment] = SHIFT(260), + [ts_aux_sym__func_signature_repeat4] = SHIFT(261), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_20] = SHIFT(83), + [ts_aux_sym_9] = SHIFT(83), }, - [197] = { - [ts_sym_comment] = SHIFT(197), - [ts_aux_sym_2] = SHIFT(198), + [261] = { + [ts_sym_comment] = SHIFT(261), + [ts_aux_sym_2] = SHIFT(262), }, - [198] = { - [ts_sym_comment] = SHIFT(198), + [262] = { + [ts_sym_comment] = SHIFT(262), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 10), }, - [199] = { - [ts_sym_type_name] = SHIFT(200), - [ts_sym__identifier] = SHIFT(190), - [ts_sym_comment] = SHIFT(199), - [ts_aux_sym_1] = SHIFT(201), + [263] = { + [ts_sym_type_name] = SHIFT(264), + [ts_sym__identifier] = SHIFT(254), + [ts_sym_comment] = SHIFT(263), + [ts_aux_sym_1] = SHIFT(265), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 2), }, - [200] = { - [ts_sym_comment] = SHIFT(200), + [264] = { + [ts_sym_comment] = SHIFT(264), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 3), }, - [201] = { - [ts_sym_var_name] = SHIFT(202), - [ts_sym_type_name] = SHIFT(205), + [265] = { + [ts_sym_var_name] = SHIFT(266), + [ts_sym_type_name] = SHIFT(269), [ts_sym__identifier] = SHIFT(86), - [ts_sym_comment] = SHIFT(201), + [ts_sym_comment] = SHIFT(265), }, - [202] = { - [ts_sym_type_name] = SHIFT(203), + [266] = { + [ts_sym_type_name] = SHIFT(267), [ts_sym__identifier] = SHIFT(78), - [ts_sym_comment] = SHIFT(202), + [ts_sym_comment] = SHIFT(266), }, - [203] = { - [ts_sym_comment] = SHIFT(203), - [ts_aux_sym__func_signature_repeat3] = SHIFT(204), + [267] = { + [ts_sym_comment] = SHIFT(267), + [ts_aux_sym__func_signature_repeat3] = SHIFT(268), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_20] = SHIFT(74), + [ts_aux_sym_9] = SHIFT(74), }, - [204] = { - [ts_sym_comment] = SHIFT(204), - [ts_aux_sym_2] = SHIFT(189), + [268] = { + [ts_sym_comment] = SHIFT(268), + [ts_aux_sym_2] = SHIFT(253), }, - [205] = { - [ts_sym_comment] = SHIFT(205), - [ts_aux_sym__func_signature_repeat4] = SHIFT(206), + [269] = { + [ts_sym_comment] = SHIFT(269), + [ts_aux_sym__func_signature_repeat4] = SHIFT(270), [ts_aux_sym_2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_20] = SHIFT(83), + [ts_aux_sym_9] = SHIFT(83), }, - [206] = { - [ts_sym_comment] = SHIFT(206), - [ts_aux_sym_2] = SHIFT(207), + [270] = { + [ts_sym_comment] = SHIFT(270), + [ts_aux_sym_2] = SHIFT(271), }, - [207] = { - [ts_sym_comment] = SHIFT(207), + [271] = { + [ts_sym_comment] = SHIFT(271), [ts_aux_sym_4] = REDUCE(ts_sym__func_signature, 6), }, - [208] = { + [272] = { [ts_builtin_sym_end] = REDUCE(ts_sym_program, 3), - [ts_sym_comment] = SHIFT(208), + [ts_sym_comment] = SHIFT(272), }, - [209] = { - [ts_sym_package_name] = SHIFT(210), - [ts_sym__identifier] = SHIFT(211), - [ts_sym_comment] = SHIFT(209), + [273] = { + [ts_sym_package_name] = SHIFT(274), + [ts_sym__identifier] = SHIFT(275), + [ts_sym_comment] = SHIFT(273), }, - [210] = { + [274] = { [ts_builtin_sym_end] = REDUCE(ts_sym_package_directive, 2), - [ts_sym_comment] = SHIFT(210), + [ts_sym_comment] = SHIFT(274), [ts_aux_sym_import] = REDUCE(ts_sym_package_directive, 2), [ts_aux_sym_type] = REDUCE(ts_sym_package_directive, 2), [ts_aux_sym_var] = REDUCE(ts_sym_package_directive, 2), [ts_aux_sym_func] = REDUCE(ts_sym_package_directive, 2), }, - [211] = { + [275] = { [ts_builtin_sym_end] = REDUCE(ts_sym_package_name, 1), - [ts_sym_comment] = SHIFT(211), + [ts_sym_comment] = SHIFT(275), [ts_aux_sym_import] = REDUCE(ts_sym_package_name, 1), [ts_aux_sym_type] = REDUCE(ts_sym_package_name, 1), [ts_aux_sym_var] = REDUCE(ts_sym_package_name, 1), diff --git a/spec/runtime/languages/golang/flow_control.txt b/spec/runtime/languages/golang/flow_control.txt new file mode 100644 index 00000000..f50f11f5 --- /dev/null +++ b/spec/runtime/languages/golang/flow_control.txt @@ -0,0 +1,52 @@ +========================================== +parses function calls +========================================== +package main + +func main() { + println("1", 2) + println() +} +--- +(program + (package_directive (package_name)) + (func_declaration (var_name) (statement_block + (expression_statement (call_expression (var_name) (string) (number))) + (expression_statement (call_expression (var_name)))))) + +============================================ +parses selector expressions +============================================ +package main + +func main() { + x.SomeMethod(x.SomeField, x.OtherField.NestedField); +} +--- +(program + (package_directive (package_name)) + (func_declaration (var_name) (statement_block + (expression_statement (call_expression + (selector_expression (var_name) (var_name)) + (selector_expression (var_name) (var_name)) + (selector_expression (selector_expression (var_name) (var_name)) (var_name))))))) + +============================================ +parses return statements +============================================ +package main + +func main() { + return +} + +func helper() { + return 1, two, "three" +} +--- +(program + (package_directive (package_name)) + (func_declaration (var_name) (statement_block + (return_statement))) + (func_declaration (var_name) (statement_block + (return_statement (number) (var_name) (string))))) diff --git a/src/compiler/prepared_grammar.cc b/src/compiler/prepared_grammar.cc index 0fa4b599..b3c50819 100644 --- a/src/compiler/prepared_grammar.cc +++ b/src/compiler/prepared_grammar.cc @@ -37,7 +37,7 @@ namespace tree_sitter { bool PreparedGrammar::operator==(const PreparedGrammar &other) const { if (other.rules_.size() != rules_.size()) return false; - + for (size_t i = 0; i < rules_.size(); i++) { auto &pair = rules_[i]; auto &other_pair = other.rules_[i]; @@ -56,7 +56,7 @@ namespace tree_sitter { return true; } - + const vector> & PreparedGrammar::rules() const { return rules_; } @@ -64,16 +64,16 @@ namespace tree_sitter { const vector> & PreparedGrammar::aux_rules() const { return aux_rules_; } - + const vector & PreparedGrammar::ubiquitous_tokens() const { return ubiquitous_tokens_; } - + const PreparedGrammar & PreparedGrammar::ubiquitous_tokens(const vector &ubiquitous_tokens) { ubiquitous_tokens_ = ubiquitous_tokens; return *this; } - + ostream& operator<<(ostream &stream, const PreparedGrammar &grammar) { stream << string("#