From 97219d6d4b59e2c47f81020e33662d902c26172a Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:04 +0300 Subject: [PATCH 01/32] Minor grammar edits - Make semicolon in expression_statement mandatory - Add ternary declaration --- .../func/tree-sitter-func/grammar.js | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/server/src/languages/func/tree-sitter-func/grammar.js b/server/src/languages/func/tree-sitter-func/grammar.js index f6dbf92b..a94ddeac 100644 --- a/server/src/languages/func/tree-sitter-func/grammar.js +++ b/server/src/languages/func/tree-sitter-func/grammar.js @@ -161,7 +161,7 @@ const FUNC_GRAMMAR = { return_statement: $ => seq("return", $._expression, ";"), block_statement: $ => seq("{", repeat($._statement), "}"), - expression_statement: $ => prec.right(seq($._expression, optional(";"))), + expression_statement: $ => prec.right(seq($._expression, ";")), empty_statement: _ => ";", repeat_statement: $ => seq("repeat", field("count", $._expression), field("body", $.block_statement)), @@ -201,7 +201,7 @@ const FUNC_GRAMMAR = { _expression: $ => $._expr10, _expr10: $ => - prec( + prec.right( 10, seq( $._expr13, @@ -232,7 +232,22 @@ const FUNC_GRAMMAR = { ), ), - _expr13: $ => prec(13, seq($._expr15, optional(seq("?", $._expression, ":", $._expr13)))), + ternary_condition: $ => $._expr15, + ternary_expression: $ => + prec.right( + 13, + seq( + field("condition", $.ternary_condition), + "?", + field("consequent", $._expression), + ":", + field("alternative", $._expression), + ), + ), + + _expr13: $ => prec(13, choice($._expr15, $.ternary_expression)), + + // _expr13: $ => prec(13, seq($._expr15, optional(seq("?", $._expression, ":", $._expr13)))), _expr15: $ => prec( From 9c1e4d8d9efdd5bdd5d978506a3e64aedf8e4a2c Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:04 +0300 Subject: [PATCH 02/32] Make var_declaration be child type of all variable decls Fixes var declarations in tensor. Before var test = foo(); ;; is var declaration var (a, b) = bar(); ;; Is not (int a, int b) = bar(); ;; Is not either. Now a and b are typed var_declaration and also var (_, b) = foo() is allowed --- .../func/tree-sitter-func/grammar.js | 76 ++++++++++++++++--- 1 file changed, 65 insertions(+), 11 deletions(-) diff --git a/server/src/languages/func/tree-sitter-func/grammar.js b/server/src/languages/func/tree-sitter-func/grammar.js index a94ddeac..f331c305 100644 --- a/server/src/languages/func/tree-sitter-func/grammar.js +++ b/server/src/languages/func/tree-sitter-func/grammar.js @@ -14,6 +14,9 @@ function commaSep1(rule) { function commaSep2(rule) { return seq(rule, repeat1(seq(",", rule))) } +function commaSep1Trailing(rule) { + return seq(commaSep1(rule), optional(",")) +} const FUNC_GRAMMAR = { source_file: $ => repeat($._top_level_item), @@ -72,7 +75,7 @@ const FUNC_GRAMMAR = { seq( field("type_parameters", optional($.type_parameters)), field("return_type", $._type_hint), - field("name", $.identifier), + field("name", $.function_name), choice( seq( field("parameters", $.parameter_list), @@ -302,16 +305,65 @@ const FUNC_GRAMMAR = { ), ), ), - local_vars_declaration: $ => prec.dynamic(90, field("lhs", $._var_declaration_lhs)), - tuple_vars_declaration: $ => - prec(100, seq("[", field("vars", commaSep1($._var_declaration_lhs)), optional(","), "]")), + // ------------------------------------------------------------------ + // local vars + var_declaration: $ => seq(field("type", optional($._type_hint)), field("name", $.identifier)), + + nested_tensor_declaration: $ => + prec( + 101, + seq( + "(", + field( + "vars", + commaSep1Trailing( + choice( + $.nested_tensor_declaration, + $.var_declaration, + $.tuple_vars_declaration, + $.underscore, + ), + ), + ), + ")", + ), + ), tensor_vars_declaration: $ => - prec(100, seq("(", field("vars", commaSep1($._var_declaration_lhs)), optional(","), ")")), - var_declaration: $ => seq(field("type", $._type_hint), field("name", $.identifier)), + prec( + 101, + seq( + field("type", $._type_hint), // e.g. `var` + "(", + field( + "vars", + commaSep1Trailing( + choice( + $.nested_tensor_declaration, + $.var_declaration, + $.tuple_vars_declaration, + $.underscore, + ), + ), + ), + ")", + ), + ), + + _multiple_vars_declaration: $ => + prec.left(90, seq(choice($.tensor_vars_declaration, $.tuple_vars_declaration))), + local_vars_declaration: $ => + field("lhs", choice($._multiple_vars_declaration, $.var_declaration)), + //local_vars_declaration: $ => prec.dynamic(90, field("lhs", $._var_declaration_lhs)), + + tuple_vars_declaration: $ => + prec(101, seq("[", field("vars", commaSep1Trailing($.var_declaration)), "]")), + // tensor_vars_declaration: $ => + // prec(100, seq("(", field("vars", commaSep1Trailing($._var_declaration_lhs)), optional(","), ")")), + // var_declaration: $ => seq(field("type", $._type_hint), field("name", $.identifier)), - _var_declaration_lhs: $ => - choice($.tuple_vars_declaration, $.tensor_vars_declaration, $.var_declaration), + // _var_declaration_lhs: $ => + // choice($.tuple_vars_declaration, $.tensor_vars_declaration, $.var_declaration), type_expression: $ => prec( @@ -367,15 +419,15 @@ const FUNC_GRAMMAR = { $.type_identifier, $.tensor_type, $.tuple_type, - $._parenthesized_type, + // $._parenthesized_type, ), - _parenthesized_type: $ => seq("(", $._type_hint, ")"), + // _parenthesized_type: $ => alias(seq("(", $._type_hint, ")"), $.tensor_type), primitive_type: $ => choice("int", "cell", "slice", "builder", "cont", "tuple"), // constant_type: $ => choice("int", "slice"), - tensor_type: $ => choice(seq("(", ")"), seq("(", field("types", commaSep2($._type_hint)), ")")), + tensor_type: $ => choice(seq("(", ")"), seq("(", field("types", commaSep1($._type_hint)), ")")), tuple_type: $ => seq("[", field("types", commaSep($._type_hint)), "]"), @@ -400,6 +452,7 @@ const FUNC_GRAMMAR = { // actually, FunC identifiers are much more flexible identifier: _ => /`[^`]+`|[a-zA-Z0-9_\$%][^\s\+\-\*\/%,\.;\(\)\{\}\[\]=\|\^\~]*/, underscore: _ => "_", + function_name: $ => /(`.*`)|((\.|~)?(([$%a-zA-Z0-9_](\w|['?:$%!])+)|([a-zA-Z%$])))/, // multiline_comment: $ => seq('{-', repeat(choice(/./, $.multiline_comment)), '-}'), // unfortunately getting panic while generating parser with support for nested comments @@ -429,5 +482,6 @@ module.exports = grammar({ [$.parameter_list_relaxed, $.parameter_list], [$.tensor_expression, $.tensor_type], [$.typed_tuple, $.tuple_type], + [$.var_declaration, $.type_identifier], ], }) From 84d8cefbcf7177efdd014099d338b66db5578492 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:05 +0300 Subject: [PATCH 03/32] Grammar build --- .../func/tree-sitter-func/src/grammar.json | 487 +- .../func/tree-sitter-func/src/node-types.json | 981 +- .../func/tree-sitter-func/src/parser.c | 18279 ++++++++-------- 3 files changed, 10446 insertions(+), 9301 deletions(-) diff --git a/server/src/languages/func/tree-sitter-func/src/grammar.json b/server/src/languages/func/tree-sitter-func/src/grammar.json index 2f2a5a0e..40023d19 100644 --- a/server/src/languages/func/tree-sitter-func/src/grammar.json +++ b/server/src/languages/func/tree-sitter-func/src/grammar.json @@ -348,7 +348,7 @@ "name": "name", "content": { "type": "SYMBOL", - "name": "identifier" + "name": "function_name" } }, { @@ -979,16 +979,8 @@ "name": "_expression" }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": ";" - }, - { - "type": "BLANK" - } - ] + "type": "STRING", + "value": ";" } ] } @@ -1230,7 +1222,7 @@ "name": "_expr10" }, "_expr10": { - "type": "PREC", + "type": "PREC_RIGHT", "value": 10, "content": { "type": "SEQ", @@ -1332,44 +1324,64 @@ ] } }, + "ternary_condition": { + "type": "SYMBOL", + "name": "_expr15" + }, + "ternary_expression": { + "type": "PREC_RIGHT", + "value": 13, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "ternary_condition" + } + }, + { + "type": "STRING", + "value": "?" + }, + { + "type": "FIELD", + "name": "consequent", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + } + }, "_expr13": { "type": "PREC", "value": 13, "content": { - "type": "SEQ", + "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expr15" }, { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "SYMBOL", - "name": "_expr13" - } - ] - }, - { - "type": "BLANK" - } - ] + "type": "SYMBOL", + "name": "ternary_expression" } ] } @@ -1752,27 +1764,44 @@ ] } }, - "local_vars_declaration": { - "type": "PREC_DYNAMIC", - "value": 90, - "content": { - "type": "FIELD", - "name": "lhs", - "content": { - "type": "SYMBOL", - "name": "_var_declaration_lhs" + "var_declaration": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_type_hint" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } } - } + ] }, - "tuple_vars_declaration": { + "nested_tensor_declaration": { "type": "PREC", - "value": 100, + "value": 101, "content": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "[" + "value": "(" }, { "type": "FIELD", @@ -1781,53 +1810,100 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_var_declaration_lhs" + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "nested_tensor_declaration" + }, + { + "type": "SYMBOL", + "name": "var_declaration" + }, + { + "type": "SYMBOL", + "name": "tuple_vars_declaration" + }, + { + "type": "SYMBOL", + "name": "underscore" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "nested_tensor_declaration" + }, + { + "type": "SYMBOL", + "name": "var_declaration" + }, + { + "type": "SYMBOL", + "name": "tuple_vars_declaration" + }, + { + "type": "SYMBOL", + "name": "underscore" + } + ] + } + ] + } + } + ] }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_var_declaration_lhs" - } - ] - } + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] } ] } }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - }, { "type": "STRING", - "value": "]" + "value": ")" } ] } }, "tensor_vars_declaration": { "type": "PREC", - "value": 100, + "value": 101, "content": { "type": "SEQ", "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "_type_hint" + } + }, { "type": "STRING", "value": "(" @@ -1839,84 +1915,187 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_var_declaration_lhs" + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "nested_tensor_declaration" + }, + { + "type": "SYMBOL", + "name": "var_declaration" + }, + { + "type": "SYMBOL", + "name": "tuple_vars_declaration" + }, + { + "type": "SYMBOL", + "name": "underscore" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "nested_tensor_declaration" + }, + { + "type": "SYMBOL", + "name": "var_declaration" + }, + { + "type": "SYMBOL", + "name": "tuple_vars_declaration" + }, + { + "type": "SYMBOL", + "name": "underscore" + } + ] + } + ] + } + } + ] }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_var_declaration_lhs" - } - ] - } + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] } ] } }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "_multiple_vars_declaration": { + "type": "PREC_LEFT", + "value": 90, + "content": { + "type": "SEQ", + "members": [ { "type": "CHOICE", "members": [ { - "type": "STRING", - "value": "," + "type": "SYMBOL", + "name": "tensor_vars_declaration" }, { - "type": "BLANK" + "type": "SYMBOL", + "name": "tuple_vars_declaration" } ] - }, - { - "type": "STRING", - "value": ")" } ] } }, - "var_declaration": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type", - "content": { + "local_vars_declaration": { + "type": "FIELD", + "name": "lhs", + "content": { + "type": "CHOICE", + "members": [ + { "type": "SYMBOL", - "name": "_type_hint" - } - }, - { - "type": "FIELD", - "name": "name", - "content": { + "name": "_multiple_vars_declaration" + }, + { "type": "SYMBOL", - "name": "identifier" + "name": "var_declaration" } - } - ] + ] + } }, - "_var_declaration_lhs": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "tuple_vars_declaration" - }, - { - "type": "SYMBOL", - "name": "tensor_vars_declaration" - }, - { - "type": "SYMBOL", - "name": "var_declaration" - } - ] + "tuple_vars_declaration": { + "type": "PREC", + "value": 101, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "FIELD", + "name": "vars", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "var_declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "var_declaration" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + { + "type": "STRING", + "value": "]" + } + ] + } }, "type_expression": { "type": "PREC", @@ -2301,27 +2480,6 @@ { "type": "SYMBOL", "name": "tuple_type" - }, - { - "type": "SYMBOL", - "name": "_parenthesized_type" - } - ] - }, - "_parenthesized_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_type_hint" - }, - { - "type": "STRING", - "value": ")" } ] }, @@ -2388,7 +2546,7 @@ "name": "_type_hint" }, { - "type": "REPEAT1", + "type": "REPEAT", "content": { "type": "SEQ", "members": [ @@ -2557,6 +2715,10 @@ "type": "STRING", "value": "_" }, + "function_name": { + "type": "PATTERN", + "value": "(`.*`)|((\\.|~)?(([$%a-zA-Z0-9_](\\w|['?:$%!])+)|([a-zA-Z%$])))" + }, "comment": { "type": "TOKEN", "content": { @@ -2641,7 +2803,8 @@ ["parameter_list_relaxed", "hole_type"], ["parameter_list_relaxed", "parameter_list"], ["tensor_expression", "tensor_type"], - ["typed_tuple", "tuple_type"] + ["typed_tuple", "tuple_type"], + ["var_declaration", "type_identifier"] ], "precedences": [], "externals": [], diff --git a/server/src/languages/func/tree-sitter-func/src/node-types.json b/server/src/languages/func/tree-sitter-func/src/node-types.json index 97a5c07f..45e36ecf 100644 --- a/server/src/languages/func/tree-sitter-func/src/node-types.json +++ b/server/src/languages/func/tree-sitter-func/src/node-types.json @@ -143,10 +143,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -191,10 +187,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -263,6 +255,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -326,17 +322,9 @@ ] }, "type": { - "multiple": true, + "multiple": false, "required": false, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "function_type", "named": true @@ -423,6 +411,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -528,10 +520,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -576,10 +564,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -648,6 +632,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -745,6 +733,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -851,7 +843,7 @@ "required": true, "types": [ { - "type": "identifier", + "type": "function_name", "named": true } ] @@ -871,17 +863,9 @@ ] }, "return_type": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "function_type", "named": true @@ -988,17 +972,9 @@ ] }, "type": { - "multiple": true, + "multiple": false, "required": false, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "function_type", "named": true @@ -1130,10 +1106,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -1178,10 +1150,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -1266,6 +1234,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -1372,10 +1344,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -1420,10 +1388,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -1492,6 +1456,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -1673,6 +1641,38 @@ } } }, + { + "type": "nested_tensor_declaration", + "named": true, + "fields": { + "vars": { + "multiple": true, + "required": true, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "nested_tensor_declaration", + "named": true + }, + { + "type": "tuple_vars_declaration", + "named": true + }, + { + "type": "underscore", + "named": true + }, + { + "type": "var_declaration", + "named": true + } + ] + } + } + }, { "type": "number_literal", "named": true, @@ -1707,17 +1707,9 @@ ] }, "type": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "function_type", "named": true @@ -1839,6 +1831,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -1967,10 +1963,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -2015,10 +2007,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -2087,6 +2075,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -2179,6 +2171,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -2317,10 +2313,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -2365,10 +2357,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -2437,6 +2425,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -2493,14 +2485,6 @@ "multiple": true, "required": false, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": ",", "named": false @@ -2541,76 +2525,10 @@ "type": "tensor_vars_declaration", "named": true, "fields": { - "vars": { - "multiple": true, - "required": true, - "types": [ - { - "type": ",", - "named": false - }, - { - "type": "tensor_vars_declaration", - "named": true - }, - { - "type": "tuple_vars_declaration", - "named": true - }, - { - "type": "var_declaration", - "named": true - } - ] - } - } - }, - { - "type": "try_catch_statement", - "named": true, - "fields": { - "body": { + "type": { "multiple": false, "required": true, "types": [ - { - "type": "block_statement", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "catch_clause", - "named": true - } - ] - } - }, - { - "type": "tuple_type", - "named": true, - "fields": { - "types": { - "multiple": true, - "required": false, - "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, - { - "type": ",", - "named": false - }, { "type": "function_type", "named": true @@ -2640,13 +2558,7 @@ "named": true } ] - } - } - }, - { - "type": "tuple_vars_declaration", - "named": true, - "fields": { + }, "vars": { "multiple": true, "required": true, @@ -2656,7 +2568,7 @@ "named": false }, { - "type": "tensor_vars_declaration", + "type": "nested_tensor_declaration", "named": true }, { @@ -2664,38 +2576,11 @@ "named": true }, { - "type": "var_declaration", + "type": "underscore", "named": true - } - ] - } - } - }, - { - "type": "type_identifier", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - } - }, - { - "type": "type_parameter", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ + }, { - "type": "type_identifier", + "type": "var_declaration", "named": true } ] @@ -2703,7 +2588,7 @@ } }, { - "type": "type_parameters", + "type": "ternary_condition", "named": true, "fields": {}, "children": { @@ -2711,18 +2596,654 @@ "required": false, "types": [ { - "type": "type_parameter", + "type": "function_application", "named": true - } - ] - } - }, - { - "type": "typed_tuple", - "named": true, - "fields": { - "expressions": { - "multiple": true, + }, + { + "type": "identifier", + "named": true + }, + { + "type": "local_vars_declaration", + "named": true + }, + { + "type": "method_call", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "slice_string_literal", + "named": true + }, + { + "type": "string_literal", + "named": true + }, + { + "type": "tensor_expression", + "named": true + }, + { + "type": "typed_tuple", + "named": true + }, + { + "type": "underscore", + "named": true + } + ] + } + }, + { + "type": "ternary_expression", + "named": true, + "fields": { + "alternative": { + "multiple": true, + "required": true, + "types": [ + { + "type": "!=", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "%=", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "&=", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "*=", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "+=", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "-=", + "named": false + }, + { + "type": "/", + "named": false + }, + { + "type": "/%", + "named": false + }, + { + "type": "/=", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<<", + "named": false + }, + { + "type": "<<=", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "<=>", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": ">>", + "named": false + }, + { + "type": ">>=", + "named": false + }, + { + "type": "^", + "named": false + }, + { + "type": "^%", + "named": false + }, + { + "type": "^%=", + "named": false + }, + { + "type": "^/", + "named": false + }, + { + "type": "^/=", + "named": false + }, + { + "type": "^=", + "named": false + }, + { + "type": "^>>", + "named": false + }, + { + "type": "^>>=", + "named": false + }, + { + "type": "function_application", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "local_vars_declaration", + "named": true + }, + { + "type": "method_call", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "slice_string_literal", + "named": true + }, + { + "type": "string_literal", + "named": true + }, + { + "type": "tensor_expression", + "named": true + }, + { + "type": "ternary_expression", + "named": true + }, + { + "type": "typed_tuple", + "named": true + }, + { + "type": "underscore", + "named": true + }, + { + "type": "|", + "named": false + }, + { + "type": "|=", + "named": false + }, + { + "type": "~", + "named": false + }, + { + "type": "~%", + "named": false + }, + { + "type": "~%=", + "named": false + }, + { + "type": "~/", + "named": false + }, + { + "type": "~/=", + "named": false + }, + { + "type": "~>>", + "named": false + }, + { + "type": "~>>=", + "named": false + } + ] + }, + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "ternary_condition", + "named": true + } + ] + }, + "consequent": { + "multiple": true, + "required": true, + "types": [ + { + "type": "!=", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "%=", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "&=", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "*=", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "+=", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "-=", + "named": false + }, + { + "type": "/", + "named": false + }, + { + "type": "/%", + "named": false + }, + { + "type": "/=", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<<", + "named": false + }, + { + "type": "<<=", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "<=>", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": ">>", + "named": false + }, + { + "type": ">>=", + "named": false + }, + { + "type": "^", + "named": false + }, + { + "type": "^%", + "named": false + }, + { + "type": "^%=", + "named": false + }, + { + "type": "^/", + "named": false + }, + { + "type": "^/=", + "named": false + }, + { + "type": "^=", + "named": false + }, + { + "type": "^>>", + "named": false + }, + { + "type": "^>>=", + "named": false + }, + { + "type": "function_application", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "local_vars_declaration", + "named": true + }, + { + "type": "method_call", + "named": true + }, + { + "type": "number_literal", + "named": true + }, + { + "type": "parenthesized_expression", + "named": true + }, + { + "type": "slice_string_literal", + "named": true + }, + { + "type": "string_literal", + "named": true + }, + { + "type": "tensor_expression", + "named": true + }, + { + "type": "ternary_expression", + "named": true + }, + { + "type": "typed_tuple", + "named": true + }, + { + "type": "underscore", + "named": true + }, + { + "type": "|", + "named": false + }, + { + "type": "|=", + "named": false + }, + { + "type": "~", + "named": false + }, + { + "type": "~%", + "named": false + }, + { + "type": "~%=", + "named": false + }, + { + "type": "~/", + "named": false + }, + { + "type": "~/=", + "named": false + }, + { + "type": "~>>", + "named": false + }, + { + "type": "~>>=", + "named": false + } + ] + } + } + }, + { + "type": "try_catch_statement", + "named": true, + "fields": { + "body": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block_statement", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "catch_clause", + "named": true + } + ] + } + }, + { + "type": "tuple_type", + "named": true, + "fields": { + "types": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "function_type", + "named": true + }, + { + "type": "hole_type", + "named": true + }, + { + "type": "primitive_type", + "named": true + }, + { + "type": "tensor_type", + "named": true + }, + { + "type": "tuple_type", + "named": true + }, + { + "type": "type_identifier", + "named": true + }, + { + "type": "var_type", + "named": true + } + ] + } + } + }, + { + "type": "tuple_vars_declaration", + "named": true, + "fields": { + "vars": { + "multiple": true, + "required": true, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "var_declaration", + "named": true + } + ] + } + } + }, + { + "type": "type_identifier", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "type_identifier", + "named": true + } + ] + } + }, + { + "type": "type_parameter", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "type_identifier", + "named": true + } + ] + } + } + }, + { + "type": "type_parameters", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_parameter", + "named": true + } + ] + } + }, + { + "type": "typed_tuple", + "named": true, + "fields": { + "expressions": { + "multiple": true, "required": false, "types": [ { @@ -2785,10 +3306,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -2833,10 +3350,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -2905,6 +3418,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -2968,17 +3485,9 @@ ] }, "type": { - "multiple": true, - "required": true, + "multiple": false, + "required": false, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "function_type", "named": true @@ -3085,10 +3594,6 @@ "type": "/=", "named": false }, - { - "type": ":", - "named": false - }, { "type": "<", "named": false @@ -3133,10 +3638,6 @@ "type": ">>=", "named": false }, - { - "type": "?", - "named": false - }, { "type": "^", "named": false @@ -3205,6 +3706,10 @@ "type": "tensor_expression", "named": true }, + { + "type": "ternary_expression", + "named": true + }, { "type": "typed_tuple", "named": true @@ -3494,6 +3999,10 @@ "type": "forall", "named": false }, + { + "type": "function_name", + "named": true + }, { "type": "global", "named": false diff --git a/server/src/languages/func/tree-sitter-func/src/parser.c b/server/src/languages/func/tree-sitter-func/src/parser.c index e99d3ead..8a61d1fd 100644 --- a/server/src/languages/func/tree-sitter-func/src/parser.c +++ b/server/src/languages/func/tree-sitter-func/src/parser.c @@ -1,4 +1,4 @@ -/* Automatically @generated by tree-sitter v0.25.8 */ +/* Automatically @generated by tree-sitter v0.25.10 */ #include "tree_sitter/parser.h" @@ -7,16 +7,16 @@ #endif #define LANGUAGE_VERSION 15 -#define STATE_COUNT 402 -#define LARGE_STATE_COUNT 38 -#define SYMBOL_COUNT 180 +#define STATE_COUNT 440 +#define LARGE_STATE_COUNT 36 +#define SYMBOL_COUNT 184 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 98 +#define TOKEN_COUNT 99 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 27 #define MAX_ALIAS_SEQUENCE_LENGTH 8 #define MAX_RESERVED_WORD_SET_SIZE 0 -#define PRODUCTION_ID_COUNT 49 +#define PRODUCTION_ID_COUNT 54 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { @@ -116,89 +116,93 @@ enum ts_symbol_identifiers { sym_number_string_literal = 94, sym_slice_string_literal = 95, sym_underscore = 96, - sym_comment = 97, - sym_source_file = 98, - sym__top_level_item = 99, - sym_import_directive = 100, - sym_pragma_directive = 101, - sym_global_var_declarations = 102, - sym_global_var_declaration = 103, - sym_constant_declarations = 104, - sym_constant_declaration = 105, - sym_constant_declaration_value = 106, - sym_function_declaration = 107, - sym_inline = 108, - sym_method_id = 109, - sym_specifiers_list = 110, - sym_type_parameters = 111, - sym_type_parameter = 112, - sym_parameter_list = 113, - sym_parameter_list_relaxed = 114, - sym_parameter_declaration = 115, - sym_asm_function_body = 116, - sym__statement = 117, - sym_return_statement = 118, - sym_block_statement = 119, - sym_expression_statement = 120, - sym_empty_statement = 121, - sym_repeat_statement = 122, - sym_if_statement = 123, - sym__if_statement_contents = 124, - sym_do_while_statement = 125, - sym_while_statement = 126, - sym_try_catch_statement = 127, - sym_catch_clause = 128, - sym__expression = 129, - sym__expr10 = 130, - sym__expr13 = 131, - sym__expr15 = 132, - sym__expr17 = 133, - sym__expr20 = 134, - sym__expr30 = 135, - sym__expr75 = 136, - sym__expr80 = 137, - sym_method_call = 138, - sym__expr90 = 139, - sym_function_application = 140, - sym_local_vars_declaration = 141, - sym_tuple_vars_declaration = 142, - sym_tensor_vars_declaration = 143, + sym_function_name = 97, + sym_comment = 98, + sym_source_file = 99, + sym__top_level_item = 100, + sym_import_directive = 101, + sym_pragma_directive = 102, + sym_global_var_declarations = 103, + sym_global_var_declaration = 104, + sym_constant_declarations = 105, + sym_constant_declaration = 106, + sym_constant_declaration_value = 107, + sym_function_declaration = 108, + sym_inline = 109, + sym_method_id = 110, + sym_specifiers_list = 111, + sym_type_parameters = 112, + sym_type_parameter = 113, + sym_parameter_list = 114, + sym_parameter_list_relaxed = 115, + sym_parameter_declaration = 116, + sym_asm_function_body = 117, + sym__statement = 118, + sym_return_statement = 119, + sym_block_statement = 120, + sym_expression_statement = 121, + sym_empty_statement = 122, + sym_repeat_statement = 123, + sym_if_statement = 124, + sym__if_statement_contents = 125, + sym_do_while_statement = 126, + sym_while_statement = 127, + sym_try_catch_statement = 128, + sym_catch_clause = 129, + sym__expression = 130, + sym__expr10 = 131, + sym_ternary_condition = 132, + sym_ternary_expression = 133, + sym__expr13 = 134, + sym__expr15 = 135, + sym__expr17 = 136, + sym__expr20 = 137, + sym__expr30 = 138, + sym__expr75 = 139, + sym__expr80 = 140, + sym_method_call = 141, + sym__expr90 = 142, + sym_function_application = 143, sym_var_declaration = 144, - sym__var_declaration_lhs = 145, - sym__nontype_expr100 = 146, - sym__expr100 = 147, - sym_parenthesized_expression = 148, - sym_tensor_expression = 149, - sym_typed_tuple = 150, - sym__type_hint = 151, - sym_function_type = 152, - sym__atomic_type = 153, - sym__parenthesized_type = 154, - sym_primitive_type = 155, - sym_tensor_type = 156, - sym_tuple_type = 157, - sym_hole_type = 158, - sym_type_identifier = 159, - sym_number_literal = 160, - aux_sym_source_file_repeat1 = 161, - aux_sym_import_directive_repeat1 = 162, - aux_sym_global_var_declarations_repeat1 = 163, - aux_sym_constant_declarations_repeat1 = 164, - aux_sym_type_parameters_repeat1 = 165, - aux_sym_parameter_list_repeat1 = 166, - aux_sym_parameter_list_relaxed_repeat1 = 167, - aux_sym_asm_function_body_repeat1 = 168, - aux_sym_asm_function_body_repeat2 = 169, - aux_sym_asm_function_body_repeat3 = 170, - aux_sym_block_statement_repeat1 = 171, - aux_sym__expr17_repeat1 = 172, - aux_sym__expr20_repeat1 = 173, - aux_sym__expr30_repeat1 = 174, - aux_sym__expr80_repeat1 = 175, - aux_sym_function_application_repeat1 = 176, - aux_sym_tuple_vars_declaration_repeat1 = 177, - aux_sym_tensor_expression_repeat1 = 178, - aux_sym_tensor_type_repeat1 = 179, + sym_nested_tensor_declaration = 145, + sym_tensor_vars_declaration = 146, + sym__multiple_vars_declaration = 147, + sym_local_vars_declaration = 148, + sym_tuple_vars_declaration = 149, + sym__nontype_expr100 = 150, + sym__expr100 = 151, + sym_parenthesized_expression = 152, + sym_tensor_expression = 153, + sym_typed_tuple = 154, + sym__type_hint = 155, + sym_function_type = 156, + sym__atomic_type = 157, + sym_primitive_type = 158, + sym_tensor_type = 159, + sym_tuple_type = 160, + sym_hole_type = 161, + sym_type_identifier = 162, + sym_number_literal = 163, + aux_sym_source_file_repeat1 = 164, + aux_sym_import_directive_repeat1 = 165, + aux_sym_global_var_declarations_repeat1 = 166, + aux_sym_constant_declarations_repeat1 = 167, + aux_sym_type_parameters_repeat1 = 168, + aux_sym_parameter_list_repeat1 = 169, + aux_sym_parameter_list_relaxed_repeat1 = 170, + aux_sym_asm_function_body_repeat1 = 171, + aux_sym_asm_function_body_repeat2 = 172, + aux_sym_asm_function_body_repeat3 = 173, + aux_sym_block_statement_repeat1 = 174, + aux_sym__expr17_repeat1 = 175, + aux_sym__expr20_repeat1 = 176, + aux_sym__expr30_repeat1 = 177, + aux_sym__expr80_repeat1 = 178, + aux_sym_function_application_repeat1 = 179, + aux_sym_nested_tensor_declaration_repeat1 = 180, + aux_sym_tuple_vars_declaration_repeat1 = 181, + aux_sym_tensor_expression_repeat1 = 182, + aux_sym_tensor_type_repeat1 = 183, }; static const char * const ts_symbol_names[] = { @@ -299,6 +303,7 @@ static const char * const ts_symbol_names[] = { [sym_number_string_literal] = "number_string_literal", [sym_slice_string_literal] = "slice_string_literal", [sym_underscore] = "underscore", + [sym_function_name] = "function_name", [sym_comment] = "comment", [sym_source_file] = "source_file", [sym__top_level_item] = "_top_level_item", @@ -333,6 +338,8 @@ static const char * const ts_symbol_names[] = { [sym_catch_clause] = "catch_clause", [sym__expression] = "_expression", [sym__expr10] = "_expr10", + [sym_ternary_condition] = "ternary_condition", + [sym_ternary_expression] = "ternary_expression", [sym__expr13] = "_expr13", [sym__expr15] = "_expr15", [sym__expr17] = "_expr17", @@ -343,11 +350,12 @@ static const char * const ts_symbol_names[] = { [sym_method_call] = "method_call", [sym__expr90] = "_expr90", [sym_function_application] = "function_application", + [sym_var_declaration] = "var_declaration", + [sym_nested_tensor_declaration] = "nested_tensor_declaration", + [sym_tensor_vars_declaration] = "tensor_vars_declaration", + [sym__multiple_vars_declaration] = "_multiple_vars_declaration", [sym_local_vars_declaration] = "local_vars_declaration", [sym_tuple_vars_declaration] = "tuple_vars_declaration", - [sym_tensor_vars_declaration] = "tensor_vars_declaration", - [sym_var_declaration] = "var_declaration", - [sym__var_declaration_lhs] = "_var_declaration_lhs", [sym__nontype_expr100] = "_nontype_expr100", [sym__expr100] = "_expr100", [sym_parenthesized_expression] = "parenthesized_expression", @@ -356,7 +364,6 @@ static const char * const ts_symbol_names[] = { [sym__type_hint] = "_type_hint", [sym_function_type] = "function_type", [sym__atomic_type] = "_atomic_type", - [sym__parenthesized_type] = "_parenthesized_type", [sym_primitive_type] = "primitive_type", [sym_tensor_type] = "tensor_type", [sym_tuple_type] = "tuple_type", @@ -379,6 +386,7 @@ static const char * const ts_symbol_names[] = { [aux_sym__expr30_repeat1] = "_expr30_repeat1", [aux_sym__expr80_repeat1] = "_expr80_repeat1", [aux_sym_function_application_repeat1] = "function_application_repeat1", + [aux_sym_nested_tensor_declaration_repeat1] = "nested_tensor_declaration_repeat1", [aux_sym_tuple_vars_declaration_repeat1] = "tuple_vars_declaration_repeat1", [aux_sym_tensor_expression_repeat1] = "tensor_expression_repeat1", [aux_sym_tensor_type_repeat1] = "tensor_type_repeat1", @@ -482,6 +490,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_number_string_literal] = sym_number_string_literal, [sym_slice_string_literal] = sym_slice_string_literal, [sym_underscore] = sym_underscore, + [sym_function_name] = sym_function_name, [sym_comment] = sym_comment, [sym_source_file] = sym_source_file, [sym__top_level_item] = sym__top_level_item, @@ -516,6 +525,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_catch_clause] = sym_catch_clause, [sym__expression] = sym__expression, [sym__expr10] = sym__expr10, + [sym_ternary_condition] = sym_ternary_condition, + [sym_ternary_expression] = sym_ternary_expression, [sym__expr13] = sym__expr13, [sym__expr15] = sym__expr15, [sym__expr17] = sym__expr17, @@ -526,11 +537,12 @@ static const TSSymbol ts_symbol_map[] = { [sym_method_call] = sym_method_call, [sym__expr90] = sym__expr90, [sym_function_application] = sym_function_application, + [sym_var_declaration] = sym_var_declaration, + [sym_nested_tensor_declaration] = sym_nested_tensor_declaration, + [sym_tensor_vars_declaration] = sym_tensor_vars_declaration, + [sym__multiple_vars_declaration] = sym__multiple_vars_declaration, [sym_local_vars_declaration] = sym_local_vars_declaration, [sym_tuple_vars_declaration] = sym_tuple_vars_declaration, - [sym_tensor_vars_declaration] = sym_tensor_vars_declaration, - [sym_var_declaration] = sym_var_declaration, - [sym__var_declaration_lhs] = sym__var_declaration_lhs, [sym__nontype_expr100] = sym__nontype_expr100, [sym__expr100] = sym__expr100, [sym_parenthesized_expression] = sym_parenthesized_expression, @@ -539,7 +551,6 @@ static const TSSymbol ts_symbol_map[] = { [sym__type_hint] = sym__type_hint, [sym_function_type] = sym_function_type, [sym__atomic_type] = sym__atomic_type, - [sym__parenthesized_type] = sym__parenthesized_type, [sym_primitive_type] = sym_primitive_type, [sym_tensor_type] = sym_tensor_type, [sym_tuple_type] = sym_tuple_type, @@ -562,6 +573,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym__expr30_repeat1] = aux_sym__expr30_repeat1, [aux_sym__expr80_repeat1] = aux_sym__expr80_repeat1, [aux_sym_function_application_repeat1] = aux_sym_function_application_repeat1, + [aux_sym_nested_tensor_declaration_repeat1] = aux_sym_nested_tensor_declaration_repeat1, [aux_sym_tuple_vars_declaration_repeat1] = aux_sym_tuple_vars_declaration_repeat1, [aux_sym_tensor_expression_repeat1] = aux_sym_tensor_expression_repeat1, [aux_sym_tensor_type_repeat1] = aux_sym_tensor_type_repeat1, @@ -956,6 +968,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_function_name] = { + .visible = true, + .named = true, + }, [sym_comment] = { .visible = true, .named = true, @@ -1092,6 +1108,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_ternary_condition] = { + .visible = true, + .named = true, + }, + [sym_ternary_expression] = { + .visible = true, + .named = true, + }, [sym__expr13] = { .visible = false, .named = true, @@ -1132,11 +1156,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_local_vars_declaration] = { + [sym_var_declaration] = { .visible = true, .named = true, }, - [sym_tuple_vars_declaration] = { + [sym_nested_tensor_declaration] = { .visible = true, .named = true, }, @@ -1144,12 +1168,16 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_var_declaration] = { + [sym__multiple_vars_declaration] = { + .visible = false, + .named = true, + }, + [sym_local_vars_declaration] = { .visible = true, .named = true, }, - [sym__var_declaration_lhs] = { - .visible = false, + [sym_tuple_vars_declaration] = { + .visible = true, .named = true, }, [sym__nontype_expr100] = { @@ -1184,10 +1212,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [sym__parenthesized_type] = { - .visible = false, - .named = true, - }, [sym_primitive_type] = { .visible = true, .named = true, @@ -1276,6 +1300,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_nested_tensor_declaration_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_tuple_vars_declaration_repeat1] = { .visible = false, .named = false, @@ -1388,16 +1416,21 @@ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [36] = {.index = 89, .length = 2}, [37] = {.index = 91, .length = 2}, [38] = {.index = 93, .length = 2}, - [39] = {.index = 95, .length = 1}, - [40] = {.index = 96, .length = 2}, + [39] = {.index = 95, .length = 2}, + [40] = {.index = 97, .length = 1}, [41] = {.index = 98, .length = 2}, [42] = {.index = 100, .length = 2}, - [43] = {.index = 102, .length = 1}, - [44] = {.index = 103, .length = 2}, - [45] = {.index = 105, .length = 1}, - [46] = {.index = 106, .length = 4}, - [47] = {.index = 110, .length = 7}, - [48] = {.index = 117, .length = 2}, + [43] = {.index = 102, .length = 2}, + [44] = {.index = 104, .length = 1}, + [45] = {.index = 105, .length = 3}, + [46] = {.index = 108, .length = 3}, + [47] = {.index = 111, .length = 3}, + [48] = {.index = 114, .length = 2}, + [49] = {.index = 116, .length = 1}, + [50] = {.index = 117, .length = 4}, + [51] = {.index = 121, .length = 4}, + [52] = {.index = 125, .length = 7}, + [53] = {.index = 132, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -1413,9 +1446,9 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1}, {field_type, 0}, [6] = - {field_name, 1}, - [7] = {field_types, 1}, + [7] = + {field_name, 1}, [8] = {field_decls, 1}, {field_decls, 2}, @@ -1488,9 +1521,9 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 0}, {field_specifiers, 3}, [62] = - {field_vars, 1}, - [63] = {field_expressions, 1}, + [63] = + {field_vars, 1}, [64] = {field_asm_body, 5}, {field_name, 2}, @@ -1533,29 +1566,49 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_arguments, 2}, {field_method_name, 1}, [95] = + {field_type, 0}, + {field_vars, 2}, + [97] = {field_value, 2}, - [96] = + [98] = {field_body, 2}, {field_count, 1}, - [98] = + [100] = {field_condition, 0}, {field_consequent, 1}, - [100] = + [102] = {field_body, 2}, {field_precondition, 1}, - [102] = + [104] = {field_body, 1}, - [103] = + [105] = + {field_vars, 1}, + {field_vars, 2}, + {field_vars, 3}, + [108] = + {field_alternative, 4}, + {field_condition, 0}, + {field_consequent, 2}, + [111] = + {field_type, 0}, + {field_vars, 2}, + {field_vars, 3}, + [114] = {field_body, 1}, {field_postcondition, 3}, - [105] = + [116] = {field_catch_body, 1}, - [106] = + [117] = + {field_type, 0}, + {field_vars, 2}, + {field_vars, 3}, + {field_vars, 4}, + [121] = {field_alternative, 2}, {field_alternative, 3}, {field_condition, 0}, {field_consequent, 1}, - [110] = + [125] = {field_alternative, 2}, {field_alternative, 3}, {field_alternative, 3, .inherited = true}, @@ -1563,7 +1616,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_condition, 3, .inherited = true}, {field_consequent, 1}, {field_consequent, 3, .inherited = true}, - [117] = + [132] = {field_catch_body, 2}, {field_catch_expr, 1}, }; @@ -1595,15 +1648,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [9] = 9, [10] = 10, [11] = 11, - [12] = 12, + [12] = 9, [13] = 13, [14] = 14, - [15] = 15, + [15] = 7, [16] = 16, - [17] = 16, + [17] = 17, [18] = 18, [19] = 19, - [20] = 12, + [20] = 20, [21] = 21, [22] = 22, [23] = 23, @@ -1630,123 +1683,123 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [44] = 44, [45] = 45, [46] = 46, - [47] = 47, - [48] = 3, - [49] = 2, - [50] = 50, - [51] = 8, - [52] = 10, - [53] = 7, - [54] = 9, - [55] = 11, - [56] = 6, - [57] = 23, - [58] = 25, - [59] = 26, - [60] = 27, - [61] = 28, - [62] = 29, - [63] = 30, - [64] = 32, - [65] = 33, - [66] = 34, - [67] = 19, + [47] = 3, + [48] = 2, + [49] = 13, + [50] = 14, + [51] = 14, + [52] = 13, + [53] = 11, + [54] = 10, + [55] = 10, + [56] = 11, + [57] = 31, + [58] = 58, + [59] = 24, + [60] = 25, + [61] = 26, + [62] = 6, + [63] = 20, + [64] = 27, + [65] = 28, + [66] = 29, + [67] = 30, [68] = 4, - [69] = 14, - [70] = 35, - [71] = 21, - [72] = 7, - [73] = 8, - [74] = 5, - [75] = 9, - [76] = 10, + [69] = 16, + [70] = 32, + [71] = 17, + [72] = 5, + [73] = 22, + [74] = 23, + [75] = 75, + [76] = 76, [77] = 77, - [78] = 18, - [79] = 31, - [80] = 14, - [81] = 10, - [82] = 11, - [83] = 18, - [84] = 19, - [85] = 35, - [86] = 21, + [78] = 17, + [79] = 79, + [80] = 77, + [81] = 21, + [82] = 22, + [83] = 13, + [84] = 14, + [85] = 23, + [86] = 24, [87] = 25, [88] = 26, [89] = 27, [90] = 28, - [91] = 29, - [92] = 30, - [93] = 32, - [94] = 33, + [91] = 30, + [92] = 16, + [93] = 31, + [94] = 32, [95] = 95, - [96] = 34, - [97] = 9, - [98] = 98, - [99] = 15, + [96] = 96, + [97] = 79, + [98] = 77, + [99] = 99, [100] = 100, - [101] = 101, - [102] = 102, - [103] = 103, - [104] = 104, - [105] = 105, - [106] = 13, - [107] = 107, + [101] = 95, + [102] = 79, + [103] = 77, + [104] = 79, + [105] = 29, + [106] = 106, + [107] = 33, [108] = 108, - [109] = 22, - [110] = 102, - [111] = 104, - [112] = 108, - [113] = 98, - [114] = 103, - [115] = 102, - [116] = 104, - [117] = 108, - [118] = 98, - [119] = 102, - [120] = 104, - [121] = 121, + [109] = 109, + [110] = 106, + [111] = 19, + [112] = 112, + [113] = 113, + [114] = 114, + [115] = 115, + [116] = 116, + [117] = 117, + [118] = 115, + [119] = 114, + [120] = 115, + [121] = 18, [122] = 122, [123] = 123, [124] = 124, - [125] = 36, + [125] = 35, [126] = 126, - [127] = 127, - [128] = 128, - [129] = 37, + [127] = 124, + [128] = 34, + [129] = 124, [130] = 130, - [131] = 124, + [131] = 130, [132] = 132, [133] = 132, [134] = 134, [135] = 134, [136] = 136, - [137] = 137, - [138] = 137, - [139] = 139, - [140] = 140, - [141] = 140, - [142] = 142, - [143] = 143, - [144] = 142, - [145] = 143, - [146] = 43, - [147] = 147, - [148] = 147, - [149] = 42, - [150] = 40, - [151] = 41, - [152] = 38, - [153] = 44, + [137] = 39, + [138] = 38, + [139] = 36, + [140] = 41, + [141] = 141, + [142] = 37, + [143] = 141, + [144] = 136, + [145] = 145, + [146] = 42, + [147] = 145, + [148] = 148, + [149] = 148, + [150] = 45, + [151] = 44, + [152] = 43, + [153] = 153, [154] = 154, - [155] = 154, - [156] = 156, - [157] = 47, + [155] = 155, + [156] = 155, + [157] = 58, [158] = 158, - [159] = 45, - [160] = 46, + [159] = 159, + [160] = 160, [161] = 161, - [162] = 161, - [163] = 77, + [162] = 162, + [163] = 163, [164] = 164, [165] = 165, [166] = 166, @@ -1755,47 +1808,47 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [169] = 169, [170] = 170, [171] = 171, - [172] = 172, + [172] = 123, [173] = 173, [174] = 174, - [175] = 175, + [175] = 130, [176] = 176, [177] = 177, [178] = 178, [179] = 179, - [180] = 180, - [181] = 181, - [182] = 182, - [183] = 181, + [180] = 179, + [181] = 179, + [182] = 178, + [183] = 178, [184] = 184, [185] = 185, - [186] = 186, - [187] = 187, - [188] = 185, - [189] = 181, - [190] = 182, - [191] = 182, - [192] = 184, - [193] = 185, - [194] = 184, - [195] = 195, - [196] = 136, - [197] = 139, + [186] = 185, + [187] = 185, + [188] = 188, + [189] = 189, + [190] = 190, + [191] = 190, + [192] = 190, + [193] = 193, + [194] = 193, + [195] = 193, + [196] = 196, + [197] = 160, [198] = 198, [199] = 199, [200] = 200, - [201] = 201, + [201] = 198, [202] = 202, - [203] = 203, + [203] = 159, [204] = 204, [205] = 205, [206] = 206, [207] = 207, - [208] = 167, + [208] = 199, [209] = 209, [210] = 210, - [211] = 211, - [212] = 166, + [211] = 210, + [212] = 212, [213] = 213, [214] = 214, [215] = 215, @@ -1810,8 +1863,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [224] = 224, [225] = 225, [226] = 226, - [227] = 173, - [228] = 228, + [227] = 227, + [228] = 161, [229] = 229, [230] = 230, [231] = 231, @@ -1852,29 +1905,29 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [266] = 266, [267] = 267, [268] = 268, - [269] = 269, + [269] = 258, [270] = 270, - [271] = 271, - [272] = 272, - [273] = 273, + [271] = 253, + [272] = 250, + [273] = 254, [274] = 274, [275] = 275, - [276] = 276, + [276] = 259, [277] = 277, [278] = 278, - [279] = 279, - [280] = 280, + [279] = 266, + [280] = 252, [281] = 281, - [282] = 282, - [283] = 283, - [284] = 284, + [282] = 260, + [283] = 255, + [284] = 251, [285] = 285, [286] = 286, - [287] = 287, + [287] = 257, [288] = 288, - [289] = 289, + [289] = 288, [290] = 290, - [291] = 291, + [291] = 288, [292] = 292, [293] = 293, [294] = 294, @@ -1882,7 +1935,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [296] = 296, [297] = 297, [298] = 298, - [299] = 299, + [299] = 262, [300] = 300, [301] = 301, [302] = 302, @@ -1902,7 +1955,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [316] = 316, [317] = 317, [318] = 318, - [319] = 34, + [319] = 319, [320] = 320, [321] = 321, [322] = 322, @@ -1910,81 +1963,119 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [324] = 324, [325] = 325, [326] = 326, - [327] = 296, + [327] = 327, [328] = 328, - [329] = 304, + [329] = 329, [330] = 330, - [331] = 314, - [332] = 317, - [333] = 320, + [331] = 331, + [332] = 332, + [333] = 333, [334] = 334, - [335] = 323, + [335] = 335, [336] = 336, [337] = 337, [338] = 338, - [339] = 339, + [339] = 17, [340] = 340, [341] = 341, - [342] = 304, + [342] = 342, [343] = 343, - [344] = 314, - [345] = 317, - [346] = 320, + [344] = 344, + [345] = 345, + [346] = 346, [347] = 347, - [348] = 323, + [348] = 348, [349] = 349, [350] = 350, [351] = 351, - [352] = 296, - [353] = 353, - [354] = 354, - [355] = 355, + [352] = 352, + [353] = 341, + [354] = 330, + [355] = 344, [356] = 356, [357] = 357, [358] = 358, [359] = 359, - [360] = 360, - [361] = 361, + [360] = 317, + [361] = 322, [362] = 362, [363] = 363, - [364] = 364, - [365] = 365, - [366] = 366, + [364] = 348, + [365] = 349, + [366] = 356, [367] = 367, [368] = 368, [369] = 369, - [370] = 370, - [371] = 371, - [372] = 372, + [370] = 367, + [371] = 317, + [372] = 322, [373] = 373, - [374] = 374, - [375] = 375, - [376] = 376, - [377] = 377, - [378] = 378, - [379] = 379, + [374] = 348, + [375] = 349, + [376] = 356, + [377] = 367, + [378] = 352, + [379] = 368, [380] = 380, [381] = 381, [382] = 382, - [383] = 383, + [383] = 368, [384] = 384, [385] = 385, [386] = 386, [387] = 387, [388] = 388, [389] = 389, - [390] = 384, - [391] = 384, + [390] = 390, + [391] = 391, [392] = 392, [393] = 393, [394] = 394, [395] = 395, [396] = 396, - [397] = 392, + [397] = 397, [398] = 398, [399] = 399, - [400] = 385, + [400] = 400, [401] = 401, + [402] = 402, + [403] = 403, + [404] = 404, + [405] = 405, + [406] = 406, + [407] = 393, + [408] = 408, + [409] = 409, + [410] = 410, + [411] = 411, + [412] = 412, + [413] = 413, + [414] = 414, + [415] = 415, + [416] = 416, + [417] = 393, + [418] = 418, + [419] = 419, + [420] = 420, + [421] = 421, + [422] = 422, + [423] = 423, + [424] = 424, + [425] = 425, + [426] = 426, + [427] = 427, + [428] = 428, + [429] = 429, + [430] = 430, + [431] = 431, + [432] = 432, + [433] = 433, + [434] = 434, + [435] = 430, + [436] = 425, + [437] = 437, + [438] = 438, + [439] = 421, }; static const TSCharacterRange sym_identifier_character_set_1[] = { @@ -1997,253 +2088,253 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(86); + if (eof) ADVANCE(90); ADVANCE_MAP( - '!', 26, + '!', 27, '"', 10, - '#', 51, - '%', 149, - '&', 155, - '(', 103, - ')', 104, - '*', 146, - '+', 142, - ',', 100, - '-', 137, - '.', 159, - '/', 147, - '0', 162, - ':', 125, - ';', 89, - '<', 127, - '=', 102, - '>', 128, - '?', 124, - '[', 160, - ']', 161, - '^', 144, - '`', 84, - 'a', 179, - 'c', 182, - 'n', 183, - '{', 106, - '|', 143, - '}', 107, - '~', 157, + '#', 53, + '%', 153, + '&', 159, + '(', 107, + ')', 108, + '*', 150, + '+', 146, + ',', 104, + '-', 141, + '.', 163, + '/', 151, + '0', 166, + ':', 129, + ';', 93, + '<', 131, + '=', 106, + '>', 132, + '?', 128, + '[', 164, + ']', 165, + '^', 148, + '`', 88, + 'a', 183, + 'c', 186, + 'n', 187, + '{', 110, + '|', 147, + '}', 111, + '~', 161, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); if (lookahead == '$' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 1: ADVANCE_MAP( - ' ', 88, + ' ', 92, '"', 11, - '/', 15, - ';', 25, - '<', 34, - '>', 34, - '`', 84, - 'a', 179, - 'c', 182, - 'n', 183, - '{', 19, - '=', 80, - '^', 80, + '/', 16, + ';', 26, + '<', 35, + '>', 35, + '`', 88, + 'a', 183, + 'c', 186, + 'n', 187, + '{', 20, + '=', 82, + '^', 82, ); if (('\t' <= lookahead && lookahead <= '\r')) SKIP(1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); if (lookahead == '$' || lookahead == '%' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 2: ADVANCE_MAP( - ' ', 88, + ' ', 92, '"', 11, - '/', 15, - ';', 25, - '<', 34, - '>', 34, - '{', 19, - '=', 80, - '^', 80, + '/', 16, + ';', 26, + '<', 35, + '>', 35, + '{', 20, + '=', 82, + '^', 82, ); if (('\t' <= lookahead && lookahead <= '\r')) SKIP(2); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 3: ADVANCE_MAP( - ' ', 88, - '/', 15, - ';', 25, - '`', 84, - 'a', 179, - 'c', 182, - 'n', 183, - '{', 19, + ' ', 92, + '/', 16, + ';', 26, + '`', 88, + 'a', 183, + 'c', 186, + 'n', 187, + '{', 20, ); if (('\t' <= lookahead && lookahead <= '\r')) SKIP(3); if (lookahead == '$' || lookahead == '%' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 4: ADVANCE_MAP( - '!', 26, + '!', 27, '"', 10, - '%', 149, - '&', 155, - '(', 103, - '*', 146, - '+', 142, - '-', 137, - '.', 159, - '/', 147, - '0', 162, - ';', 89, - '<', 127, - '=', 102, - '>', 128, - '?', 124, - '[', 160, - '^', 144, - '`', 84, - '{', 106, - '|', 143, - '}', 107, - '~', 157, + '%', 153, + '&', 159, + '(', 107, + '*', 150, + '+', 146, + '-', 141, + '.', 163, + '/', 151, + '0', 166, + ';', 93, + '<', 131, + '=', 106, + '>', 132, + '?', 128, + '[', 164, + '^', 148, + '`', 88, + '{', 110, + '|', 147, + '}', 111, + '~', 161, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); if (lookahead == '$' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 5: ADVANCE_MAP( - '!', 26, + '!', 27, '"', 10, - '%', 177, - '&', 28, - '(', 103, - ')', 104, - '*', 29, - '+', 142, - ',', 100, - '-', 138, - '/', 16, - '0', 162, - ':', 125, - ';', 89, - '<', 127, - '=', 102, - '>', 128, - '?', 124, - '[', 160, - ']', 161, - '^', 145, - '`', 84, - '{', 106, - '|', 143, - '}', 107, - '~', 158, + '%', 181, + '&', 29, + '(', 107, + ')', 108, + '*', 30, + '+', 146, + ',', 104, + '-', 142, + '/', 17, + '0', 166, + ':', 129, + ';', 93, + '<', 131, + '=', 106, + '>', 132, + '?', 128, + '[', 164, + ']', 165, + '^', 149, + '`', 88, + '{', 110, + '|', 147, + '}', 111, + '~', 162, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); if (lookahead == '$' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 6: ADVANCE_MAP( - '!', 26, - '%', 149, - '&', 155, - '(', 103, - ')', 104, - '*', 146, - '+', 142, - ',', 100, - '-', 141, - '.', 159, - '/', 147, - ':', 125, - ';', 89, - '<', 127, - '=', 102, - '>', 128, - '?', 124, - ']', 161, - '^', 144, - '`', 84, - '{', 106, - '|', 143, - '~', 157, + '!', 27, + '%', 153, + '&', 159, + '(', 107, + ')', 108, + '*', 150, + '+', 146, + ',', 104, + '-', 145, + '.', 163, + '/', 151, + ':', 129, + ';', 93, + '<', 131, + '=', 106, + '>', 132, + '?', 128, + ']', 165, + '^', 148, + '`', 88, + '{', 110, + '|', 147, + '~', 161, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(6); if (lookahead == '$' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 7: ADVANCE_MAP( - '!', 26, - '%', 148, - '&', 155, - ')', 104, - '*', 146, - '+', 142, - ',', 100, - '-', 140, - '.', 159, - '/', 147, - ':', 125, - ';', 89, - '<', 127, - '=', 102, - '>', 128, - '?', 124, - ']', 161, - '^', 144, - '{', 106, - '|', 143, - '~', 157, + '!', 27, + '%', 152, + '&', 159, + ')', 108, + '*', 150, + '+', 146, + ',', 104, + '-', 144, + '.', 163, + '/', 151, + ':', 129, + ';', 93, + '<', 131, + '=', 106, + '>', 132, + '?', 128, + ']', 165, + '^', 148, + '{', 110, + '|', 147, + '~', 161, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); END_STATE(); case 8: ADVANCE_MAP( - '!', 26, - '%', 27, - '&', 28, - ')', 104, - '*', 29, - '+', 142, - ',', 100, - '-', 140, - '/', 16, - ':', 125, - ';', 89, - '<', 127, - '=', 102, - '>', 128, - '?', 124, - ']', 161, - '^', 145, - '{', 106, - '|', 143, + '!', 27, + '%', 28, + '&', 29, + ')', 108, + '*', 30, + '+', 146, + ',', 104, + '-', 144, + '/', 17, + ':', 129, + ';', 93, + '<', 131, + '=', 106, + '>', 132, + '?', 128, + ']', 165, + '^', 149, + '{', 110, + '|', 147, '~', 14, ); if (('\t' <= lookahead && lookahead <= '\r') || @@ -2252,326 +2343,370 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 9: ADVANCE_MAP( '"', 10, - '(', 103, - ')', 104, - ',', 100, - '-', 139, - '/', 15, - '0', 162, - ':', 125, - ';', 89, - '[', 160, - ']', 161, - '`', 84, - '{', 106, - '}', 107, - '~', 156, + '(', 107, + ')', 108, + '-', 143, + '/', 16, + '0', 166, + ';', 93, + '[', 164, + ']', 165, + '`', 88, + '{', 110, + '}', 111, + '~', 160, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(9); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); if (lookahead == '$' || lookahead == '%' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); case 10: - if (lookahead == '"') ADVANCE(169); + if (lookahead == '"') ADVANCE(173); if (lookahead != 0) ADVANCE(10); END_STATE(); case 11: - if (lookahead == '"') ADVANCE(168); + if (lookahead == '"') ADVANCE(172); if (lookahead != 0) ADVANCE(11); END_STATE(); case 12: - if (lookahead == '"') ADVANCE(170); + if (lookahead == '"') ADVANCE(174); if (lookahead != 0) ADVANCE(12); END_STATE(); case 13: if (lookahead == '"') ADVANCE(12); - if (lookahead == ')') ADVANCE(104); - if (lookahead == '-') ADVANCE(24); - if (lookahead == '/') ADVANCE(15); - if (lookahead == '0') ADVANCE(163); - if (lookahead == ';') ADVANCE(25); - if (lookahead == '{') ADVANCE(19); + if (lookahead == ')') ADVANCE(108); + if (lookahead == '-') ADVANCE(25); + if (lookahead == '/') ADVANCE(16); + if (lookahead == '0') ADVANCE(167); + if (lookahead == ';') ADVANCE(26); + if (lookahead == '{') ADVANCE(20); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(13); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); case 14: - if (lookahead == '%') ADVANCE(32); - if (lookahead == '/') ADVANCE(33); - if (lookahead == '>') ADVANCE(37); + if (lookahead == '%') ADVANCE(33); + if (lookahead == '/') ADVANCE(34); + if (lookahead == '>') ADVANCE(38); END_STATE(); case 15: - if (lookahead == '*') ADVANCE(18); - if (lookahead == '/') ADVANCE(195); + ADVANCE_MAP( + ')', 108, + ',', 104, + '-', 36, + '/', 16, + ';', 26, + ']', 165, + '`', 40, + '{', 20, + '.', 85, + '~', 85, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(15); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(87); + if (lookahead == '$' || + lookahead == '%' || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); END_STATE(); case 16: - if (lookahead == '*') ADVANCE(18); - if (lookahead == '/') ADVANCE(195); - if (lookahead == '=') ADVANCE(111); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '/') ADVANCE(201); END_STATE(); case 17: - if (lookahead == '*') ADVANCE(17); - if (lookahead == '/') ADVANCE(194); - if (lookahead != 0) ADVANCE(18); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '/') ADVANCE(201); + if (lookahead == '=') ADVANCE(115); END_STATE(); case 18: - if (lookahead == '*') ADVANCE(17); - if (lookahead != 0) ADVANCE(18); + if (lookahead == '*') ADVANCE(18); + if (lookahead == '/') ADVANCE(200); + if (lookahead != 0) ADVANCE(19); END_STATE(); case 19: - if (lookahead == '-') ADVANCE(21); + if (lookahead == '*') ADVANCE(18); + if (lookahead != 0) ADVANCE(19); END_STATE(); case 20: - if (lookahead == '-') ADVANCE(20); - if (lookahead == '}') ADVANCE(194); - if (lookahead != 0) ADVANCE(21); + if (lookahead == '-') ADVANCE(22); END_STATE(); case 21: - if (lookahead == '-') ADVANCE(20); - if (lookahead != 0) ADVANCE(21); + if (lookahead == '-') ADVANCE(21); + if (lookahead == '}') ADVANCE(200); + if (lookahead != 0) ADVANCE(22); END_STATE(); case 22: - if (lookahead == '-') ADVANCE(57); + if (lookahead == '-') ADVANCE(21); + if (lookahead != 0) ADVANCE(22); END_STATE(); case 23: - if (lookahead == '-') ADVANCE(60); + if (lookahead == '-') ADVANCE(59); END_STATE(); case 24: - if (lookahead == '0') ADVANCE(163); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (lookahead == '-') ADVANCE(62); END_STATE(); case 25: - if (lookahead == ';') ADVANCE(195); + if (lookahead == '0') ADVANCE(167); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); case 26: - if (lookahead == '=') ADVANCE(131); + if (lookahead == ';') ADVANCE(201); END_STATE(); case 27: - if (lookahead == '=') ADVANCE(114); + if (lookahead == '=') ADVANCE(135); END_STATE(); case 28: - if (lookahead == '=') ADVANCE(121); + if (lookahead == '=') ADVANCE(118); END_STATE(); case 29: - if (lookahead == '=') ADVANCE(110); + if (lookahead == '=') ADVANCE(125); END_STATE(); case 30: - if (lookahead == '=') ADVANCE(116); + if (lookahead == '=') ADVANCE(114); END_STATE(); case 31: - if (lookahead == '=') ADVANCE(113); + if (lookahead == '=') ADVANCE(120); END_STATE(); case 32: - if (lookahead == '=') ADVANCE(115); + if (lookahead == '=') ADVANCE(117); END_STATE(); case 33: - if (lookahead == '=') ADVANCE(112); + if (lookahead == '=') ADVANCE(119); END_STATE(); case 34: - if (lookahead == '=') ADVANCE(80); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (lookahead == '=') ADVANCE(116); END_STATE(); case 35: - if (lookahead == '>') ADVANCE(105); + if (lookahead == '=') ADVANCE(82); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 36: - if (lookahead == '>') ADVANCE(136); + if (lookahead == '>') ADVANCE(109); END_STATE(); case 37: - if (lookahead == '>') ADVANCE(135); + if (lookahead == '>') ADVANCE(140); END_STATE(); case 38: - if (lookahead == '`') ADVANCE(173); - if (lookahead != 0) ADVANCE(38); + if (lookahead == '>') ADVANCE(139); END_STATE(); case 39: - if (lookahead == 'a') ADVANCE(50); + if (lookahead == '`') ADVANCE(177); + if (lookahead != 0) ADVANCE(39); END_STATE(); case 40: - if (lookahead == 'a') ADVANCE(96); + if (lookahead == '`') ADVANCE(198); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(40); END_STATE(); case 41: - if (lookahead == 'a') ADVANCE(74); + if (lookahead == 'a') ADVANCE(52); END_STATE(); case 42: - if (lookahead == 'a') ADVANCE(77); + if (lookahead == 'a') ADVANCE(100); END_STATE(); case 43: - if (lookahead == 'c') ADVANCE(56); + if (lookahead == 'a') ADVANCE(76); END_STATE(); case 44: - if (lookahead == 'c') ADVANCE(42); + if (lookahead == 'a') ADVANCE(79); END_STATE(); case 45: - if (lookahead == 'd') ADVANCE(47); + if (lookahead == 'c') ADVANCE(58); END_STATE(); case 46: - if (lookahead == 'd') ADVANCE(52); + if (lookahead == 'c') ADVANCE(44); END_STATE(); case 47: - if (lookahead == 'e') ADVANCE(87); + if (lookahead == 'd') ADVANCE(49); END_STATE(); case 48: - if (lookahead == 'e') ADVANCE(70); + if (lookahead == 'd') ADVANCE(54); END_STATE(); case 49: - if (lookahead == 'f') ADVANCE(53); + if (lookahead == 'e') ADVANCE(91); END_STATE(); case 50: - if (lookahead == 'g') ADVANCE(58); + if (lookahead == 'e') ADVANCE(72); END_STATE(); case 51: - if (lookahead == 'i') ADVANCE(61); - if (lookahead == 'p') ADVANCE(69); + if (lookahead == 'f') ADVANCE(55); END_STATE(); case 52: - if (lookahead == 'i') ADVANCE(49); + if (lookahead == 'g') ADVANCE(60); END_STATE(); case 53: - if (lookahead == 'i') ADVANCE(44); + if (lookahead == 'i') ADVANCE(63); + if (lookahead == 'p') ADVANCE(71); END_STATE(); case 54: - if (lookahead == 'i') ADVANCE(64); + if (lookahead == 'i') ADVANCE(51); END_STATE(); case 55: - if (lookahead == 'i') ADVANCE(67); + if (lookahead == 'i') ADVANCE(46); END_STATE(); case 56: - if (lookahead == 'l') ADVANCE(78); + if (lookahead == 'i') ADVANCE(66); END_STATE(); case 57: - if (lookahead == 'l') ADVANCE(76); + if (lookahead == 'i') ADVANCE(69); END_STATE(); case 58: - if (lookahead == 'm') ADVANCE(40); + if (lookahead == 'l') ADVANCE(80); END_STATE(); case 59: - if (lookahead == 'm') ADVANCE(22); + if (lookahead == 'l') ADVANCE(78); END_STATE(); case 60: - if (lookahead == 'm') ADVANCE(65); + if (lookahead == 'm') ADVANCE(42); END_STATE(); case 61: - if (lookahead == 'n') ADVANCE(43); + if (lookahead == 'm') ADVANCE(23); END_STATE(); case 62: - if (lookahead == 'n') ADVANCE(97); + if (lookahead == 'm') ADVANCE(67); END_STATE(); case 63: - if (lookahead == 'n') ADVANCE(98); + if (lookahead == 'n') ADVANCE(45); END_STATE(); case 64: - if (lookahead == 'o') ADVANCE(62); + if (lookahead == 'n') ADVANCE(101); END_STATE(); case 65: - if (lookahead == 'o') ADVANCE(46); + if (lookahead == 'n') ADVANCE(102); END_STATE(); case 66: - if (lookahead == 'o') ADVANCE(73); + if (lookahead == 'o') ADVANCE(64); END_STATE(); case 67: - if (lookahead == 'o') ADVANCE(63); + if (lookahead == 'o') ADVANCE(48); END_STATE(); case 68: - if (lookahead == 'p') ADVANCE(66); + if (lookahead == 'o') ADVANCE(75); END_STATE(); case 69: - if (lookahead == 'r') ADVANCE(39); + if (lookahead == 'o') ADVANCE(65); END_STATE(); case 70: - if (lookahead == 'r') ADVANCE(72); + if (lookahead == 'p') ADVANCE(68); END_STATE(); case 71: - if (lookahead == 'r') ADVANCE(99); + if (lookahead == 'r') ADVANCE(41); END_STATE(); case 72: - if (lookahead == 's') ADVANCE(54); + if (lookahead == 'r') ADVANCE(74); END_STATE(); case 73: - if (lookahead == 's') ADVANCE(75); + if (lookahead == 'r') ADVANCE(103); END_STATE(); case 74: - if (lookahead == 's') ADVANCE(59); + if (lookahead == 's') ADVANCE(56); END_STATE(); case 75: - if (lookahead == 't') ADVANCE(23); + if (lookahead == 's') ADVANCE(77); END_STATE(); case 76: - if (lookahead == 't') ADVANCE(71); + if (lookahead == 's') ADVANCE(61); END_STATE(); case 77: - if (lookahead == 't') ADVANCE(55); + if (lookahead == 't') ADVANCE(24); END_STATE(); case 78: - if (lookahead == 'u') ADVANCE(45); + if (lookahead == 't') ADVANCE(73); END_STATE(); case 79: - if (lookahead == 'v') ADVANCE(48); + if (lookahead == 't') ADVANCE(57); END_STATE(); case 80: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (lookahead == 'u') ADVANCE(47); END_STATE(); case 81: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (lookahead == 'v') ADVANCE(50); END_STATE(); case 82: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 83: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96); + END_STATE(); + case 84: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(99); + END_STATE(); + case 85: + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(87); + if (lookahead == '$' || + lookahead == '%' || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); + END_STATE(); + case 86: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(167); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(171); END_STATE(); - case 84: + case 87: + if (lookahead == '!' || + lookahead == '$' || + lookahead == '%' || + lookahead == '\'' || + ('0' <= lookahead && lookahead <= ':') || + lookahead == '?' || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); + END_STATE(); + case 88: if (lookahead != 0 && - lookahead != '`') ADVANCE(38); + lookahead != '`') ADVANCE(39); END_STATE(); - case 85: - if (eof) ADVANCE(86); + case 89: + if (eof) ADVANCE(90); ADVANCE_MAP( '"', 11, - '#', 51, - '(', 103, - ')', 104, - ',', 100, - '-', 35, - '/', 15, - ';', 89, - '=', 101, - '[', 160, - ']', 161, - '`', 84, - '{', 106, + '#', 53, + '(', 107, + ')', 108, + ',', 104, + '-', 36, + '/', 16, + ';', 93, + '=', 105, + '[', 164, + ']', 165, + '`', 88, + '{', 110, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(85); + lookahead == ' ') SKIP(89); if (lookahead == '$' || lookahead == '%' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); END_STATE(); - case 86: + case 90: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 87: + case 91: ACCEPT_TOKEN(anon_sym_POUNDinclude); END_STATE(); - case 88: + case 92: ACCEPT_TOKEN(anon_sym_SPACE); - if (lookahead == ' ') ADVANCE(88); + if (lookahead == ' ') ADVANCE(92); END_STATE(); - case 89: + case 93: ACCEPT_TOKEN(anon_sym_SEMI); - if (lookahead == ';') ADVANCE(195); + if (lookahead == ';') ADVANCE(201); END_STATE(); - case 90: + case 94: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); if (lookahead == '\t' || (0x0b <= lookahead && lookahead <= '\r') || lookahead == ' ' || @@ -2582,28 +2717,28 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '[' || lookahead == ']' || lookahead == '^' || - ('{' <= lookahead && lookahead <= '~')) ADVANCE(82); + ('{' <= lookahead && lookahead <= '~')) ADVANCE(84); if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead)) ADVANCE(191); + (lookahead < '\t' || '\r' < lookahead)) ADVANCE(195); END_STATE(); - case 91: + case 95: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); if (lookahead != 0 && - lookahead != '\n') ADVANCE(82); + lookahead != '\n') ADVANCE(84); END_STATE(); - case 92: + case 96: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96); END_STATE(); - case 93: + case 97: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(97); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); - case 94: + case 98: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98); if (lookahead == '\t' || (0x0b <= lookahead && lookahead <= '\r') || lookahead == ' ' || @@ -2614,436 +2749,454 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '[' || lookahead == ']' || lookahead == '^' || - ('{' <= lookahead && lookahead <= '~')) ADVANCE(81); + ('{' <= lookahead && lookahead <= '~')) ADVANCE(83); if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead)) ADVANCE(190); + (lookahead < '\t' || '\r' < lookahead)) ADVANCE(194); END_STATE(); - case 95: + case 99: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(99); if (lookahead != 0 && - lookahead != '\n') ADVANCE(81); + lookahead != '\n') ADVANCE(83); END_STATE(); - case 96: + case 100: ACCEPT_TOKEN(anon_sym_POUNDpragma); END_STATE(); - case 97: + case 101: ACCEPT_TOKEN(anon_sym_not_DASHversion); END_STATE(); - case 98: + case 102: ACCEPT_TOKEN(anon_sym_allow_DASHpost_DASHmodification); END_STATE(); - case 99: + case 103: ACCEPT_TOKEN(anon_sym_compute_DASHasm_DASHltr); END_STATE(); - case 100: + case 104: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 101: + case 105: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); - case 102: + case 106: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(126); + if (lookahead == '=') ADVANCE(130); END_STATE(); - case 103: + case 107: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 104: + case 108: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 105: + case 109: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); - case 106: + case 110: ACCEPT_TOKEN(anon_sym_LBRACE); - if (lookahead == '-') ADVANCE(21); + if (lookahead == '-') ADVANCE(22); END_STATE(); - case 107: + case 111: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 108: + case 112: ACCEPT_TOKEN(anon_sym_PLUS_EQ); END_STATE(); - case 109: + case 113: ACCEPT_TOKEN(anon_sym_DASH_EQ); END_STATE(); - case 110: + case 114: ACCEPT_TOKEN(anon_sym_STAR_EQ); END_STATE(); - case 111: + case 115: ACCEPT_TOKEN(anon_sym_SLASH_EQ); END_STATE(); - case 112: + case 116: ACCEPT_TOKEN(anon_sym_TILDE_SLASH_EQ); END_STATE(); - case 113: + case 117: ACCEPT_TOKEN(anon_sym_CARET_SLASH_EQ); END_STATE(); - case 114: + case 118: ACCEPT_TOKEN(anon_sym_PERCENT_EQ); END_STATE(); - case 115: + case 119: ACCEPT_TOKEN(anon_sym_TILDE_PERCENT_EQ); END_STATE(); - case 116: + case 120: ACCEPT_TOKEN(anon_sym_CARET_PERCENT_EQ); END_STATE(); - case 117: + case 121: ACCEPT_TOKEN(anon_sym_LT_LT_EQ); END_STATE(); - case 118: + case 122: ACCEPT_TOKEN(anon_sym_GT_GT_EQ); END_STATE(); - case 119: + case 123: ACCEPT_TOKEN(anon_sym_TILDE_GT_GT_EQ); END_STATE(); - case 120: + case 124: ACCEPT_TOKEN(anon_sym_CARET_GT_GT_EQ); END_STATE(); - case 121: + case 125: ACCEPT_TOKEN(anon_sym_AMP_EQ); END_STATE(); - case 122: + case 126: ACCEPT_TOKEN(anon_sym_PIPE_EQ); END_STATE(); - case 123: + case 127: ACCEPT_TOKEN(anon_sym_CARET_EQ); END_STATE(); - case 124: + case 128: ACCEPT_TOKEN(anon_sym_QMARK); END_STATE(); - case 125: + case 129: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 126: + case 130: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 127: + case 131: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '<') ADVANCE(133); - if (lookahead == '=') ADVANCE(129); + if (lookahead == '<') ADVANCE(137); + if (lookahead == '=') ADVANCE(133); END_STATE(); - case 128: + case 132: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(130); - if (lookahead == '>') ADVANCE(134); + if (lookahead == '=') ADVANCE(134); + if (lookahead == '>') ADVANCE(138); END_STATE(); - case 129: + case 133: ACCEPT_TOKEN(anon_sym_LT_EQ); - if (lookahead == '>') ADVANCE(132); + if (lookahead == '>') ADVANCE(136); END_STATE(); - case 130: + case 134: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 131: + case 135: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 132: + case 136: ACCEPT_TOKEN(anon_sym_LT_EQ_GT); END_STATE(); - case 133: + case 137: ACCEPT_TOKEN(anon_sym_LT_LT); - if (lookahead == '=') ADVANCE(117); + if (lookahead == '=') ADVANCE(121); END_STATE(); - case 134: + case 138: ACCEPT_TOKEN(anon_sym_GT_GT); - if (lookahead == '=') ADVANCE(118); + if (lookahead == '=') ADVANCE(122); END_STATE(); - case 135: + case 139: ACCEPT_TOKEN(anon_sym_TILDE_GT_GT); - if (lookahead == '=') ADVANCE(119); + if (lookahead == '=') ADVANCE(123); END_STATE(); - case 136: + case 140: ACCEPT_TOKEN(anon_sym_CARET_GT_GT); - if (lookahead == '=') ADVANCE(120); + if (lookahead == '=') ADVANCE(124); END_STATE(); - case 137: + case 141: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '0') ADVANCE(163); - if (lookahead == '=') ADVANCE(109); - if (lookahead == '>') ADVANCE(105); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (lookahead == '0') ADVANCE(167); + if (lookahead == '=') ADVANCE(113); + if (lookahead == '>') ADVANCE(109); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); - case 138: + case 142: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '0') ADVANCE(163); - if (lookahead == '=') ADVANCE(109); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (lookahead == '0') ADVANCE(167); + if (lookahead == '=') ADVANCE(113); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); - case 139: + case 143: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '0') ADVANCE(163); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (lookahead == '0') ADVANCE(167); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); - case 140: + case 144: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '=') ADVANCE(109); + if (lookahead == '=') ADVANCE(113); END_STATE(); - case 141: + case 145: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '=') ADVANCE(109); - if (lookahead == '>') ADVANCE(105); + if (lookahead == '=') ADVANCE(113); + if (lookahead == '>') ADVANCE(109); END_STATE(); - case 142: + case 146: ACCEPT_TOKEN(anon_sym_PLUS); - if (lookahead == '=') ADVANCE(108); + if (lookahead == '=') ADVANCE(112); END_STATE(); - case 143: + case 147: ACCEPT_TOKEN(anon_sym_PIPE); - if (lookahead == '=') ADVANCE(122); + if (lookahead == '=') ADVANCE(126); END_STATE(); - case 144: + case 148: ACCEPT_TOKEN(anon_sym_CARET); - if (lookahead == '%') ADVANCE(153); - if (lookahead == '/') ADVANCE(151); - if (lookahead == '=') ADVANCE(123); - if (lookahead == '>') ADVANCE(36); + if (lookahead == '%') ADVANCE(157); + if (lookahead == '/') ADVANCE(155); + if (lookahead == '=') ADVANCE(127); + if (lookahead == '>') ADVANCE(37); END_STATE(); - case 145: + case 149: ACCEPT_TOKEN(anon_sym_CARET); - if (lookahead == '%') ADVANCE(30); - if (lookahead == '/') ADVANCE(31); - if (lookahead == '=') ADVANCE(123); - if (lookahead == '>') ADVANCE(36); + if (lookahead == '%') ADVANCE(31); + if (lookahead == '/') ADVANCE(32); + if (lookahead == '=') ADVANCE(127); + if (lookahead == '>') ADVANCE(37); END_STATE(); - case 146: + case 150: ACCEPT_TOKEN(anon_sym_STAR); - if (lookahead == '=') ADVANCE(110); + if (lookahead == '=') ADVANCE(114); END_STATE(); - case 147: + case 151: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '%') ADVANCE(154); - if (lookahead == '*') ADVANCE(18); - if (lookahead == '/') ADVANCE(195); - if (lookahead == '=') ADVANCE(111); + if (lookahead == '%') ADVANCE(158); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '/') ADVANCE(201); + if (lookahead == '=') ADVANCE(115); END_STATE(); - case 148: + case 152: ACCEPT_TOKEN(anon_sym_PERCENT); - if (lookahead == '=') ADVANCE(114); + if (lookahead == '=') ADVANCE(118); END_STATE(); - case 149: + case 153: ACCEPT_TOKEN(anon_sym_PERCENT); - if (lookahead == '=') ADVANCE(114); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == '=') ADVANCE(118); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); - case 150: + case 154: ACCEPT_TOKEN(anon_sym_TILDE_SLASH); - if (lookahead == '=') ADVANCE(112); + if (lookahead == '=') ADVANCE(116); END_STATE(); - case 151: + case 155: ACCEPT_TOKEN(anon_sym_CARET_SLASH); - if (lookahead == '=') ADVANCE(113); + if (lookahead == '=') ADVANCE(117); END_STATE(); - case 152: + case 156: ACCEPT_TOKEN(anon_sym_TILDE_PERCENT); - if (lookahead == '=') ADVANCE(115); + if (lookahead == '=') ADVANCE(119); END_STATE(); - case 153: + case 157: ACCEPT_TOKEN(anon_sym_CARET_PERCENT); - if (lookahead == '=') ADVANCE(116); + if (lookahead == '=') ADVANCE(120); END_STATE(); - case 154: + case 158: ACCEPT_TOKEN(anon_sym_SLASH_PERCENT); END_STATE(); - case 155: + case 159: ACCEPT_TOKEN(anon_sym_AMP); - if (lookahead == '=') ADVANCE(121); + if (lookahead == '=') ADVANCE(125); END_STATE(); - case 156: + case 160: ACCEPT_TOKEN(anon_sym_TILDE); END_STATE(); - case 157: + case 161: ACCEPT_TOKEN(anon_sym_TILDE); - if (lookahead == '%') ADVANCE(152); - if (lookahead == '/') ADVANCE(150); - if (lookahead == '>') ADVANCE(37); + if (lookahead == '%') ADVANCE(156); + if (lookahead == '/') ADVANCE(154); + if (lookahead == '>') ADVANCE(38); END_STATE(); - case 158: + case 162: ACCEPT_TOKEN(anon_sym_TILDE); - if (lookahead == '%') ADVANCE(32); - if (lookahead == '/') ADVANCE(33); - if (lookahead == '>') ADVANCE(37); + if (lookahead == '%') ADVANCE(33); + if (lookahead == '/') ADVANCE(34); + if (lookahead == '>') ADVANCE(38); END_STATE(); - case 159: + case 163: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); - case 160: + case 164: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 161: + case 165: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 162: + case 166: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (lookahead == 'x') ADVANCE(192); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(164); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'x') ADVANCE(196); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(168); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); - case 163: + case 167: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (lookahead == 'x') ADVANCE(83); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (lookahead == 'x') ADVANCE(86); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); - case 164: + case 168: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(164); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(168); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); - case 165: + case 169: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(165); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(169); END_STATE(); - case 166: + case 170: ACCEPT_TOKEN(aux_sym_number_literal_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(166); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(170); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); - case 167: + case 171: ACCEPT_TOKEN(aux_sym_number_literal_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(167); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(171); END_STATE(); - case 168: + case 172: ACCEPT_TOKEN(sym_string_literal); END_STATE(); - case 169: + case 173: ACCEPT_TOKEN(sym_string_literal); if (lookahead == 'a' || - lookahead == 's') ADVANCE(172); + lookahead == 's') ADVANCE(176); if (lookahead == 'H' || lookahead == 'c' || lookahead == 'h' || - lookahead == 'u') ADVANCE(171); + lookahead == 'u') ADVANCE(175); END_STATE(); - case 170: + case 174: ACCEPT_TOKEN(sym_string_literal); if (lookahead == 'H' || lookahead == 'c' || lookahead == 'h' || - lookahead == 'u') ADVANCE(171); - END_STATE(); - case 171: - ACCEPT_TOKEN(sym_number_string_literal); - END_STATE(); - case 172: - ACCEPT_TOKEN(sym_slice_string_literal); - END_STATE(); - case 173: - ACCEPT_TOKEN(sym_identifier); - END_STATE(); - case 174: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-') ADVANCE(79); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + lookahead == 'u') ADVANCE(175); END_STATE(); case 175: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-') ADVANCE(68); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + ACCEPT_TOKEN(sym_number_string_literal); END_STATE(); case 176: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-') ADVANCE(41); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + ACCEPT_TOKEN(sym_slice_string_literal); END_STATE(); case 177: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '=') ADVANCE(114); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 178: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(176); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == '-') ADVANCE(81); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 179: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(180); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == '-') ADVANCE(70); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 180: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(184); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == '-') ADVANCE(43); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 181: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'm') ADVANCE(185); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == '=') ADVANCE(118); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 182: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(181); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'e') ADVANCE(180); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 183: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(186); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'l') ADVANCE(184); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 184: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(189); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'l') ADVANCE(188); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 185: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'p') ADVANCE(188); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'm') ADVANCE(189); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 186: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(174); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'o') ADVANCE(185); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 187: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(178); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'o') ADVANCE(190); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 188: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'u') ADVANCE(187); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'o') ADVANCE(193); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 189: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'w') ADVANCE(175); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'p') ADVANCE(192); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 190: ACCEPT_TOKEN(sym_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 't') ADVANCE(178); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 191: ACCEPT_TOKEN(sym_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 't') ADVANCE(182); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 192: ACCEPT_TOKEN(sym_identifier); - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(166); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'u') ADVANCE(191); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 193: ACCEPT_TOKEN(sym_identifier); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + if (lookahead == 'w') ADVANCE(179); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 194: - ACCEPT_TOKEN(sym_comment); + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(97); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); END_STATE(); case 195: + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + END_STATE(); + case 196: + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(170); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + END_STATE(); + case 197: + ACCEPT_TOKEN(sym_identifier); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + END_STATE(); + case 198: + ACCEPT_TOKEN(sym_function_name); + if (lookahead == '`') ADVANCE(198); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(40); + END_STATE(); + case 199: + ACCEPT_TOKEN(sym_function_name); + if (lookahead == '!' || + lookahead == '$' || + lookahead == '%' || + lookahead == '\'' || + ('0' <= lookahead && lookahead <= ':') || + lookahead == '?' || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); + END_STATE(); + case 200: + ACCEPT_TOKEN(sym_comment); + END_STATE(); + case 201: ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && lookahead != '\n' && - lookahead != '\r') ADVANCE(195); + lookahead != '\r') ADVANCE(201); END_STATE(); default: return false; @@ -3457,30 +3610,30 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 85}, + [1] = {.lex_state = 89}, [2] = {.lex_state = 4}, [3] = {.lex_state = 4}, [4] = {.lex_state = 4}, [5] = {.lex_state = 4}, [6] = {.lex_state = 4}, - [7] = {.lex_state = 4}, - [8] = {.lex_state = 4}, - [9] = {.lex_state = 4}, + [7] = {.lex_state = 9}, + [8] = {.lex_state = 9}, + [9] = {.lex_state = 9}, [10] = {.lex_state = 4}, [11] = {.lex_state = 4}, [12] = {.lex_state = 9}, [13] = {.lex_state = 4}, [14] = {.lex_state = 4}, - [15] = {.lex_state = 4}, - [16] = {.lex_state = 9}, - [17] = {.lex_state = 9}, + [15] = {.lex_state = 9}, + [16] = {.lex_state = 4}, + [17] = {.lex_state = 4}, [18] = {.lex_state = 4}, [19] = {.lex_state = 4}, - [20] = {.lex_state = 9}, + [20] = {.lex_state = 4}, [21] = {.lex_state = 4}, [22] = {.lex_state = 4}, [23] = {.lex_state = 4}, - [24] = {.lex_state = 9}, + [24] = {.lex_state = 4}, [25] = {.lex_state = 4}, [26] = {.lex_state = 4}, [27] = {.lex_state = 4}, @@ -3492,8 +3645,8 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [33] = {.lex_state = 4}, [34] = {.lex_state = 4}, [35] = {.lex_state = 4}, - [36] = {.lex_state = 4}, - [37] = {.lex_state = 4}, + [36] = {.lex_state = 5}, + [37] = {.lex_state = 5}, [38] = {.lex_state = 5}, [39] = {.lex_state = 5}, [40] = {.lex_state = 5}, @@ -3502,8 +3655,8 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [43] = {.lex_state = 5}, [44] = {.lex_state = 5}, [45] = {.lex_state = 5}, - [46] = {.lex_state = 5}, - [47] = {.lex_state = 5}, + [46] = {.lex_state = 6}, + [47] = {.lex_state = 6}, [48] = {.lex_state = 6}, [49] = {.lex_state = 6}, [50] = {.lex_state = 6}, @@ -3512,13 +3665,13 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [53] = {.lex_state = 6}, [54] = {.lex_state = 6}, [55] = {.lex_state = 6}, - [56] = {.lex_state = 7}, + [56] = {.lex_state = 6}, [57] = {.lex_state = 6}, - [58] = {.lex_state = 6}, + [58] = {.lex_state = 5}, [59] = {.lex_state = 6}, [60] = {.lex_state = 6}, [61] = {.lex_state = 6}, - [62] = {.lex_state = 6}, + [62] = {.lex_state = 7}, [63] = {.lex_state = 6}, [64] = {.lex_state = 6}, [65] = {.lex_state = 6}, @@ -3528,19 +3681,19 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [69] = {.lex_state = 6}, [70] = {.lex_state = 6}, [71] = {.lex_state = 6}, - [72] = {.lex_state = 6}, + [72] = {.lex_state = 7}, [73] = {.lex_state = 6}, - [74] = {.lex_state = 7}, - [75] = {.lex_state = 6}, - [76] = {.lex_state = 6}, - [77] = {.lex_state = 5}, - [78] = {.lex_state = 6}, - [79] = {.lex_state = 7}, - [80] = {.lex_state = 7}, - [81] = {.lex_state = 6}, + [74] = {.lex_state = 6}, + [75] = {.lex_state = 9}, + [76] = {.lex_state = 9}, + [77] = {.lex_state = 9}, + [78] = {.lex_state = 7}, + [79] = {.lex_state = 9}, + [80] = {.lex_state = 9}, + [81] = {.lex_state = 7}, [82] = {.lex_state = 7}, - [83] = {.lex_state = 7}, - [84] = {.lex_state = 7}, + [83] = {.lex_state = 6}, + [84] = {.lex_state = 6}, [85] = {.lex_state = 7}, [86] = {.lex_state = 7}, [87] = {.lex_state = 7}, @@ -3552,74 +3705,74 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [93] = {.lex_state = 7}, [94] = {.lex_state = 7}, [95] = {.lex_state = 9}, - [96] = {.lex_state = 7}, - [97] = {.lex_state = 6}, - [98] = {.lex_state = 6}, - [99] = {.lex_state = 7}, + [96] = {.lex_state = 9}, + [97] = {.lex_state = 9}, + [98] = {.lex_state = 9}, + [99] = {.lex_state = 9}, [100] = {.lex_state = 9}, [101] = {.lex_state = 9}, [102] = {.lex_state = 9}, [103] = {.lex_state = 9}, [104] = {.lex_state = 9}, - [105] = {.lex_state = 9}, - [106] = {.lex_state = 7}, - [107] = {.lex_state = 5}, - [108] = {.lex_state = 6}, - [109] = {.lex_state = 7}, + [105] = {.lex_state = 7}, + [106] = {.lex_state = 9}, + [107] = {.lex_state = 7}, + [108] = {.lex_state = 9}, + [109] = {.lex_state = 9}, [110] = {.lex_state = 9}, - [111] = {.lex_state = 9}, - [112] = {.lex_state = 6}, - [113] = {.lex_state = 6}, + [111] = {.lex_state = 7}, + [112] = {.lex_state = 9}, + [113] = {.lex_state = 9}, [114] = {.lex_state = 9}, - [115] = {.lex_state = 9}, - [116] = {.lex_state = 9}, - [117] = {.lex_state = 6}, + [115] = {.lex_state = 6}, + [116] = {.lex_state = 5}, + [117] = {.lex_state = 9}, [118] = {.lex_state = 6}, [119] = {.lex_state = 9}, - [120] = {.lex_state = 9}, - [121] = {.lex_state = 9}, + [120] = {.lex_state = 6}, + [121] = {.lex_state = 7}, [122] = {.lex_state = 5}, - [123] = {.lex_state = 9}, + [123] = {.lex_state = 5}, [124] = {.lex_state = 9}, [125] = {.lex_state = 7}, - [126] = {.lex_state = 9}, + [126] = {.lex_state = 5}, [127] = {.lex_state = 9}, - [128] = {.lex_state = 9}, - [129] = {.lex_state = 7}, - [130] = {.lex_state = 9}, - [131] = {.lex_state = 9}, + [128] = {.lex_state = 7}, + [129] = {.lex_state = 9}, + [130] = {.lex_state = 5}, + [131] = {.lex_state = 5}, [132] = {.lex_state = 9}, [133] = {.lex_state = 9}, [134] = {.lex_state = 9}, [135] = {.lex_state = 9}, - [136] = {.lex_state = 5}, - [137] = {.lex_state = 9}, - [138] = {.lex_state = 9}, - [139] = {.lex_state = 5}, - [140] = {.lex_state = 9}, + [136] = {.lex_state = 9}, + [137] = {.lex_state = 8}, + [138] = {.lex_state = 8}, + [139] = {.lex_state = 8}, + [140] = {.lex_state = 8}, [141] = {.lex_state = 9}, - [142] = {.lex_state = 9}, + [142] = {.lex_state = 8}, [143] = {.lex_state = 9}, [144] = {.lex_state = 9}, [145] = {.lex_state = 9}, [146] = {.lex_state = 8}, [147] = {.lex_state = 9}, [148] = {.lex_state = 9}, - [149] = {.lex_state = 8}, - [150] = {.lex_state = 8}, - [151] = {.lex_state = 8}, - [152] = {.lex_state = 8}, - [153] = {.lex_state = 8}, - [154] = {.lex_state = 9}, + [149] = {.lex_state = 9}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 89}, + [154] = {.lex_state = 89}, [155] = {.lex_state = 9}, - [156] = {.lex_state = 85}, + [156] = {.lex_state = 9}, [157] = {.lex_state = 0}, - [158] = {.lex_state = 85}, - [159] = {.lex_state = 0}, - [160] = {.lex_state = 0}, + [158] = {.lex_state = 9}, + [159] = {.lex_state = 9}, + [160] = {.lex_state = 9}, [161] = {.lex_state = 9}, [162] = {.lex_state = 9}, - [163] = {.lex_state = 0}, + [163] = {.lex_state = 9}, [164] = {.lex_state = 9}, [165] = {.lex_state = 9}, [166] = {.lex_state = 9}, @@ -3630,234 +3783,272 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [171] = {.lex_state = 9}, [172] = {.lex_state = 9}, [173] = {.lex_state = 9}, - [174] = {.lex_state = 9}, - [175] = {.lex_state = 9}, - [176] = {.lex_state = 9}, - [177] = {.lex_state = 9}, - [178] = {.lex_state = 9}, - [179] = {.lex_state = 9}, - [180] = {.lex_state = 9}, - [181] = {.lex_state = 85}, - [182] = {.lex_state = 85}, - [183] = {.lex_state = 85}, - [184] = {.lex_state = 85}, - [185] = {.lex_state = 85}, - [186] = {.lex_state = 85}, - [187] = {.lex_state = 85}, - [188] = {.lex_state = 85}, - [189] = {.lex_state = 85}, - [190] = {.lex_state = 85}, - [191] = {.lex_state = 85}, - [192] = {.lex_state = 85}, - [193] = {.lex_state = 85}, - [194] = {.lex_state = 85}, - [195] = {.lex_state = 85}, - [196] = {.lex_state = 0}, - [197] = {.lex_state = 0}, - [198] = {.lex_state = 85}, - [199] = {.lex_state = 85}, - [200] = {.lex_state = 85}, - [201] = {.lex_state = 85}, - [202] = {.lex_state = 85}, - [203] = {.lex_state = 85}, - [204] = {.lex_state = 85}, - [205] = {.lex_state = 85}, - [206] = {.lex_state = 85}, - [207] = {.lex_state = 85}, - [208] = {.lex_state = 85}, - [209] = {.lex_state = 85}, - [210] = {.lex_state = 85}, - [211] = {.lex_state = 85}, - [212] = {.lex_state = 85}, - [213] = {.lex_state = 85}, - [214] = {.lex_state = 85}, - [215] = {.lex_state = 85}, - [216] = {.lex_state = 85}, - [217] = {.lex_state = 85}, - [218] = {.lex_state = 85}, - [219] = {.lex_state = 85}, - [220] = {.lex_state = 85}, - [221] = {.lex_state = 85}, - [222] = {.lex_state = 85}, - [223] = {.lex_state = 85}, - [224] = {.lex_state = 85}, - [225] = {.lex_state = 85}, - [226] = {.lex_state = 85}, - [227] = {.lex_state = 85}, - [228] = {.lex_state = 85}, - [229] = {.lex_state = 85}, - [230] = {.lex_state = 85}, - [231] = {.lex_state = 85}, - [232] = {.lex_state = 85}, - [233] = {.lex_state = 85}, - [234] = {.lex_state = 85}, - [235] = {.lex_state = 85}, - [236] = {.lex_state = 85}, - [237] = {.lex_state = 85}, - [238] = {.lex_state = 85}, - [239] = {.lex_state = 85}, - [240] = {.lex_state = 85}, - [241] = {.lex_state = 85}, - [242] = {.lex_state = 85}, - [243] = {.lex_state = 85}, - [244] = {.lex_state = 85}, - [245] = {.lex_state = 85}, - [246] = {.lex_state = 1}, - [247] = {.lex_state = 85}, - [248] = {.lex_state = 85}, - [249] = {.lex_state = 85}, - [250] = {.lex_state = 85}, - [251] = {.lex_state = 85}, - [252] = {.lex_state = 85}, - [253] = {.lex_state = 85}, - [254] = {.lex_state = 85}, - [255] = {.lex_state = 85}, - [256] = {.lex_state = 85}, - [257] = {.lex_state = 85}, - [258] = {.lex_state = 85}, - [259] = {.lex_state = 3}, - [260] = {.lex_state = 85}, - [261] = {.lex_state = 85}, - [262] = {.lex_state = 85}, - [263] = {.lex_state = 85}, - [264] = {.lex_state = 85}, - [265] = {.lex_state = 85}, - [266] = {.lex_state = 13}, - [267] = {.lex_state = 85}, - [268] = {.lex_state = 13}, - [269] = {.lex_state = 85}, - [270] = {.lex_state = 85}, - [271] = {.lex_state = 85}, - [272] = {.lex_state = 13}, - [273] = {.lex_state = 13}, - [274] = {.lex_state = 85}, - [275] = {.lex_state = 85}, - [276] = {.lex_state = 85}, - [277] = {.lex_state = 85}, - [278] = {.lex_state = 13}, - [279] = {.lex_state = 13}, - [280] = {.lex_state = 85}, - [281] = {.lex_state = 0}, - [282] = {.lex_state = 85}, - [283] = {.lex_state = 0}, - [284] = {.lex_state = 85}, - [285] = {.lex_state = 85}, - [286] = {.lex_state = 85}, - [287] = {.lex_state = 0}, - [288] = {.lex_state = 85}, - [289] = {.lex_state = 85}, - [290] = {.lex_state = 85}, - [291] = {.lex_state = 85}, - [292] = {.lex_state = 85}, - [293] = {.lex_state = 85}, - [294] = {.lex_state = 85}, - [295] = {.lex_state = 0}, - [296] = {.lex_state = 0}, - [297] = {.lex_state = 0}, - [298] = {.lex_state = 0}, - [299] = {.lex_state = 85}, - [300] = {.lex_state = 0}, - [301] = {.lex_state = 85}, - [302] = {.lex_state = 85}, - [303] = {.lex_state = 85}, - [304] = {.lex_state = 0}, - [305] = {.lex_state = 0}, + [174] = {.lex_state = 89}, + [175] = {.lex_state = 0}, + [176] = {.lex_state = 89}, + [177] = {.lex_state = 89}, + [178] = {.lex_state = 89}, + [179] = {.lex_state = 89}, + [180] = {.lex_state = 89}, + [181] = {.lex_state = 89}, + [182] = {.lex_state = 89}, + [183] = {.lex_state = 89}, + [184] = {.lex_state = 89}, + [185] = {.lex_state = 89}, + [186] = {.lex_state = 89}, + [187] = {.lex_state = 89}, + [188] = {.lex_state = 89}, + [189] = {.lex_state = 89}, + [190] = {.lex_state = 89}, + [191] = {.lex_state = 89}, + [192] = {.lex_state = 89}, + [193] = {.lex_state = 89}, + [194] = {.lex_state = 89}, + [195] = {.lex_state = 89}, + [196] = {.lex_state = 89}, + [197] = {.lex_state = 89}, + [198] = {.lex_state = 89}, + [199] = {.lex_state = 89}, + [200] = {.lex_state = 89}, + [201] = {.lex_state = 89}, + [202] = {.lex_state = 89}, + [203] = {.lex_state = 89}, + [204] = {.lex_state = 89}, + [205] = {.lex_state = 89}, + [206] = {.lex_state = 89}, + [207] = {.lex_state = 89}, + [208] = {.lex_state = 89}, + [209] = {.lex_state = 89}, + [210] = {.lex_state = 89}, + [211] = {.lex_state = 89}, + [212] = {.lex_state = 89}, + [213] = {.lex_state = 89}, + [214] = {.lex_state = 89}, + [215] = {.lex_state = 89}, + [216] = {.lex_state = 89}, + [217] = {.lex_state = 89}, + [218] = {.lex_state = 89}, + [219] = {.lex_state = 89}, + [220] = {.lex_state = 89}, + [221] = {.lex_state = 89}, + [222] = {.lex_state = 89}, + [223] = {.lex_state = 89}, + [224] = {.lex_state = 89}, + [225] = {.lex_state = 89}, + [226] = {.lex_state = 89}, + [227] = {.lex_state = 89}, + [228] = {.lex_state = 89}, + [229] = {.lex_state = 89}, + [230] = {.lex_state = 89}, + [231] = {.lex_state = 89}, + [232] = {.lex_state = 89}, + [233] = {.lex_state = 89}, + [234] = {.lex_state = 89}, + [235] = {.lex_state = 89}, + [236] = {.lex_state = 89}, + [237] = {.lex_state = 89}, + [238] = {.lex_state = 89}, + [239] = {.lex_state = 89}, + [240] = {.lex_state = 89}, + [241] = {.lex_state = 89}, + [242] = {.lex_state = 89}, + [243] = {.lex_state = 89}, + [244] = {.lex_state = 89}, + [245] = {.lex_state = 89}, + [246] = {.lex_state = 89}, + [247] = {.lex_state = 1}, + [248] = {.lex_state = 89}, + [249] = {.lex_state = 89}, + [250] = {.lex_state = 89}, + [251] = {.lex_state = 89}, + [252] = {.lex_state = 89}, + [253] = {.lex_state = 89}, + [254] = {.lex_state = 89}, + [255] = {.lex_state = 89}, + [256] = {.lex_state = 89}, + [257] = {.lex_state = 89}, + [258] = {.lex_state = 89}, + [259] = {.lex_state = 89}, + [260] = {.lex_state = 89}, + [261] = {.lex_state = 89}, + [262] = {.lex_state = 89}, + [263] = {.lex_state = 3}, + [264] = {.lex_state = 89}, + [265] = {.lex_state = 89}, + [266] = {.lex_state = 89}, + [267] = {.lex_state = 13}, + [268] = {.lex_state = 89}, + [269] = {.lex_state = 15}, + [270] = {.lex_state = 89}, + [271] = {.lex_state = 15}, + [272] = {.lex_state = 15}, + [273] = {.lex_state = 15}, + [274] = {.lex_state = 13}, + [275] = {.lex_state = 89}, + [276] = {.lex_state = 15}, + [277] = {.lex_state = 13}, + [278] = {.lex_state = 89}, + [279] = {.lex_state = 89}, + [280] = {.lex_state = 15}, + [281] = {.lex_state = 89}, + [282] = {.lex_state = 15}, + [283] = {.lex_state = 15}, + [284] = {.lex_state = 15}, + [285] = {.lex_state = 13}, + [286] = {.lex_state = 89}, + [287] = {.lex_state = 15}, + [288] = {.lex_state = 89}, + [289] = {.lex_state = 89}, + [290] = {.lex_state = 13}, + [291] = {.lex_state = 89}, + [292] = {.lex_state = 89}, + [293] = {.lex_state = 89}, + [294] = {.lex_state = 89}, + [295] = {.lex_state = 89}, + [296] = {.lex_state = 89}, + [297] = {.lex_state = 89}, + [298] = {.lex_state = 89}, + [299] = {.lex_state = 15}, + [300] = {.lex_state = 89}, + [301] = {.lex_state = 89}, + [302] = {.lex_state = 89}, + [303] = {.lex_state = 89}, + [304] = {.lex_state = 89}, + [305] = {.lex_state = 13}, [306] = {.lex_state = 0}, - [307] = {.lex_state = 0}, - [308] = {.lex_state = 0}, - [309] = {.lex_state = 85}, + [307] = {.lex_state = 89}, + [308] = {.lex_state = 89}, + [309] = {.lex_state = 89}, [310] = {.lex_state = 0}, - [311] = {.lex_state = 0}, - [312] = {.lex_state = 85}, - [313] = {.lex_state = 0}, - [314] = {.lex_state = 0}, - [315] = {.lex_state = 85}, - [316] = {.lex_state = 85}, + [311] = {.lex_state = 89}, + [312] = {.lex_state = 89}, + [313] = {.lex_state = 89}, + [314] = {.lex_state = 89}, + [315] = {.lex_state = 0}, + [316] = {.lex_state = 0}, [317] = {.lex_state = 0}, - [318] = {.lex_state = 2}, - [319] = {.lex_state = 13}, - [320] = {.lex_state = 0}, - [321] = {.lex_state = 85}, + [318] = {.lex_state = 0}, + [319] = {.lex_state = 0}, + [320] = {.lex_state = 89}, + [321] = {.lex_state = 0}, [322] = {.lex_state = 0}, [323] = {.lex_state = 0}, [324] = {.lex_state = 0}, - [325] = {.lex_state = 2}, + [325] = {.lex_state = 0}, [326] = {.lex_state = 0}, [327] = {.lex_state = 0}, - [328] = {.lex_state = 0}, - [329] = {.lex_state = 0}, + [328] = {.lex_state = 89}, + [329] = {.lex_state = 89}, [330] = {.lex_state = 0}, [331] = {.lex_state = 0}, [332] = {.lex_state = 0}, [333] = {.lex_state = 0}, - [334] = {.lex_state = 85}, + [334] = {.lex_state = 0}, [335] = {.lex_state = 0}, - [336] = {.lex_state = 0}, - [337] = {.lex_state = 85}, - [338] = {.lex_state = 0}, - [339] = {.lex_state = 0}, - [340] = {.lex_state = 85}, + [336] = {.lex_state = 89}, + [337] = {.lex_state = 0}, + [338] = {.lex_state = 89}, + [339] = {.lex_state = 13}, + [340] = {.lex_state = 89}, [341] = {.lex_state = 0}, [342] = {.lex_state = 0}, - [343] = {.lex_state = 0}, + [343] = {.lex_state = 89}, [344] = {.lex_state = 0}, [345] = {.lex_state = 0}, [346] = {.lex_state = 0}, - [347] = {.lex_state = 0}, + [347] = {.lex_state = 89}, [348] = {.lex_state = 0}, [349] = {.lex_state = 0}, - [350] = {.lex_state = 0}, - [351] = {.lex_state = 0}, + [350] = {.lex_state = 89}, + [351] = {.lex_state = 2}, [352] = {.lex_state = 0}, [353] = {.lex_state = 0}, [354] = {.lex_state = 0}, [355] = {.lex_state = 0}, - [356] = {.lex_state = 85}, - [357] = {.lex_state = 2}, - [358] = {.lex_state = 0}, + [356] = {.lex_state = 0}, + [357] = {.lex_state = 0}, + [358] = {.lex_state = 89}, [359] = {.lex_state = 2}, [360] = {.lex_state = 0}, [361] = {.lex_state = 0}, - [362] = {.lex_state = 0}, + [362] = {.lex_state = 89}, [363] = {.lex_state = 0}, - [364] = {.lex_state = 2}, + [364] = {.lex_state = 0}, [365] = {.lex_state = 0}, [366] = {.lex_state = 0}, - [367] = {.lex_state = 85}, + [367] = {.lex_state = 0}, [368] = {.lex_state = 0}, - [369] = {.lex_state = 0}, + [369] = {.lex_state = 89}, [370] = {.lex_state = 0}, - [371] = {.lex_state = 85}, + [371] = {.lex_state = 0}, [372] = {.lex_state = 0}, [373] = {.lex_state = 0}, [374] = {.lex_state = 0}, [375] = {.lex_state = 0}, [376] = {.lex_state = 0}, [377] = {.lex_state = 0}, - [378] = {.lex_state = 85}, - [379] = {.lex_state = 85}, + [378] = {.lex_state = 0}, + [379] = {.lex_state = 0}, [380] = {.lex_state = 0}, - [381] = {.lex_state = 85}, + [381] = {.lex_state = 0}, [382] = {.lex_state = 0}, [383] = {.lex_state = 0}, - [384] = {.lex_state = 85}, - [385] = {.lex_state = 85}, - [386] = {.lex_state = 85}, - [387] = {.lex_state = 85}, + [384] = {.lex_state = 0}, + [385] = {.lex_state = 0}, + [386] = {.lex_state = 0}, + [387] = {.lex_state = 2}, [388] = {.lex_state = 0}, - [389] = {.lex_state = 85}, - [390] = {.lex_state = 85}, - [391] = {.lex_state = 85}, - [392] = {.lex_state = 0}, - [393] = {.lex_state = 0}, + [389] = {.lex_state = 0}, + [390] = {.lex_state = 0}, + [391] = {.lex_state = 0}, + [392] = {.lex_state = 2}, + [393] = {.lex_state = 89}, [394] = {.lex_state = 0}, - [395] = {.lex_state = 85}, - [396] = {.lex_state = 85}, - [397] = {.lex_state = 0}, + [395] = {.lex_state = 89}, + [396] = {.lex_state = 2}, + [397] = {.lex_state = 89}, [398] = {.lex_state = 0}, [399] = {.lex_state = 0}, - [400] = {.lex_state = 85}, + [400] = {.lex_state = 0}, [401] = {.lex_state = 0}, + [402] = {.lex_state = 0}, + [403] = {.lex_state = 0}, + [404] = {.lex_state = 0}, + [405] = {.lex_state = 0}, + [406] = {.lex_state = 0}, + [407] = {.lex_state = 89}, + [408] = {.lex_state = 0}, + [409] = {.lex_state = 89}, + [410] = {.lex_state = 0}, + [411] = {.lex_state = 89}, + [412] = {.lex_state = 89}, + [413] = {.lex_state = 0}, + [414] = {.lex_state = 0}, + [415] = {.lex_state = 0}, + [416] = {.lex_state = 0}, + [417] = {.lex_state = 89}, + [418] = {.lex_state = 89}, + [419] = {.lex_state = 0}, + [420] = {.lex_state = 0}, + [421] = {.lex_state = 0}, + [422] = {.lex_state = 89}, + [423] = {.lex_state = 0}, + [424] = {.lex_state = 0}, + [425] = {.lex_state = 89}, + [426] = {.lex_state = 15}, + [427] = {.lex_state = 0}, + [428] = {.lex_state = 89}, + [429] = {.lex_state = 89}, + [430] = {.lex_state = 0}, + [431] = {.lex_state = 0}, + [432] = {.lex_state = 15}, + [433] = {.lex_state = 89}, + [434] = {.lex_state = 0}, + [435] = {.lex_state = 0}, + [436] = {.lex_state = 89}, + [437] = {.lex_state = 0}, + [438] = {.lex_state = 0}, + [439] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3960,25 +4151,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(1)] = { - [sym_source_file] = STATE(399), - [sym__top_level_item] = STATE(158), - [sym_import_directive] = STATE(158), - [sym_pragma_directive] = STATE(158), - [sym_global_var_declarations] = STATE(158), - [sym_constant_declarations] = STATE(158), - [sym_function_declaration] = STATE(158), - [sym_type_parameters] = STATE(210), - [sym_empty_statement] = STATE(158), - [sym__type_hint] = STATE(386), - [sym_function_type] = STATE(386), - [sym__atomic_type] = STATE(250), - [sym__parenthesized_type] = STATE(250), - [sym_primitive_type] = STATE(250), - [sym_tensor_type] = STATE(250), - [sym_tuple_type] = STATE(250), - [sym_hole_type] = STATE(250), - [sym_type_identifier] = STATE(250), - [aux_sym_source_file_repeat1] = STATE(158), + [sym_source_file] = STATE(431), + [sym__top_level_item] = STATE(154), + [sym_import_directive] = STATE(154), + [sym_pragma_directive] = STATE(154), + [sym_global_var_declarations] = STATE(154), + [sym_constant_declarations] = STATE(154), + [sym_function_declaration] = STATE(154), + [sym_type_parameters] = STATE(212), + [sym_empty_statement] = STATE(154), + [sym__type_hint] = STATE(426), + [sym_function_type] = STATE(426), + [sym__atomic_type] = STATE(287), + [sym_primitive_type] = STATE(287), + [sym_tensor_type] = STATE(287), + [sym_tuple_type] = STATE(287), + [sym_hole_type] = STATE(287), + [sym_type_identifier] = STATE(287), + [aux_sym_source_file_repeat1] = STATE(154), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [anon_sym_POUNDinclude] = ACTIONS(9), @@ -4150,8 +4340,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(4)] = { - [sym_method_call] = STATE(5), - [aux_sym__expr80_repeat1] = STATE(5), + [sym_method_call] = STATE(6), + [aux_sym__expr80_repeat1] = STATE(6), [sym_identifier] = ACTIONS(45), [anon_sym_SEMI] = ACTIONS(45), [anon_sym_EQ] = ACTIONS(45), @@ -4224,8 +4414,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(5)] = { - [sym_method_call] = STATE(6), - [aux_sym__expr80_repeat1] = STATE(6), + [sym_method_call] = STATE(4), + [aux_sym__expr80_repeat1] = STATE(4), [sym_identifier] = ACTIONS(51), [anon_sym_SEMI] = ACTIONS(51), [anon_sym_EQ] = ACTIONS(51), @@ -4372,2237 +4562,2098 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(7)] = { + [sym__statement] = STATE(9), + [sym_return_statement] = STATE(9), + [sym_block_statement] = STATE(9), + [sym_expression_statement] = STATE(9), + [sym_empty_statement] = STATE(9), + [sym_repeat_statement] = STATE(9), + [sym_if_statement] = STATE(9), + [sym_do_while_statement] = STATE(9), + [sym_while_statement] = STATE(9), + [sym_try_catch_statement] = STATE(9), + [sym__expression] = STATE(437), + [sym__expr10] = STATE(437), + [sym_ternary_condition] = STATE(421), + [sym_ternary_expression] = STATE(175), + [sym__expr13] = STATE(175), + [sym__expr15] = STATE(116), + [sym__expr17] = STATE(157), + [sym__expr20] = STATE(150), + [sym__expr30] = STATE(140), + [sym__expr75] = STATE(107), + [sym__expr80] = STATE(107), + [sym__expr90] = STATE(72), + [sym_function_application] = STATE(72), + [sym_var_declaration] = STATE(73), + [sym_tensor_vars_declaration] = STATE(73), + [sym__multiple_vars_declaration] = STATE(73), + [sym_local_vars_declaration] = STATE(46), + [sym_tuple_vars_declaration] = STATE(73), + [sym__nontype_expr100] = STATE(46), + [sym__expr100] = STATE(72), + [sym_parenthesized_expression] = STATE(46), + [sym_tensor_expression] = STATE(46), + [sym_typed_tuple] = STATE(46), + [sym__type_hint] = STATE(417), + [sym_function_type] = STATE(417), + [sym__atomic_type] = STATE(257), + [sym_primitive_type] = STATE(257), + [sym_tensor_type] = STATE(257), + [sym_tuple_type] = STATE(257), + [sym_hole_type] = STATE(257), + [sym_type_identifier] = STATE(257), + [sym_number_literal] = STATE(46), + [aux_sym_block_statement_repeat1] = STATE(9), [sym_identifier] = ACTIONS(65), - [anon_sym_SEMI] = ACTIONS(65), - [anon_sym_EQ] = ACTIONS(65), - [anon_sym_LPAREN] = ACTIONS(67), - [anon_sym_DASH_GT] = ACTIONS(69), - [anon_sym_return] = ACTIONS(65), - [anon_sym_LBRACE] = ACTIONS(65), - [anon_sym_RBRACE] = ACTIONS(67), - [anon_sym_repeat] = ACTIONS(65), - [anon_sym_if] = ACTIONS(65), - [anon_sym_ifnot] = ACTIONS(65), - [anon_sym_do] = ACTIONS(65), - [anon_sym_while] = ACTIONS(65), - [anon_sym_try] = ACTIONS(65), - [anon_sym_PLUS_EQ] = ACTIONS(67), - [anon_sym_DASH_EQ] = ACTIONS(67), - [anon_sym_STAR_EQ] = ACTIONS(67), - [anon_sym_SLASH_EQ] = ACTIONS(67), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(67), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(67), - [anon_sym_PERCENT_EQ] = ACTIONS(67), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(67), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(67), - [anon_sym_LT_LT_EQ] = ACTIONS(67), - [anon_sym_GT_GT_EQ] = ACTIONS(67), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(67), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(67), - [anon_sym_AMP_EQ] = ACTIONS(67), - [anon_sym_PIPE_EQ] = ACTIONS(67), - [anon_sym_CARET_EQ] = ACTIONS(67), - [anon_sym_QMARK] = ACTIONS(67), - [anon_sym_EQ_EQ] = ACTIONS(67), - [anon_sym_LT] = ACTIONS(65), - [anon_sym_GT] = ACTIONS(65), - [anon_sym_LT_EQ] = ACTIONS(65), - [anon_sym_GT_EQ] = ACTIONS(67), - [anon_sym_BANG_EQ] = ACTIONS(67), - [anon_sym_LT_EQ_GT] = ACTIONS(67), - [anon_sym_LT_LT] = ACTIONS(65), - [anon_sym_GT_GT] = ACTIONS(65), - [anon_sym_TILDE_GT_GT] = ACTIONS(65), - [anon_sym_CARET_GT_GT] = ACTIONS(65), - [anon_sym_DASH] = ACTIONS(65), - [anon_sym_PLUS] = ACTIONS(65), - [anon_sym_PIPE] = ACTIONS(65), - [anon_sym_CARET] = ACTIONS(65), - [anon_sym_STAR] = ACTIONS(65), - [anon_sym_SLASH] = ACTIONS(65), - [anon_sym_PERCENT] = ACTIONS(65), - [anon_sym_TILDE_SLASH] = ACTIONS(65), - [anon_sym_CARET_SLASH] = ACTIONS(65), - [anon_sym_TILDE_PERCENT] = ACTIONS(65), - [anon_sym_CARET_PERCENT] = ACTIONS(65), - [anon_sym_SLASH_PERCENT] = ACTIONS(67), - [anon_sym_AMP] = ACTIONS(65), - [anon_sym_TILDE] = ACTIONS(65), - [anon_sym_DOT] = ACTIONS(67), - [anon_sym_LBRACK] = ACTIONS(67), - [anon_sym_int] = ACTIONS(65), - [anon_sym_cell] = ACTIONS(65), - [anon_sym_slice] = ACTIONS(65), - [anon_sym_builder] = ACTIONS(65), - [anon_sym_cont] = ACTIONS(65), - [anon_sym_tuple] = ACTIONS(65), - [sym_var_type] = ACTIONS(65), - [aux_sym_number_literal_token1] = ACTIONS(65), - [sym_string_literal] = ACTIONS(65), - [sym_number_string_literal] = ACTIONS(67), - [sym_slice_string_literal] = ACTIONS(67), - [sym_underscore] = ACTIONS(65), + [anon_sym_SEMI] = ACTIONS(67), + [anon_sym_LPAREN] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_RBRACE] = ACTIONS(75), + [anon_sym_repeat] = ACTIONS(77), + [anon_sym_if] = ACTIONS(79), + [anon_sym_ifnot] = ACTIONS(79), + [anon_sym_do] = ACTIONS(81), + [anon_sym_while] = ACTIONS(83), + [anon_sym_try] = ACTIONS(85), + [anon_sym_DASH] = ACTIONS(87), + [anon_sym_TILDE] = ACTIONS(89), + [anon_sym_LBRACK] = ACTIONS(91), + [anon_sym_int] = ACTIONS(93), + [anon_sym_cell] = ACTIONS(93), + [anon_sym_slice] = ACTIONS(93), + [anon_sym_builder] = ACTIONS(93), + [anon_sym_cont] = ACTIONS(93), + [anon_sym_tuple] = ACTIONS(93), + [sym_var_type] = ACTIONS(95), + [aux_sym_number_literal_token1] = ACTIONS(97), + [sym_string_literal] = ACTIONS(99), + [sym_number_string_literal] = ACTIONS(101), + [sym_slice_string_literal] = ACTIONS(103), + [sym_underscore] = ACTIONS(105), [sym_comment] = ACTIONS(3), }, [STATE(8)] = { - [sym_identifier] = ACTIONS(65), - [anon_sym_SEMI] = ACTIONS(65), - [anon_sym_EQ] = ACTIONS(65), - [anon_sym_LPAREN] = ACTIONS(67), - [anon_sym_DASH_GT] = ACTIONS(71), - [anon_sym_return] = ACTIONS(65), - [anon_sym_LBRACE] = ACTIONS(65), - [anon_sym_RBRACE] = ACTIONS(67), - [anon_sym_repeat] = ACTIONS(65), - [anon_sym_if] = ACTIONS(65), - [anon_sym_ifnot] = ACTIONS(65), - [anon_sym_do] = ACTIONS(65), - [anon_sym_while] = ACTIONS(65), - [anon_sym_try] = ACTIONS(65), - [anon_sym_PLUS_EQ] = ACTIONS(67), - [anon_sym_DASH_EQ] = ACTIONS(67), - [anon_sym_STAR_EQ] = ACTIONS(67), - [anon_sym_SLASH_EQ] = ACTIONS(67), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(67), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(67), - [anon_sym_PERCENT_EQ] = ACTIONS(67), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(67), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(67), - [anon_sym_LT_LT_EQ] = ACTIONS(67), - [anon_sym_GT_GT_EQ] = ACTIONS(67), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(67), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(67), - [anon_sym_AMP_EQ] = ACTIONS(67), - [anon_sym_PIPE_EQ] = ACTIONS(67), - [anon_sym_CARET_EQ] = ACTIONS(67), - [anon_sym_QMARK] = ACTIONS(67), - [anon_sym_EQ_EQ] = ACTIONS(67), - [anon_sym_LT] = ACTIONS(65), - [anon_sym_GT] = ACTIONS(65), - [anon_sym_LT_EQ] = ACTIONS(65), - [anon_sym_GT_EQ] = ACTIONS(67), - [anon_sym_BANG_EQ] = ACTIONS(67), - [anon_sym_LT_EQ_GT] = ACTIONS(67), - [anon_sym_LT_LT] = ACTIONS(65), - [anon_sym_GT_GT] = ACTIONS(65), - [anon_sym_TILDE_GT_GT] = ACTIONS(65), - [anon_sym_CARET_GT_GT] = ACTIONS(65), - [anon_sym_DASH] = ACTIONS(65), - [anon_sym_PLUS] = ACTIONS(65), - [anon_sym_PIPE] = ACTIONS(65), - [anon_sym_CARET] = ACTIONS(65), - [anon_sym_STAR] = ACTIONS(65), - [anon_sym_SLASH] = ACTIONS(65), - [anon_sym_PERCENT] = ACTIONS(65), - [anon_sym_TILDE_SLASH] = ACTIONS(65), - [anon_sym_CARET_SLASH] = ACTIONS(65), - [anon_sym_TILDE_PERCENT] = ACTIONS(65), - [anon_sym_CARET_PERCENT] = ACTIONS(65), - [anon_sym_SLASH_PERCENT] = ACTIONS(67), - [anon_sym_AMP] = ACTIONS(65), - [anon_sym_TILDE] = ACTIONS(65), - [anon_sym_DOT] = ACTIONS(67), - [anon_sym_LBRACK] = ACTIONS(67), - [anon_sym_int] = ACTIONS(65), - [anon_sym_cell] = ACTIONS(65), - [anon_sym_slice] = ACTIONS(65), - [anon_sym_builder] = ACTIONS(65), - [anon_sym_cont] = ACTIONS(65), - [anon_sym_tuple] = ACTIONS(65), - [sym_var_type] = ACTIONS(65), - [aux_sym_number_literal_token1] = ACTIONS(65), - [sym_string_literal] = ACTIONS(65), - [sym_number_string_literal] = ACTIONS(67), - [sym_slice_string_literal] = ACTIONS(67), - [sym_underscore] = ACTIONS(65), + [sym__statement] = STATE(8), + [sym_return_statement] = STATE(8), + [sym_block_statement] = STATE(8), + [sym_expression_statement] = STATE(8), + [sym_empty_statement] = STATE(8), + [sym_repeat_statement] = STATE(8), + [sym_if_statement] = STATE(8), + [sym_do_while_statement] = STATE(8), + [sym_while_statement] = STATE(8), + [sym_try_catch_statement] = STATE(8), + [sym__expression] = STATE(437), + [sym__expr10] = STATE(437), + [sym_ternary_condition] = STATE(421), + [sym_ternary_expression] = STATE(175), + [sym__expr13] = STATE(175), + [sym__expr15] = STATE(116), + [sym__expr17] = STATE(157), + [sym__expr20] = STATE(150), + [sym__expr30] = STATE(140), + [sym__expr75] = STATE(107), + [sym__expr80] = STATE(107), + [sym__expr90] = STATE(72), + [sym_function_application] = STATE(72), + [sym_var_declaration] = STATE(73), + [sym_tensor_vars_declaration] = STATE(73), + [sym__multiple_vars_declaration] = STATE(73), + [sym_local_vars_declaration] = STATE(46), + [sym_tuple_vars_declaration] = STATE(73), + [sym__nontype_expr100] = STATE(46), + [sym__expr100] = STATE(72), + [sym_parenthesized_expression] = STATE(46), + [sym_tensor_expression] = STATE(46), + [sym_typed_tuple] = STATE(46), + [sym__type_hint] = STATE(417), + [sym_function_type] = STATE(417), + [sym__atomic_type] = STATE(257), + [sym_primitive_type] = STATE(257), + [sym_tensor_type] = STATE(257), + [sym_tuple_type] = STATE(257), + [sym_hole_type] = STATE(257), + [sym_type_identifier] = STATE(257), + [sym_number_literal] = STATE(46), + [aux_sym_block_statement_repeat1] = STATE(8), + [sym_identifier] = ACTIONS(107), + [anon_sym_SEMI] = ACTIONS(110), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_return] = ACTIONS(116), + [anon_sym_LBRACE] = ACTIONS(119), + [anon_sym_RBRACE] = ACTIONS(122), + [anon_sym_repeat] = ACTIONS(124), + [anon_sym_if] = ACTIONS(127), + [anon_sym_ifnot] = ACTIONS(127), + [anon_sym_do] = ACTIONS(130), + [anon_sym_while] = ACTIONS(133), + [anon_sym_try] = ACTIONS(136), + [anon_sym_DASH] = ACTIONS(139), + [anon_sym_TILDE] = ACTIONS(142), + [anon_sym_LBRACK] = ACTIONS(145), + [anon_sym_int] = ACTIONS(148), + [anon_sym_cell] = ACTIONS(148), + [anon_sym_slice] = ACTIONS(148), + [anon_sym_builder] = ACTIONS(148), + [anon_sym_cont] = ACTIONS(148), + [anon_sym_tuple] = ACTIONS(148), + [sym_var_type] = ACTIONS(151), + [aux_sym_number_literal_token1] = ACTIONS(154), + [sym_string_literal] = ACTIONS(157), + [sym_number_string_literal] = ACTIONS(160), + [sym_slice_string_literal] = ACTIONS(163), + [sym_underscore] = ACTIONS(166), [sym_comment] = ACTIONS(3), }, [STATE(9)] = { - [sym_identifier] = ACTIONS(73), - [anon_sym_SEMI] = ACTIONS(76), - [anon_sym_EQ] = ACTIONS(76), - [anon_sym_LPAREN] = ACTIONS(78), - [anon_sym_DASH_GT] = ACTIONS(80), - [anon_sym_return] = ACTIONS(76), - [anon_sym_LBRACE] = ACTIONS(76), - [anon_sym_RBRACE] = ACTIONS(78), - [anon_sym_repeat] = ACTIONS(76), - [anon_sym_if] = ACTIONS(76), - [anon_sym_ifnot] = ACTIONS(76), - [anon_sym_do] = ACTIONS(76), - [anon_sym_while] = ACTIONS(76), - [anon_sym_try] = ACTIONS(76), - [anon_sym_PLUS_EQ] = ACTIONS(78), - [anon_sym_DASH_EQ] = ACTIONS(78), - [anon_sym_STAR_EQ] = ACTIONS(78), - [anon_sym_SLASH_EQ] = ACTIONS(78), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(78), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(78), - [anon_sym_PERCENT_EQ] = ACTIONS(78), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(78), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(78), - [anon_sym_LT_LT_EQ] = ACTIONS(78), - [anon_sym_GT_GT_EQ] = ACTIONS(78), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(78), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(78), - [anon_sym_AMP_EQ] = ACTIONS(78), - [anon_sym_PIPE_EQ] = ACTIONS(78), - [anon_sym_CARET_EQ] = ACTIONS(78), - [anon_sym_QMARK] = ACTIONS(78), - [anon_sym_EQ_EQ] = ACTIONS(78), - [anon_sym_LT] = ACTIONS(76), - [anon_sym_GT] = ACTIONS(76), - [anon_sym_LT_EQ] = ACTIONS(76), - [anon_sym_GT_EQ] = ACTIONS(78), - [anon_sym_BANG_EQ] = ACTIONS(78), - [anon_sym_LT_EQ_GT] = ACTIONS(78), - [anon_sym_LT_LT] = ACTIONS(76), - [anon_sym_GT_GT] = ACTIONS(76), - [anon_sym_TILDE_GT_GT] = ACTIONS(76), - [anon_sym_CARET_GT_GT] = ACTIONS(76), - [anon_sym_DASH] = ACTIONS(76), - [anon_sym_PLUS] = ACTIONS(76), - [anon_sym_PIPE] = ACTIONS(76), - [anon_sym_CARET] = ACTIONS(76), - [anon_sym_STAR] = ACTIONS(76), - [anon_sym_SLASH] = ACTIONS(76), - [anon_sym_PERCENT] = ACTIONS(76), - [anon_sym_TILDE_SLASH] = ACTIONS(76), - [anon_sym_CARET_SLASH] = ACTIONS(76), - [anon_sym_TILDE_PERCENT] = ACTIONS(76), - [anon_sym_CARET_PERCENT] = ACTIONS(76), - [anon_sym_SLASH_PERCENT] = ACTIONS(78), - [anon_sym_AMP] = ACTIONS(76), - [anon_sym_TILDE] = ACTIONS(76), - [anon_sym_DOT] = ACTIONS(78), - [anon_sym_LBRACK] = ACTIONS(78), - [anon_sym_int] = ACTIONS(76), - [anon_sym_cell] = ACTIONS(76), - [anon_sym_slice] = ACTIONS(76), - [anon_sym_builder] = ACTIONS(76), - [anon_sym_cont] = ACTIONS(76), - [anon_sym_tuple] = ACTIONS(76), - [sym_var_type] = ACTIONS(76), - [aux_sym_number_literal_token1] = ACTIONS(76), - [sym_string_literal] = ACTIONS(76), - [sym_number_string_literal] = ACTIONS(78), - [sym_slice_string_literal] = ACTIONS(78), - [sym_underscore] = ACTIONS(76), + [sym__statement] = STATE(8), + [sym_return_statement] = STATE(8), + [sym_block_statement] = STATE(8), + [sym_expression_statement] = STATE(8), + [sym_empty_statement] = STATE(8), + [sym_repeat_statement] = STATE(8), + [sym_if_statement] = STATE(8), + [sym_do_while_statement] = STATE(8), + [sym_while_statement] = STATE(8), + [sym_try_catch_statement] = STATE(8), + [sym__expression] = STATE(437), + [sym__expr10] = STATE(437), + [sym_ternary_condition] = STATE(421), + [sym_ternary_expression] = STATE(175), + [sym__expr13] = STATE(175), + [sym__expr15] = STATE(116), + [sym__expr17] = STATE(157), + [sym__expr20] = STATE(150), + [sym__expr30] = STATE(140), + [sym__expr75] = STATE(107), + [sym__expr80] = STATE(107), + [sym__expr90] = STATE(72), + [sym_function_application] = STATE(72), + [sym_var_declaration] = STATE(73), + [sym_tensor_vars_declaration] = STATE(73), + [sym__multiple_vars_declaration] = STATE(73), + [sym_local_vars_declaration] = STATE(46), + [sym_tuple_vars_declaration] = STATE(73), + [sym__nontype_expr100] = STATE(46), + [sym__expr100] = STATE(72), + [sym_parenthesized_expression] = STATE(46), + [sym_tensor_expression] = STATE(46), + [sym_typed_tuple] = STATE(46), + [sym__type_hint] = STATE(417), + [sym_function_type] = STATE(417), + [sym__atomic_type] = STATE(257), + [sym_primitive_type] = STATE(257), + [sym_tensor_type] = STATE(257), + [sym_tuple_type] = STATE(257), + [sym_hole_type] = STATE(257), + [sym_type_identifier] = STATE(257), + [sym_number_literal] = STATE(46), + [aux_sym_block_statement_repeat1] = STATE(8), + [sym_identifier] = ACTIONS(65), + [anon_sym_SEMI] = ACTIONS(67), + [anon_sym_LPAREN] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_RBRACE] = ACTIONS(169), + [anon_sym_repeat] = ACTIONS(77), + [anon_sym_if] = ACTIONS(79), + [anon_sym_ifnot] = ACTIONS(79), + [anon_sym_do] = ACTIONS(81), + [anon_sym_while] = ACTIONS(83), + [anon_sym_try] = ACTIONS(85), + [anon_sym_DASH] = ACTIONS(87), + [anon_sym_TILDE] = ACTIONS(89), + [anon_sym_LBRACK] = ACTIONS(91), + [anon_sym_int] = ACTIONS(93), + [anon_sym_cell] = ACTIONS(93), + [anon_sym_slice] = ACTIONS(93), + [anon_sym_builder] = ACTIONS(93), + [anon_sym_cont] = ACTIONS(93), + [anon_sym_tuple] = ACTIONS(93), + [sym_var_type] = ACTIONS(95), + [aux_sym_number_literal_token1] = ACTIONS(97), + [sym_string_literal] = ACTIONS(99), + [sym_number_string_literal] = ACTIONS(101), + [sym_slice_string_literal] = ACTIONS(103), + [sym_underscore] = ACTIONS(105), [sym_comment] = ACTIONS(3), }, [STATE(10)] = { - [sym_identifier] = ACTIONS(82), - [anon_sym_SEMI] = ACTIONS(85), - [anon_sym_EQ] = ACTIONS(85), - [anon_sym_LPAREN] = ACTIONS(87), - [anon_sym_DASH_GT] = ACTIONS(89), - [anon_sym_return] = ACTIONS(85), - [anon_sym_LBRACE] = ACTIONS(85), - [anon_sym_RBRACE] = ACTIONS(87), - [anon_sym_repeat] = ACTIONS(85), - [anon_sym_if] = ACTIONS(85), - [anon_sym_ifnot] = ACTIONS(85), - [anon_sym_do] = ACTIONS(85), - [anon_sym_while] = ACTIONS(85), - [anon_sym_try] = ACTIONS(85), - [anon_sym_PLUS_EQ] = ACTIONS(87), - [anon_sym_DASH_EQ] = ACTIONS(87), - [anon_sym_STAR_EQ] = ACTIONS(87), - [anon_sym_SLASH_EQ] = ACTIONS(87), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(87), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(87), - [anon_sym_PERCENT_EQ] = ACTIONS(87), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(87), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(87), - [anon_sym_LT_LT_EQ] = ACTIONS(87), - [anon_sym_GT_GT_EQ] = ACTIONS(87), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(87), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(87), - [anon_sym_AMP_EQ] = ACTIONS(87), - [anon_sym_PIPE_EQ] = ACTIONS(87), - [anon_sym_CARET_EQ] = ACTIONS(87), - [anon_sym_QMARK] = ACTIONS(87), - [anon_sym_EQ_EQ] = ACTIONS(87), - [anon_sym_LT] = ACTIONS(85), - [anon_sym_GT] = ACTIONS(85), - [anon_sym_LT_EQ] = ACTIONS(85), - [anon_sym_GT_EQ] = ACTIONS(87), - [anon_sym_BANG_EQ] = ACTIONS(87), - [anon_sym_LT_EQ_GT] = ACTIONS(87), - [anon_sym_LT_LT] = ACTIONS(85), - [anon_sym_GT_GT] = ACTIONS(85), - [anon_sym_TILDE_GT_GT] = ACTIONS(85), - [anon_sym_CARET_GT_GT] = ACTIONS(85), - [anon_sym_DASH] = ACTIONS(85), - [anon_sym_PLUS] = ACTIONS(85), - [anon_sym_PIPE] = ACTIONS(85), - [anon_sym_CARET] = ACTIONS(85), - [anon_sym_STAR] = ACTIONS(85), - [anon_sym_SLASH] = ACTIONS(85), - [anon_sym_PERCENT] = ACTIONS(85), - [anon_sym_TILDE_SLASH] = ACTIONS(85), - [anon_sym_CARET_SLASH] = ACTIONS(85), - [anon_sym_TILDE_PERCENT] = ACTIONS(85), - [anon_sym_CARET_PERCENT] = ACTIONS(85), - [anon_sym_SLASH_PERCENT] = ACTIONS(87), - [anon_sym_AMP] = ACTIONS(85), - [anon_sym_TILDE] = ACTIONS(85), - [anon_sym_DOT] = ACTIONS(87), - [anon_sym_LBRACK] = ACTIONS(87), - [anon_sym_int] = ACTIONS(85), - [anon_sym_cell] = ACTIONS(85), - [anon_sym_slice] = ACTIONS(85), - [anon_sym_builder] = ACTIONS(85), - [anon_sym_cont] = ACTIONS(85), - [anon_sym_tuple] = ACTIONS(85), - [sym_var_type] = ACTIONS(85), - [aux_sym_number_literal_token1] = ACTIONS(85), - [sym_string_literal] = ACTIONS(85), - [sym_number_string_literal] = ACTIONS(87), - [sym_slice_string_literal] = ACTIONS(87), - [sym_underscore] = ACTIONS(85), + [sym_identifier] = ACTIONS(171), + [anon_sym_SEMI] = ACTIONS(171), + [anon_sym_EQ] = ACTIONS(171), + [anon_sym_LPAREN] = ACTIONS(173), + [anon_sym_DASH_GT] = ACTIONS(175), + [anon_sym_return] = ACTIONS(171), + [anon_sym_LBRACE] = ACTIONS(171), + [anon_sym_RBRACE] = ACTIONS(173), + [anon_sym_repeat] = ACTIONS(171), + [anon_sym_if] = ACTIONS(171), + [anon_sym_ifnot] = ACTIONS(171), + [anon_sym_do] = ACTIONS(171), + [anon_sym_while] = ACTIONS(171), + [anon_sym_try] = ACTIONS(171), + [anon_sym_PLUS_EQ] = ACTIONS(173), + [anon_sym_DASH_EQ] = ACTIONS(173), + [anon_sym_STAR_EQ] = ACTIONS(173), + [anon_sym_SLASH_EQ] = ACTIONS(173), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(173), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(173), + [anon_sym_PERCENT_EQ] = ACTIONS(173), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(173), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(173), + [anon_sym_LT_LT_EQ] = ACTIONS(173), + [anon_sym_GT_GT_EQ] = ACTIONS(173), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(173), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(173), + [anon_sym_AMP_EQ] = ACTIONS(173), + [anon_sym_PIPE_EQ] = ACTIONS(173), + [anon_sym_CARET_EQ] = ACTIONS(173), + [anon_sym_QMARK] = ACTIONS(173), + [anon_sym_EQ_EQ] = ACTIONS(173), + [anon_sym_LT] = ACTIONS(171), + [anon_sym_GT] = ACTIONS(171), + [anon_sym_LT_EQ] = ACTIONS(171), + [anon_sym_GT_EQ] = ACTIONS(173), + [anon_sym_BANG_EQ] = ACTIONS(173), + [anon_sym_LT_EQ_GT] = ACTIONS(173), + [anon_sym_LT_LT] = ACTIONS(171), + [anon_sym_GT_GT] = ACTIONS(171), + [anon_sym_TILDE_GT_GT] = ACTIONS(171), + [anon_sym_CARET_GT_GT] = ACTIONS(171), + [anon_sym_DASH] = ACTIONS(171), + [anon_sym_PLUS] = ACTIONS(171), + [anon_sym_PIPE] = ACTIONS(171), + [anon_sym_CARET] = ACTIONS(171), + [anon_sym_STAR] = ACTIONS(171), + [anon_sym_SLASH] = ACTIONS(171), + [anon_sym_PERCENT] = ACTIONS(171), + [anon_sym_TILDE_SLASH] = ACTIONS(171), + [anon_sym_CARET_SLASH] = ACTIONS(171), + [anon_sym_TILDE_PERCENT] = ACTIONS(171), + [anon_sym_CARET_PERCENT] = ACTIONS(171), + [anon_sym_SLASH_PERCENT] = ACTIONS(173), + [anon_sym_AMP] = ACTIONS(171), + [anon_sym_TILDE] = ACTIONS(171), + [anon_sym_DOT] = ACTIONS(173), + [anon_sym_LBRACK] = ACTIONS(173), + [anon_sym_int] = ACTIONS(171), + [anon_sym_cell] = ACTIONS(171), + [anon_sym_slice] = ACTIONS(171), + [anon_sym_builder] = ACTIONS(171), + [anon_sym_cont] = ACTIONS(171), + [anon_sym_tuple] = ACTIONS(171), + [sym_var_type] = ACTIONS(171), + [aux_sym_number_literal_token1] = ACTIONS(171), + [sym_string_literal] = ACTIONS(171), + [sym_number_string_literal] = ACTIONS(173), + [sym_slice_string_literal] = ACTIONS(173), + [sym_underscore] = ACTIONS(171), [sym_comment] = ACTIONS(3), }, [STATE(11)] = { - [sym_identifier] = ACTIONS(91), - [anon_sym_SEMI] = ACTIONS(91), - [anon_sym_EQ] = ACTIONS(91), - [anon_sym_LPAREN] = ACTIONS(93), - [anon_sym_return] = ACTIONS(91), - [anon_sym_LBRACE] = ACTIONS(91), - [anon_sym_RBRACE] = ACTIONS(93), - [anon_sym_repeat] = ACTIONS(91), - [anon_sym_if] = ACTIONS(91), - [anon_sym_ifnot] = ACTIONS(91), - [anon_sym_do] = ACTIONS(91), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(91), - [anon_sym_PLUS_EQ] = ACTIONS(93), - [anon_sym_DASH_EQ] = ACTIONS(93), - [anon_sym_STAR_EQ] = ACTIONS(93), - [anon_sym_SLASH_EQ] = ACTIONS(93), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(93), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(93), - [anon_sym_PERCENT_EQ] = ACTIONS(93), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(93), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(93), - [anon_sym_LT_LT_EQ] = ACTIONS(93), - [anon_sym_GT_GT_EQ] = ACTIONS(93), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(93), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(93), - [anon_sym_AMP_EQ] = ACTIONS(93), - [anon_sym_PIPE_EQ] = ACTIONS(93), - [anon_sym_CARET_EQ] = ACTIONS(93), - [anon_sym_QMARK] = ACTIONS(93), - [anon_sym_EQ_EQ] = ACTIONS(93), - [anon_sym_LT] = ACTIONS(91), - [anon_sym_GT] = ACTIONS(91), - [anon_sym_LT_EQ] = ACTIONS(91), - [anon_sym_GT_EQ] = ACTIONS(93), - [anon_sym_BANG_EQ] = ACTIONS(93), - [anon_sym_LT_EQ_GT] = ACTIONS(93), - [anon_sym_LT_LT] = ACTIONS(91), - [anon_sym_GT_GT] = ACTIONS(91), - [anon_sym_TILDE_GT_GT] = ACTIONS(91), - [anon_sym_CARET_GT_GT] = ACTIONS(91), - [anon_sym_DASH] = ACTIONS(91), - [anon_sym_PLUS] = ACTIONS(91), - [anon_sym_PIPE] = ACTIONS(91), - [anon_sym_CARET] = ACTIONS(91), - [anon_sym_STAR] = ACTIONS(91), - [anon_sym_SLASH] = ACTIONS(91), - [anon_sym_PERCENT] = ACTIONS(91), - [anon_sym_TILDE_SLASH] = ACTIONS(91), - [anon_sym_CARET_SLASH] = ACTIONS(91), - [anon_sym_TILDE_PERCENT] = ACTIONS(91), - [anon_sym_CARET_PERCENT] = ACTIONS(91), - [anon_sym_SLASH_PERCENT] = ACTIONS(93), - [anon_sym_AMP] = ACTIONS(91), - [anon_sym_TILDE] = ACTIONS(91), - [anon_sym_DOT] = ACTIONS(93), - [anon_sym_LBRACK] = ACTIONS(93), - [anon_sym_int] = ACTIONS(91), - [anon_sym_cell] = ACTIONS(91), - [anon_sym_slice] = ACTIONS(91), - [anon_sym_builder] = ACTIONS(91), - [anon_sym_cont] = ACTIONS(91), - [anon_sym_tuple] = ACTIONS(91), - [sym_var_type] = ACTIONS(91), - [aux_sym_number_literal_token1] = ACTIONS(91), - [sym_string_literal] = ACTIONS(91), - [sym_number_string_literal] = ACTIONS(93), - [sym_slice_string_literal] = ACTIONS(93), - [sym_underscore] = ACTIONS(91), + [sym_identifier] = ACTIONS(171), + [anon_sym_SEMI] = ACTIONS(171), + [anon_sym_EQ] = ACTIONS(171), + [anon_sym_LPAREN] = ACTIONS(173), + [anon_sym_DASH_GT] = ACTIONS(177), + [anon_sym_return] = ACTIONS(171), + [anon_sym_LBRACE] = ACTIONS(171), + [anon_sym_RBRACE] = ACTIONS(173), + [anon_sym_repeat] = ACTIONS(171), + [anon_sym_if] = ACTIONS(171), + [anon_sym_ifnot] = ACTIONS(171), + [anon_sym_do] = ACTIONS(171), + [anon_sym_while] = ACTIONS(171), + [anon_sym_try] = ACTIONS(171), + [anon_sym_PLUS_EQ] = ACTIONS(173), + [anon_sym_DASH_EQ] = ACTIONS(173), + [anon_sym_STAR_EQ] = ACTIONS(173), + [anon_sym_SLASH_EQ] = ACTIONS(173), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(173), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(173), + [anon_sym_PERCENT_EQ] = ACTIONS(173), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(173), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(173), + [anon_sym_LT_LT_EQ] = ACTIONS(173), + [anon_sym_GT_GT_EQ] = ACTIONS(173), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(173), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(173), + [anon_sym_AMP_EQ] = ACTIONS(173), + [anon_sym_PIPE_EQ] = ACTIONS(173), + [anon_sym_CARET_EQ] = ACTIONS(173), + [anon_sym_QMARK] = ACTIONS(173), + [anon_sym_EQ_EQ] = ACTIONS(173), + [anon_sym_LT] = ACTIONS(171), + [anon_sym_GT] = ACTIONS(171), + [anon_sym_LT_EQ] = ACTIONS(171), + [anon_sym_GT_EQ] = ACTIONS(173), + [anon_sym_BANG_EQ] = ACTIONS(173), + [anon_sym_LT_EQ_GT] = ACTIONS(173), + [anon_sym_LT_LT] = ACTIONS(171), + [anon_sym_GT_GT] = ACTIONS(171), + [anon_sym_TILDE_GT_GT] = ACTIONS(171), + [anon_sym_CARET_GT_GT] = ACTIONS(171), + [anon_sym_DASH] = ACTIONS(171), + [anon_sym_PLUS] = ACTIONS(171), + [anon_sym_PIPE] = ACTIONS(171), + [anon_sym_CARET] = ACTIONS(171), + [anon_sym_STAR] = ACTIONS(171), + [anon_sym_SLASH] = ACTIONS(171), + [anon_sym_PERCENT] = ACTIONS(171), + [anon_sym_TILDE_SLASH] = ACTIONS(171), + [anon_sym_CARET_SLASH] = ACTIONS(171), + [anon_sym_TILDE_PERCENT] = ACTIONS(171), + [anon_sym_CARET_PERCENT] = ACTIONS(171), + [anon_sym_SLASH_PERCENT] = ACTIONS(173), + [anon_sym_AMP] = ACTIONS(171), + [anon_sym_TILDE] = ACTIONS(171), + [anon_sym_DOT] = ACTIONS(173), + [anon_sym_LBRACK] = ACTIONS(173), + [anon_sym_int] = ACTIONS(171), + [anon_sym_cell] = ACTIONS(171), + [anon_sym_slice] = ACTIONS(171), + [anon_sym_builder] = ACTIONS(171), + [anon_sym_cont] = ACTIONS(171), + [anon_sym_tuple] = ACTIONS(171), + [sym_var_type] = ACTIONS(171), + [aux_sym_number_literal_token1] = ACTIONS(171), + [sym_string_literal] = ACTIONS(171), + [sym_number_string_literal] = ACTIONS(173), + [sym_slice_string_literal] = ACTIONS(173), + [sym_underscore] = ACTIONS(171), [sym_comment] = ACTIONS(3), }, [STATE(12)] = { - [sym__statement] = STATE(17), - [sym_return_statement] = STATE(17), - [sym_block_statement] = STATE(17), - [sym_expression_statement] = STATE(17), - [sym_empty_statement] = STATE(17), - [sym_repeat_statement] = STATE(17), - [sym_if_statement] = STATE(17), - [sym_do_while_statement] = STATE(17), - [sym_while_statement] = STATE(17), - [sym_try_catch_statement] = STATE(17), - [sym__expression] = STATE(170), - [sym__expr10] = STATE(170), - [sym__expr13] = STATE(139), - [sym__expr15] = STATE(136), - [sym__expr17] = STATE(77), - [sym__expr20] = STATE(47), - [sym__expr30] = STATE(38), - [sym__expr75] = STATE(13), - [sym__expr80] = STATE(13), - [sym__expr90] = STATE(4), - [sym_function_application] = STATE(4), - [sym_local_vars_declaration] = STATE(4), - [sym_tuple_vars_declaration] = STATE(14), - [sym_tensor_vars_declaration] = STATE(14), - [sym_var_declaration] = STATE(14), - [sym__var_declaration_lhs] = STATE(14), - [sym__nontype_expr100] = STATE(4), - [sym__expr100] = STATE(4), - [sym_parenthesized_expression] = STATE(4), - [sym_tensor_expression] = STATE(4), - [sym_typed_tuple] = STATE(4), - [sym__type_hint] = STATE(391), - [sym_function_type] = STATE(391), - [sym__atomic_type] = STATE(250), - [sym__parenthesized_type] = STATE(250), - [sym_primitive_type] = STATE(250), - [sym_tensor_type] = STATE(250), - [sym_tuple_type] = STATE(250), - [sym_hole_type] = STATE(250), - [sym_type_identifier] = STATE(250), - [sym_number_literal] = STATE(4), - [aux_sym_block_statement_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(95), - [anon_sym_SEMI] = ACTIONS(97), - [anon_sym_LPAREN] = ACTIONS(99), - [anon_sym_return] = ACTIONS(101), - [anon_sym_LBRACE] = ACTIONS(103), - [anon_sym_RBRACE] = ACTIONS(105), - [anon_sym_repeat] = ACTIONS(107), - [anon_sym_if] = ACTIONS(109), - [anon_sym_ifnot] = ACTIONS(109), - [anon_sym_do] = ACTIONS(111), - [anon_sym_while] = ACTIONS(113), - [anon_sym_try] = ACTIONS(115), - [anon_sym_DASH] = ACTIONS(117), - [anon_sym_TILDE] = ACTIONS(119), - [anon_sym_LBRACK] = ACTIONS(121), - [anon_sym_int] = ACTIONS(25), - [anon_sym_cell] = ACTIONS(25), - [anon_sym_slice] = ACTIONS(25), - [anon_sym_builder] = ACTIONS(25), - [anon_sym_cont] = ACTIONS(25), - [anon_sym_tuple] = ACTIONS(25), - [sym_var_type] = ACTIONS(27), - [aux_sym_number_literal_token1] = ACTIONS(123), - [sym_string_literal] = ACTIONS(125), - [sym_number_string_literal] = ACTIONS(127), - [sym_slice_string_literal] = ACTIONS(129), - [sym_underscore] = ACTIONS(131), + [sym__statement] = STATE(8), + [sym_return_statement] = STATE(8), + [sym_block_statement] = STATE(8), + [sym_expression_statement] = STATE(8), + [sym_empty_statement] = STATE(8), + [sym_repeat_statement] = STATE(8), + [sym_if_statement] = STATE(8), + [sym_do_while_statement] = STATE(8), + [sym_while_statement] = STATE(8), + [sym_try_catch_statement] = STATE(8), + [sym__expression] = STATE(437), + [sym__expr10] = STATE(437), + [sym_ternary_condition] = STATE(421), + [sym_ternary_expression] = STATE(175), + [sym__expr13] = STATE(175), + [sym__expr15] = STATE(116), + [sym__expr17] = STATE(157), + [sym__expr20] = STATE(150), + [sym__expr30] = STATE(140), + [sym__expr75] = STATE(107), + [sym__expr80] = STATE(107), + [sym__expr90] = STATE(72), + [sym_function_application] = STATE(72), + [sym_var_declaration] = STATE(73), + [sym_tensor_vars_declaration] = STATE(73), + [sym__multiple_vars_declaration] = STATE(73), + [sym_local_vars_declaration] = STATE(46), + [sym_tuple_vars_declaration] = STATE(73), + [sym__nontype_expr100] = STATE(46), + [sym__expr100] = STATE(72), + [sym_parenthesized_expression] = STATE(46), + [sym_tensor_expression] = STATE(46), + [sym_typed_tuple] = STATE(46), + [sym__type_hint] = STATE(417), + [sym_function_type] = STATE(417), + [sym__atomic_type] = STATE(257), + [sym_primitive_type] = STATE(257), + [sym_tensor_type] = STATE(257), + [sym_tuple_type] = STATE(257), + [sym_hole_type] = STATE(257), + [sym_type_identifier] = STATE(257), + [sym_number_literal] = STATE(46), + [aux_sym_block_statement_repeat1] = STATE(8), + [sym_identifier] = ACTIONS(65), + [anon_sym_SEMI] = ACTIONS(67), + [anon_sym_LPAREN] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_RBRACE] = ACTIONS(179), + [anon_sym_repeat] = ACTIONS(77), + [anon_sym_if] = ACTIONS(79), + [anon_sym_ifnot] = ACTIONS(79), + [anon_sym_do] = ACTIONS(81), + [anon_sym_while] = ACTIONS(83), + [anon_sym_try] = ACTIONS(85), + [anon_sym_DASH] = ACTIONS(87), + [anon_sym_TILDE] = ACTIONS(89), + [anon_sym_LBRACK] = ACTIONS(91), + [anon_sym_int] = ACTIONS(93), + [anon_sym_cell] = ACTIONS(93), + [anon_sym_slice] = ACTIONS(93), + [anon_sym_builder] = ACTIONS(93), + [anon_sym_cont] = ACTIONS(93), + [anon_sym_tuple] = ACTIONS(93), + [sym_var_type] = ACTIONS(95), + [aux_sym_number_literal_token1] = ACTIONS(97), + [sym_string_literal] = ACTIONS(99), + [sym_number_string_literal] = ACTIONS(101), + [sym_slice_string_literal] = ACTIONS(103), + [sym_underscore] = ACTIONS(105), [sym_comment] = ACTIONS(3), }, [STATE(13)] = { - [aux_sym__expr30_repeat1] = STATE(15), - [sym_identifier] = ACTIONS(133), - [anon_sym_SEMI] = ACTIONS(133), - [anon_sym_EQ] = ACTIONS(133), - [anon_sym_LPAREN] = ACTIONS(135), - [anon_sym_return] = ACTIONS(133), - [anon_sym_LBRACE] = ACTIONS(133), - [anon_sym_RBRACE] = ACTIONS(135), - [anon_sym_repeat] = ACTIONS(133), - [anon_sym_if] = ACTIONS(133), - [anon_sym_ifnot] = ACTIONS(133), - [anon_sym_do] = ACTIONS(133), - [anon_sym_while] = ACTIONS(133), - [anon_sym_try] = ACTIONS(133), - [anon_sym_PLUS_EQ] = ACTIONS(135), - [anon_sym_DASH_EQ] = ACTIONS(135), - [anon_sym_STAR_EQ] = ACTIONS(135), - [anon_sym_SLASH_EQ] = ACTIONS(135), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(135), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(135), - [anon_sym_PERCENT_EQ] = ACTIONS(135), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(135), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(135), - [anon_sym_LT_LT_EQ] = ACTIONS(135), - [anon_sym_GT_GT_EQ] = ACTIONS(135), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(135), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(135), - [anon_sym_AMP_EQ] = ACTIONS(135), - [anon_sym_PIPE_EQ] = ACTIONS(135), - [anon_sym_CARET_EQ] = ACTIONS(135), - [anon_sym_QMARK] = ACTIONS(135), - [anon_sym_EQ_EQ] = ACTIONS(135), - [anon_sym_LT] = ACTIONS(133), - [anon_sym_GT] = ACTIONS(133), - [anon_sym_LT_EQ] = ACTIONS(133), - [anon_sym_GT_EQ] = ACTIONS(135), - [anon_sym_BANG_EQ] = ACTIONS(135), - [anon_sym_LT_EQ_GT] = ACTIONS(135), - [anon_sym_LT_LT] = ACTIONS(133), - [anon_sym_GT_GT] = ACTIONS(133), - [anon_sym_TILDE_GT_GT] = ACTIONS(133), - [anon_sym_CARET_GT_GT] = ACTIONS(133), - [anon_sym_DASH] = ACTIONS(133), - [anon_sym_PLUS] = ACTIONS(133), - [anon_sym_PIPE] = ACTIONS(133), - [anon_sym_CARET] = ACTIONS(133), - [anon_sym_STAR] = ACTIONS(137), - [anon_sym_SLASH] = ACTIONS(137), - [anon_sym_PERCENT] = ACTIONS(137), - [anon_sym_TILDE_SLASH] = ACTIONS(137), - [anon_sym_CARET_SLASH] = ACTIONS(137), - [anon_sym_TILDE_PERCENT] = ACTIONS(137), - [anon_sym_CARET_PERCENT] = ACTIONS(137), - [anon_sym_SLASH_PERCENT] = ACTIONS(139), - [anon_sym_AMP] = ACTIONS(137), - [anon_sym_TILDE] = ACTIONS(133), - [anon_sym_LBRACK] = ACTIONS(135), - [anon_sym_int] = ACTIONS(133), - [anon_sym_cell] = ACTIONS(133), - [anon_sym_slice] = ACTIONS(133), - [anon_sym_builder] = ACTIONS(133), - [anon_sym_cont] = ACTIONS(133), - [anon_sym_tuple] = ACTIONS(133), - [sym_var_type] = ACTIONS(133), - [aux_sym_number_literal_token1] = ACTIONS(133), - [sym_string_literal] = ACTIONS(133), - [sym_number_string_literal] = ACTIONS(135), - [sym_slice_string_literal] = ACTIONS(135), - [sym_underscore] = ACTIONS(133), + [sym_identifier] = ACTIONS(181), + [anon_sym_SEMI] = ACTIONS(184), + [anon_sym_EQ] = ACTIONS(184), + [anon_sym_LPAREN] = ACTIONS(186), + [anon_sym_DASH_GT] = ACTIONS(189), + [anon_sym_return] = ACTIONS(184), + [anon_sym_LBRACE] = ACTIONS(184), + [anon_sym_RBRACE] = ACTIONS(191), + [anon_sym_repeat] = ACTIONS(184), + [anon_sym_if] = ACTIONS(184), + [anon_sym_ifnot] = ACTIONS(184), + [anon_sym_do] = ACTIONS(184), + [anon_sym_while] = ACTIONS(184), + [anon_sym_try] = ACTIONS(184), + [anon_sym_PLUS_EQ] = ACTIONS(191), + [anon_sym_DASH_EQ] = ACTIONS(191), + [anon_sym_STAR_EQ] = ACTIONS(191), + [anon_sym_SLASH_EQ] = ACTIONS(191), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(191), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(191), + [anon_sym_PERCENT_EQ] = ACTIONS(191), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(191), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(191), + [anon_sym_LT_LT_EQ] = ACTIONS(191), + [anon_sym_GT_GT_EQ] = ACTIONS(191), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(191), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(191), + [anon_sym_AMP_EQ] = ACTIONS(191), + [anon_sym_PIPE_EQ] = ACTIONS(191), + [anon_sym_CARET_EQ] = ACTIONS(191), + [anon_sym_QMARK] = ACTIONS(191), + [anon_sym_EQ_EQ] = ACTIONS(191), + [anon_sym_LT] = ACTIONS(184), + [anon_sym_GT] = ACTIONS(184), + [anon_sym_LT_EQ] = ACTIONS(184), + [anon_sym_GT_EQ] = ACTIONS(191), + [anon_sym_BANG_EQ] = ACTIONS(191), + [anon_sym_LT_EQ_GT] = ACTIONS(191), + [anon_sym_LT_LT] = ACTIONS(184), + [anon_sym_GT_GT] = ACTIONS(184), + [anon_sym_TILDE_GT_GT] = ACTIONS(184), + [anon_sym_CARET_GT_GT] = ACTIONS(184), + [anon_sym_DASH] = ACTIONS(184), + [anon_sym_PLUS] = ACTIONS(184), + [anon_sym_PIPE] = ACTIONS(184), + [anon_sym_CARET] = ACTIONS(184), + [anon_sym_STAR] = ACTIONS(184), + [anon_sym_SLASH] = ACTIONS(184), + [anon_sym_PERCENT] = ACTIONS(184), + [anon_sym_TILDE_SLASH] = ACTIONS(184), + [anon_sym_CARET_SLASH] = ACTIONS(184), + [anon_sym_TILDE_PERCENT] = ACTIONS(184), + [anon_sym_CARET_PERCENT] = ACTIONS(184), + [anon_sym_SLASH_PERCENT] = ACTIONS(191), + [anon_sym_AMP] = ACTIONS(184), + [anon_sym_TILDE] = ACTIONS(184), + [anon_sym_DOT] = ACTIONS(191), + [anon_sym_LBRACK] = ACTIONS(191), + [anon_sym_int] = ACTIONS(184), + [anon_sym_cell] = ACTIONS(184), + [anon_sym_slice] = ACTIONS(184), + [anon_sym_builder] = ACTIONS(184), + [anon_sym_cont] = ACTIONS(184), + [anon_sym_tuple] = ACTIONS(184), + [sym_var_type] = ACTIONS(184), + [aux_sym_number_literal_token1] = ACTIONS(184), + [sym_string_literal] = ACTIONS(184), + [sym_number_string_literal] = ACTIONS(191), + [sym_slice_string_literal] = ACTIONS(191), + [sym_underscore] = ACTIONS(184), [sym_comment] = ACTIONS(3), }, [STATE(14)] = { - [sym_identifier] = ACTIONS(141), - [anon_sym_SEMI] = ACTIONS(141), - [anon_sym_EQ] = ACTIONS(141), - [anon_sym_LPAREN] = ACTIONS(143), - [anon_sym_return] = ACTIONS(141), - [anon_sym_LBRACE] = ACTIONS(141), - [anon_sym_RBRACE] = ACTIONS(143), - [anon_sym_repeat] = ACTIONS(141), - [anon_sym_if] = ACTIONS(141), - [anon_sym_ifnot] = ACTIONS(141), - [anon_sym_do] = ACTIONS(141), - [anon_sym_while] = ACTIONS(141), - [anon_sym_try] = ACTIONS(141), - [anon_sym_PLUS_EQ] = ACTIONS(143), - [anon_sym_DASH_EQ] = ACTIONS(143), - [anon_sym_STAR_EQ] = ACTIONS(143), - [anon_sym_SLASH_EQ] = ACTIONS(143), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(143), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(143), - [anon_sym_PERCENT_EQ] = ACTIONS(143), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(143), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(143), - [anon_sym_LT_LT_EQ] = ACTIONS(143), - [anon_sym_GT_GT_EQ] = ACTIONS(143), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(143), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(143), - [anon_sym_AMP_EQ] = ACTIONS(143), - [anon_sym_PIPE_EQ] = ACTIONS(143), - [anon_sym_CARET_EQ] = ACTIONS(143), - [anon_sym_QMARK] = ACTIONS(143), - [anon_sym_EQ_EQ] = ACTIONS(143), - [anon_sym_LT] = ACTIONS(141), - [anon_sym_GT] = ACTIONS(141), - [anon_sym_LT_EQ] = ACTIONS(141), - [anon_sym_GT_EQ] = ACTIONS(143), - [anon_sym_BANG_EQ] = ACTIONS(143), - [anon_sym_LT_EQ_GT] = ACTIONS(143), - [anon_sym_LT_LT] = ACTIONS(141), - [anon_sym_GT_GT] = ACTIONS(141), - [anon_sym_TILDE_GT_GT] = ACTIONS(141), - [anon_sym_CARET_GT_GT] = ACTIONS(141), - [anon_sym_DASH] = ACTIONS(141), - [anon_sym_PLUS] = ACTIONS(141), - [anon_sym_PIPE] = ACTIONS(141), - [anon_sym_CARET] = ACTIONS(141), - [anon_sym_STAR] = ACTIONS(141), - [anon_sym_SLASH] = ACTIONS(141), - [anon_sym_PERCENT] = ACTIONS(141), - [anon_sym_TILDE_SLASH] = ACTIONS(141), - [anon_sym_CARET_SLASH] = ACTIONS(141), - [anon_sym_TILDE_PERCENT] = ACTIONS(141), - [anon_sym_CARET_PERCENT] = ACTIONS(141), - [anon_sym_SLASH_PERCENT] = ACTIONS(143), - [anon_sym_AMP] = ACTIONS(141), - [anon_sym_TILDE] = ACTIONS(141), - [anon_sym_DOT] = ACTIONS(143), - [anon_sym_LBRACK] = ACTIONS(143), - [anon_sym_int] = ACTIONS(141), - [anon_sym_cell] = ACTIONS(141), - [anon_sym_slice] = ACTIONS(141), - [anon_sym_builder] = ACTIONS(141), - [anon_sym_cont] = ACTIONS(141), - [anon_sym_tuple] = ACTIONS(141), - [sym_var_type] = ACTIONS(141), - [aux_sym_number_literal_token1] = ACTIONS(141), - [sym_string_literal] = ACTIONS(141), - [sym_number_string_literal] = ACTIONS(143), - [sym_slice_string_literal] = ACTIONS(143), - [sym_underscore] = ACTIONS(141), + [sym_identifier] = ACTIONS(193), + [anon_sym_SEMI] = ACTIONS(196), + [anon_sym_EQ] = ACTIONS(196), + [anon_sym_LPAREN] = ACTIONS(198), + [anon_sym_DASH_GT] = ACTIONS(201), + [anon_sym_return] = ACTIONS(196), + [anon_sym_LBRACE] = ACTIONS(196), + [anon_sym_RBRACE] = ACTIONS(203), + [anon_sym_repeat] = ACTIONS(196), + [anon_sym_if] = ACTIONS(196), + [anon_sym_ifnot] = ACTIONS(196), + [anon_sym_do] = ACTIONS(196), + [anon_sym_while] = ACTIONS(196), + [anon_sym_try] = ACTIONS(196), + [anon_sym_PLUS_EQ] = ACTIONS(203), + [anon_sym_DASH_EQ] = ACTIONS(203), + [anon_sym_STAR_EQ] = ACTIONS(203), + [anon_sym_SLASH_EQ] = ACTIONS(203), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(203), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(203), + [anon_sym_PERCENT_EQ] = ACTIONS(203), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(203), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(203), + [anon_sym_LT_LT_EQ] = ACTIONS(203), + [anon_sym_GT_GT_EQ] = ACTIONS(203), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(203), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(203), + [anon_sym_AMP_EQ] = ACTIONS(203), + [anon_sym_PIPE_EQ] = ACTIONS(203), + [anon_sym_CARET_EQ] = ACTIONS(203), + [anon_sym_QMARK] = ACTIONS(203), + [anon_sym_EQ_EQ] = ACTIONS(203), + [anon_sym_LT] = ACTIONS(196), + [anon_sym_GT] = ACTIONS(196), + [anon_sym_LT_EQ] = ACTIONS(196), + [anon_sym_GT_EQ] = ACTIONS(203), + [anon_sym_BANG_EQ] = ACTIONS(203), + [anon_sym_LT_EQ_GT] = ACTIONS(203), + [anon_sym_LT_LT] = ACTIONS(196), + [anon_sym_GT_GT] = ACTIONS(196), + [anon_sym_TILDE_GT_GT] = ACTIONS(196), + [anon_sym_CARET_GT_GT] = ACTIONS(196), + [anon_sym_DASH] = ACTIONS(196), + [anon_sym_PLUS] = ACTIONS(196), + [anon_sym_PIPE] = ACTIONS(196), + [anon_sym_CARET] = ACTIONS(196), + [anon_sym_STAR] = ACTIONS(196), + [anon_sym_SLASH] = ACTIONS(196), + [anon_sym_PERCENT] = ACTIONS(196), + [anon_sym_TILDE_SLASH] = ACTIONS(196), + [anon_sym_CARET_SLASH] = ACTIONS(196), + [anon_sym_TILDE_PERCENT] = ACTIONS(196), + [anon_sym_CARET_PERCENT] = ACTIONS(196), + [anon_sym_SLASH_PERCENT] = ACTIONS(203), + [anon_sym_AMP] = ACTIONS(196), + [anon_sym_TILDE] = ACTIONS(196), + [anon_sym_DOT] = ACTIONS(203), + [anon_sym_LBRACK] = ACTIONS(203), + [anon_sym_int] = ACTIONS(196), + [anon_sym_cell] = ACTIONS(196), + [anon_sym_slice] = ACTIONS(196), + [anon_sym_builder] = ACTIONS(196), + [anon_sym_cont] = ACTIONS(196), + [anon_sym_tuple] = ACTIONS(196), + [sym_var_type] = ACTIONS(196), + [aux_sym_number_literal_token1] = ACTIONS(196), + [sym_string_literal] = ACTIONS(196), + [sym_number_string_literal] = ACTIONS(203), + [sym_slice_string_literal] = ACTIONS(203), + [sym_underscore] = ACTIONS(196), [sym_comment] = ACTIONS(3), }, [STATE(15)] = { - [aux_sym__expr30_repeat1] = STATE(22), - [sym_identifier] = ACTIONS(145), - [anon_sym_SEMI] = ACTIONS(145), - [anon_sym_EQ] = ACTIONS(145), - [anon_sym_LPAREN] = ACTIONS(147), - [anon_sym_return] = ACTIONS(145), - [anon_sym_LBRACE] = ACTIONS(145), - [anon_sym_RBRACE] = ACTIONS(147), - [anon_sym_repeat] = ACTIONS(145), - [anon_sym_if] = ACTIONS(145), - [anon_sym_ifnot] = ACTIONS(145), - [anon_sym_do] = ACTIONS(145), - [anon_sym_while] = ACTIONS(145), - [anon_sym_try] = ACTIONS(145), - [anon_sym_PLUS_EQ] = ACTIONS(147), - [anon_sym_DASH_EQ] = ACTIONS(147), - [anon_sym_STAR_EQ] = ACTIONS(147), - [anon_sym_SLASH_EQ] = ACTIONS(147), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(147), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(147), - [anon_sym_PERCENT_EQ] = ACTIONS(147), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(147), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(147), - [anon_sym_LT_LT_EQ] = ACTIONS(147), - [anon_sym_GT_GT_EQ] = ACTIONS(147), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(147), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(147), - [anon_sym_AMP_EQ] = ACTIONS(147), - [anon_sym_PIPE_EQ] = ACTIONS(147), - [anon_sym_CARET_EQ] = ACTIONS(147), - [anon_sym_QMARK] = ACTIONS(147), - [anon_sym_EQ_EQ] = ACTIONS(147), - [anon_sym_LT] = ACTIONS(145), - [anon_sym_GT] = ACTIONS(145), - [anon_sym_LT_EQ] = ACTIONS(145), - [anon_sym_GT_EQ] = ACTIONS(147), - [anon_sym_BANG_EQ] = ACTIONS(147), - [anon_sym_LT_EQ_GT] = ACTIONS(147), - [anon_sym_LT_LT] = ACTIONS(145), - [anon_sym_GT_GT] = ACTIONS(145), - [anon_sym_TILDE_GT_GT] = ACTIONS(145), - [anon_sym_CARET_GT_GT] = ACTIONS(145), - [anon_sym_DASH] = ACTIONS(145), - [anon_sym_PLUS] = ACTIONS(145), - [anon_sym_PIPE] = ACTIONS(145), - [anon_sym_CARET] = ACTIONS(145), - [anon_sym_STAR] = ACTIONS(137), - [anon_sym_SLASH] = ACTIONS(137), - [anon_sym_PERCENT] = ACTIONS(137), - [anon_sym_TILDE_SLASH] = ACTIONS(137), - [anon_sym_CARET_SLASH] = ACTIONS(137), - [anon_sym_TILDE_PERCENT] = ACTIONS(137), - [anon_sym_CARET_PERCENT] = ACTIONS(137), - [anon_sym_SLASH_PERCENT] = ACTIONS(139), - [anon_sym_AMP] = ACTIONS(137), - [anon_sym_TILDE] = ACTIONS(145), - [anon_sym_LBRACK] = ACTIONS(147), - [anon_sym_int] = ACTIONS(145), - [anon_sym_cell] = ACTIONS(145), - [anon_sym_slice] = ACTIONS(145), - [anon_sym_builder] = ACTIONS(145), - [anon_sym_cont] = ACTIONS(145), - [anon_sym_tuple] = ACTIONS(145), - [sym_var_type] = ACTIONS(145), - [aux_sym_number_literal_token1] = ACTIONS(145), - [sym_string_literal] = ACTIONS(145), - [sym_number_string_literal] = ACTIONS(147), - [sym_slice_string_literal] = ACTIONS(147), - [sym_underscore] = ACTIONS(145), + [sym__statement] = STATE(12), + [sym_return_statement] = STATE(12), + [sym_block_statement] = STATE(12), + [sym_expression_statement] = STATE(12), + [sym_empty_statement] = STATE(12), + [sym_repeat_statement] = STATE(12), + [sym_if_statement] = STATE(12), + [sym_do_while_statement] = STATE(12), + [sym_while_statement] = STATE(12), + [sym_try_catch_statement] = STATE(12), + [sym__expression] = STATE(437), + [sym__expr10] = STATE(437), + [sym_ternary_condition] = STATE(421), + [sym_ternary_expression] = STATE(175), + [sym__expr13] = STATE(175), + [sym__expr15] = STATE(116), + [sym__expr17] = STATE(157), + [sym__expr20] = STATE(150), + [sym__expr30] = STATE(140), + [sym__expr75] = STATE(107), + [sym__expr80] = STATE(107), + [sym__expr90] = STATE(72), + [sym_function_application] = STATE(72), + [sym_var_declaration] = STATE(73), + [sym_tensor_vars_declaration] = STATE(73), + [sym__multiple_vars_declaration] = STATE(73), + [sym_local_vars_declaration] = STATE(46), + [sym_tuple_vars_declaration] = STATE(73), + [sym__nontype_expr100] = STATE(46), + [sym__expr100] = STATE(72), + [sym_parenthesized_expression] = STATE(46), + [sym_tensor_expression] = STATE(46), + [sym_typed_tuple] = STATE(46), + [sym__type_hint] = STATE(417), + [sym_function_type] = STATE(417), + [sym__atomic_type] = STATE(257), + [sym_primitive_type] = STATE(257), + [sym_tensor_type] = STATE(257), + [sym_tuple_type] = STATE(257), + [sym_hole_type] = STATE(257), + [sym_type_identifier] = STATE(257), + [sym_number_literal] = STATE(46), + [aux_sym_block_statement_repeat1] = STATE(12), + [sym_identifier] = ACTIONS(65), + [anon_sym_SEMI] = ACTIONS(67), + [anon_sym_LPAREN] = ACTIONS(69), + [anon_sym_return] = ACTIONS(71), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_RBRACE] = ACTIONS(205), + [anon_sym_repeat] = ACTIONS(77), + [anon_sym_if] = ACTIONS(79), + [anon_sym_ifnot] = ACTIONS(79), + [anon_sym_do] = ACTIONS(81), + [anon_sym_while] = ACTIONS(83), + [anon_sym_try] = ACTIONS(85), + [anon_sym_DASH] = ACTIONS(87), + [anon_sym_TILDE] = ACTIONS(89), + [anon_sym_LBRACK] = ACTIONS(91), + [anon_sym_int] = ACTIONS(93), + [anon_sym_cell] = ACTIONS(93), + [anon_sym_slice] = ACTIONS(93), + [anon_sym_builder] = ACTIONS(93), + [anon_sym_cont] = ACTIONS(93), + [anon_sym_tuple] = ACTIONS(93), + [sym_var_type] = ACTIONS(95), + [aux_sym_number_literal_token1] = ACTIONS(97), + [sym_string_literal] = ACTIONS(99), + [sym_number_string_literal] = ACTIONS(101), + [sym_slice_string_literal] = ACTIONS(103), + [sym_underscore] = ACTIONS(105), [sym_comment] = ACTIONS(3), }, [STATE(16)] = { - [sym__statement] = STATE(24), - [sym_return_statement] = STATE(24), - [sym_block_statement] = STATE(24), - [sym_expression_statement] = STATE(24), - [sym_empty_statement] = STATE(24), - [sym_repeat_statement] = STATE(24), - [sym_if_statement] = STATE(24), - [sym_do_while_statement] = STATE(24), - [sym_while_statement] = STATE(24), - [sym_try_catch_statement] = STATE(24), - [sym__expression] = STATE(170), - [sym__expr10] = STATE(170), - [sym__expr13] = STATE(139), - [sym__expr15] = STATE(136), - [sym__expr17] = STATE(77), - [sym__expr20] = STATE(47), - [sym__expr30] = STATE(38), - [sym__expr75] = STATE(13), - [sym__expr80] = STATE(13), - [sym__expr90] = STATE(4), - [sym_function_application] = STATE(4), - [sym_local_vars_declaration] = STATE(4), - [sym_tuple_vars_declaration] = STATE(14), - [sym_tensor_vars_declaration] = STATE(14), - [sym_var_declaration] = STATE(14), - [sym__var_declaration_lhs] = STATE(14), - [sym__nontype_expr100] = STATE(4), - [sym__expr100] = STATE(4), - [sym_parenthesized_expression] = STATE(4), - [sym_tensor_expression] = STATE(4), - [sym_typed_tuple] = STATE(4), - [sym__type_hint] = STATE(391), - [sym_function_type] = STATE(391), - [sym__atomic_type] = STATE(250), - [sym__parenthesized_type] = STATE(250), - [sym_primitive_type] = STATE(250), - [sym_tensor_type] = STATE(250), - [sym_tuple_type] = STATE(250), - [sym_hole_type] = STATE(250), - [sym_type_identifier] = STATE(250), - [sym_number_literal] = STATE(4), - [aux_sym_block_statement_repeat1] = STATE(24), - [sym_identifier] = ACTIONS(95), - [anon_sym_SEMI] = ACTIONS(97), - [anon_sym_LPAREN] = ACTIONS(99), - [anon_sym_return] = ACTIONS(101), - [anon_sym_LBRACE] = ACTIONS(103), - [anon_sym_RBRACE] = ACTIONS(149), - [anon_sym_repeat] = ACTIONS(107), - [anon_sym_if] = ACTIONS(109), - [anon_sym_ifnot] = ACTIONS(109), - [anon_sym_do] = ACTIONS(111), - [anon_sym_while] = ACTIONS(113), - [anon_sym_try] = ACTIONS(115), - [anon_sym_DASH] = ACTIONS(117), - [anon_sym_TILDE] = ACTIONS(119), - [anon_sym_LBRACK] = ACTIONS(121), - [anon_sym_int] = ACTIONS(25), - [anon_sym_cell] = ACTIONS(25), - [anon_sym_slice] = ACTIONS(25), - [anon_sym_builder] = ACTIONS(25), - [anon_sym_cont] = ACTIONS(25), - [anon_sym_tuple] = ACTIONS(25), - [sym_var_type] = ACTIONS(27), - [aux_sym_number_literal_token1] = ACTIONS(123), - [sym_string_literal] = ACTIONS(125), - [sym_number_string_literal] = ACTIONS(127), - [sym_slice_string_literal] = ACTIONS(129), - [sym_underscore] = ACTIONS(131), + [sym_identifier] = ACTIONS(207), + [anon_sym_SEMI] = ACTIONS(207), + [anon_sym_EQ] = ACTIONS(207), + [anon_sym_LPAREN] = ACTIONS(209), + [anon_sym_return] = ACTIONS(207), + [anon_sym_LBRACE] = ACTIONS(207), + [anon_sym_RBRACE] = ACTIONS(209), + [anon_sym_repeat] = ACTIONS(207), + [anon_sym_if] = ACTIONS(207), + [anon_sym_ifnot] = ACTIONS(207), + [anon_sym_do] = ACTIONS(207), + [anon_sym_while] = ACTIONS(207), + [anon_sym_try] = ACTIONS(207), + [anon_sym_PLUS_EQ] = ACTIONS(209), + [anon_sym_DASH_EQ] = ACTIONS(209), + [anon_sym_STAR_EQ] = ACTIONS(209), + [anon_sym_SLASH_EQ] = ACTIONS(209), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(209), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(209), + [anon_sym_PERCENT_EQ] = ACTIONS(209), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(209), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(209), + [anon_sym_LT_LT_EQ] = ACTIONS(209), + [anon_sym_GT_GT_EQ] = ACTIONS(209), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(209), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(209), + [anon_sym_AMP_EQ] = ACTIONS(209), + [anon_sym_PIPE_EQ] = ACTIONS(209), + [anon_sym_CARET_EQ] = ACTIONS(209), + [anon_sym_QMARK] = ACTIONS(209), + [anon_sym_EQ_EQ] = ACTIONS(209), + [anon_sym_LT] = ACTIONS(207), + [anon_sym_GT] = ACTIONS(207), + [anon_sym_LT_EQ] = ACTIONS(207), + [anon_sym_GT_EQ] = ACTIONS(209), + [anon_sym_BANG_EQ] = ACTIONS(209), + [anon_sym_LT_EQ_GT] = ACTIONS(209), + [anon_sym_LT_LT] = ACTIONS(207), + [anon_sym_GT_GT] = ACTIONS(207), + [anon_sym_TILDE_GT_GT] = ACTIONS(207), + [anon_sym_CARET_GT_GT] = ACTIONS(207), + [anon_sym_DASH] = ACTIONS(207), + [anon_sym_PLUS] = ACTIONS(207), + [anon_sym_PIPE] = ACTIONS(207), + [anon_sym_CARET] = ACTIONS(207), + [anon_sym_STAR] = ACTIONS(207), + [anon_sym_SLASH] = ACTIONS(207), + [anon_sym_PERCENT] = ACTIONS(207), + [anon_sym_TILDE_SLASH] = ACTIONS(207), + [anon_sym_CARET_SLASH] = ACTIONS(207), + [anon_sym_TILDE_PERCENT] = ACTIONS(207), + [anon_sym_CARET_PERCENT] = ACTIONS(207), + [anon_sym_SLASH_PERCENT] = ACTIONS(209), + [anon_sym_AMP] = ACTIONS(207), + [anon_sym_TILDE] = ACTIONS(207), + [anon_sym_DOT] = ACTIONS(209), + [anon_sym_LBRACK] = ACTIONS(209), + [anon_sym_int] = ACTIONS(207), + [anon_sym_cell] = ACTIONS(207), + [anon_sym_slice] = ACTIONS(207), + [anon_sym_builder] = ACTIONS(207), + [anon_sym_cont] = ACTIONS(207), + [anon_sym_tuple] = ACTIONS(207), + [sym_var_type] = ACTIONS(207), + [aux_sym_number_literal_token1] = ACTIONS(207), + [sym_string_literal] = ACTIONS(207), + [sym_number_string_literal] = ACTIONS(209), + [sym_slice_string_literal] = ACTIONS(209), + [sym_underscore] = ACTIONS(207), [sym_comment] = ACTIONS(3), }, [STATE(17)] = { - [sym__statement] = STATE(24), - [sym_return_statement] = STATE(24), - [sym_block_statement] = STATE(24), - [sym_expression_statement] = STATE(24), - [sym_empty_statement] = STATE(24), - [sym_repeat_statement] = STATE(24), - [sym_if_statement] = STATE(24), - [sym_do_while_statement] = STATE(24), - [sym_while_statement] = STATE(24), - [sym_try_catch_statement] = STATE(24), - [sym__expression] = STATE(170), - [sym__expr10] = STATE(170), - [sym__expr13] = STATE(139), - [sym__expr15] = STATE(136), - [sym__expr17] = STATE(77), - [sym__expr20] = STATE(47), - [sym__expr30] = STATE(38), - [sym__expr75] = STATE(13), - [sym__expr80] = STATE(13), - [sym__expr90] = STATE(4), - [sym_function_application] = STATE(4), - [sym_local_vars_declaration] = STATE(4), - [sym_tuple_vars_declaration] = STATE(14), - [sym_tensor_vars_declaration] = STATE(14), - [sym_var_declaration] = STATE(14), - [sym__var_declaration_lhs] = STATE(14), - [sym__nontype_expr100] = STATE(4), - [sym__expr100] = STATE(4), - [sym_parenthesized_expression] = STATE(4), - [sym_tensor_expression] = STATE(4), - [sym_typed_tuple] = STATE(4), - [sym__type_hint] = STATE(391), - [sym_function_type] = STATE(391), - [sym__atomic_type] = STATE(250), - [sym__parenthesized_type] = STATE(250), - [sym_primitive_type] = STATE(250), - [sym_tensor_type] = STATE(250), - [sym_tuple_type] = STATE(250), - [sym_hole_type] = STATE(250), - [sym_type_identifier] = STATE(250), - [sym_number_literal] = STATE(4), - [aux_sym_block_statement_repeat1] = STATE(24), - [sym_identifier] = ACTIONS(95), - [anon_sym_SEMI] = ACTIONS(97), - [anon_sym_LPAREN] = ACTIONS(99), - [anon_sym_return] = ACTIONS(101), - [anon_sym_LBRACE] = ACTIONS(103), - [anon_sym_RBRACE] = ACTIONS(151), - [anon_sym_repeat] = ACTIONS(107), - [anon_sym_if] = ACTIONS(109), - [anon_sym_ifnot] = ACTIONS(109), - [anon_sym_do] = ACTIONS(111), - [anon_sym_while] = ACTIONS(113), - [anon_sym_try] = ACTIONS(115), - [anon_sym_DASH] = ACTIONS(117), - [anon_sym_TILDE] = ACTIONS(119), - [anon_sym_LBRACK] = ACTIONS(121), - [anon_sym_int] = ACTIONS(25), - [anon_sym_cell] = ACTIONS(25), - [anon_sym_slice] = ACTIONS(25), - [anon_sym_builder] = ACTIONS(25), - [anon_sym_cont] = ACTIONS(25), - [anon_sym_tuple] = ACTIONS(25), - [sym_var_type] = ACTIONS(27), - [aux_sym_number_literal_token1] = ACTIONS(123), - [sym_string_literal] = ACTIONS(125), - [sym_number_string_literal] = ACTIONS(127), - [sym_slice_string_literal] = ACTIONS(129), - [sym_underscore] = ACTIONS(131), + [sym_identifier] = ACTIONS(211), + [anon_sym_SEMI] = ACTIONS(211), + [anon_sym_EQ] = ACTIONS(211), + [anon_sym_LPAREN] = ACTIONS(213), + [anon_sym_return] = ACTIONS(211), + [anon_sym_LBRACE] = ACTIONS(211), + [anon_sym_RBRACE] = ACTIONS(213), + [anon_sym_repeat] = ACTIONS(211), + [anon_sym_if] = ACTIONS(211), + [anon_sym_ifnot] = ACTIONS(211), + [anon_sym_do] = ACTIONS(211), + [anon_sym_while] = ACTIONS(211), + [anon_sym_try] = ACTIONS(211), + [anon_sym_PLUS_EQ] = ACTIONS(213), + [anon_sym_DASH_EQ] = ACTIONS(213), + [anon_sym_STAR_EQ] = ACTIONS(213), + [anon_sym_SLASH_EQ] = ACTIONS(213), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(213), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(213), + [anon_sym_PERCENT_EQ] = ACTIONS(213), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(213), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(213), + [anon_sym_LT_LT_EQ] = ACTIONS(213), + [anon_sym_GT_GT_EQ] = ACTIONS(213), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(213), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(213), + [anon_sym_AMP_EQ] = ACTIONS(213), + [anon_sym_PIPE_EQ] = ACTIONS(213), + [anon_sym_CARET_EQ] = ACTIONS(213), + [anon_sym_QMARK] = ACTIONS(213), + [anon_sym_EQ_EQ] = ACTIONS(213), + [anon_sym_LT] = ACTIONS(211), + [anon_sym_GT] = ACTIONS(211), + [anon_sym_LT_EQ] = ACTIONS(211), + [anon_sym_GT_EQ] = ACTIONS(213), + [anon_sym_BANG_EQ] = ACTIONS(213), + [anon_sym_LT_EQ_GT] = ACTIONS(213), + [anon_sym_LT_LT] = ACTIONS(211), + [anon_sym_GT_GT] = ACTIONS(211), + [anon_sym_TILDE_GT_GT] = ACTIONS(211), + [anon_sym_CARET_GT_GT] = ACTIONS(211), + [anon_sym_DASH] = ACTIONS(211), + [anon_sym_PLUS] = ACTIONS(211), + [anon_sym_PIPE] = ACTIONS(211), + [anon_sym_CARET] = ACTIONS(211), + [anon_sym_STAR] = ACTIONS(211), + [anon_sym_SLASH] = ACTIONS(211), + [anon_sym_PERCENT] = ACTIONS(211), + [anon_sym_TILDE_SLASH] = ACTIONS(211), + [anon_sym_CARET_SLASH] = ACTIONS(211), + [anon_sym_TILDE_PERCENT] = ACTIONS(211), + [anon_sym_CARET_PERCENT] = ACTIONS(211), + [anon_sym_SLASH_PERCENT] = ACTIONS(213), + [anon_sym_AMP] = ACTIONS(211), + [anon_sym_TILDE] = ACTIONS(211), + [anon_sym_DOT] = ACTIONS(213), + [anon_sym_LBRACK] = ACTIONS(213), + [anon_sym_int] = ACTIONS(211), + [anon_sym_cell] = ACTIONS(211), + [anon_sym_slice] = ACTIONS(211), + [anon_sym_builder] = ACTIONS(211), + [anon_sym_cont] = ACTIONS(211), + [anon_sym_tuple] = ACTIONS(211), + [sym_var_type] = ACTIONS(211), + [aux_sym_number_literal_token1] = ACTIONS(211), + [sym_string_literal] = ACTIONS(211), + [sym_number_string_literal] = ACTIONS(213), + [sym_slice_string_literal] = ACTIONS(213), + [sym_underscore] = ACTIONS(211), [sym_comment] = ACTIONS(3), }, [STATE(18)] = { - [sym_identifier] = ACTIONS(153), - [anon_sym_SEMI] = ACTIONS(153), - [anon_sym_EQ] = ACTIONS(153), - [anon_sym_LPAREN] = ACTIONS(155), - [anon_sym_return] = ACTIONS(153), - [anon_sym_LBRACE] = ACTIONS(153), - [anon_sym_RBRACE] = ACTIONS(155), - [anon_sym_repeat] = ACTIONS(153), - [anon_sym_if] = ACTIONS(153), - [anon_sym_ifnot] = ACTIONS(153), - [anon_sym_do] = ACTIONS(153), - [anon_sym_while] = ACTIONS(153), - [anon_sym_try] = ACTIONS(153), - [anon_sym_PLUS_EQ] = ACTIONS(155), - [anon_sym_DASH_EQ] = ACTIONS(155), - [anon_sym_STAR_EQ] = ACTIONS(155), - [anon_sym_SLASH_EQ] = ACTIONS(155), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(155), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(155), - [anon_sym_PERCENT_EQ] = ACTIONS(155), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(155), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(155), - [anon_sym_LT_LT_EQ] = ACTIONS(155), - [anon_sym_GT_GT_EQ] = ACTIONS(155), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(155), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(155), - [anon_sym_AMP_EQ] = ACTIONS(155), - [anon_sym_PIPE_EQ] = ACTIONS(155), - [anon_sym_CARET_EQ] = ACTIONS(155), - [anon_sym_QMARK] = ACTIONS(155), - [anon_sym_EQ_EQ] = ACTIONS(155), - [anon_sym_LT] = ACTIONS(153), - [anon_sym_GT] = ACTIONS(153), - [anon_sym_LT_EQ] = ACTIONS(153), - [anon_sym_GT_EQ] = ACTIONS(155), - [anon_sym_BANG_EQ] = ACTIONS(155), - [anon_sym_LT_EQ_GT] = ACTIONS(155), - [anon_sym_LT_LT] = ACTIONS(153), - [anon_sym_GT_GT] = ACTIONS(153), - [anon_sym_TILDE_GT_GT] = ACTIONS(153), - [anon_sym_CARET_GT_GT] = ACTIONS(153), - [anon_sym_DASH] = ACTIONS(153), - [anon_sym_PLUS] = ACTIONS(153), - [anon_sym_PIPE] = ACTIONS(153), - [anon_sym_CARET] = ACTIONS(153), - [anon_sym_STAR] = ACTIONS(153), - [anon_sym_SLASH] = ACTIONS(153), - [anon_sym_PERCENT] = ACTIONS(153), - [anon_sym_TILDE_SLASH] = ACTIONS(153), - [anon_sym_CARET_SLASH] = ACTIONS(153), - [anon_sym_TILDE_PERCENT] = ACTIONS(153), - [anon_sym_CARET_PERCENT] = ACTIONS(153), - [anon_sym_SLASH_PERCENT] = ACTIONS(155), - [anon_sym_AMP] = ACTIONS(153), - [anon_sym_TILDE] = ACTIONS(153), - [anon_sym_DOT] = ACTIONS(155), - [anon_sym_LBRACK] = ACTIONS(155), - [anon_sym_int] = ACTIONS(153), - [anon_sym_cell] = ACTIONS(153), - [anon_sym_slice] = ACTIONS(153), - [anon_sym_builder] = ACTIONS(153), - [anon_sym_cont] = ACTIONS(153), - [anon_sym_tuple] = ACTIONS(153), - [sym_var_type] = ACTIONS(153), - [aux_sym_number_literal_token1] = ACTIONS(153), - [sym_string_literal] = ACTIONS(153), - [sym_number_string_literal] = ACTIONS(155), - [sym_slice_string_literal] = ACTIONS(155), - [sym_underscore] = ACTIONS(153), + [aux_sym__expr30_repeat1] = STATE(19), + [sym_identifier] = ACTIONS(215), + [anon_sym_SEMI] = ACTIONS(215), + [anon_sym_EQ] = ACTIONS(215), + [anon_sym_LPAREN] = ACTIONS(217), + [anon_sym_return] = ACTIONS(215), + [anon_sym_LBRACE] = ACTIONS(215), + [anon_sym_RBRACE] = ACTIONS(217), + [anon_sym_repeat] = ACTIONS(215), + [anon_sym_if] = ACTIONS(215), + [anon_sym_ifnot] = ACTIONS(215), + [anon_sym_do] = ACTIONS(215), + [anon_sym_while] = ACTIONS(215), + [anon_sym_try] = ACTIONS(215), + [anon_sym_PLUS_EQ] = ACTIONS(217), + [anon_sym_DASH_EQ] = ACTIONS(217), + [anon_sym_STAR_EQ] = ACTIONS(217), + [anon_sym_SLASH_EQ] = ACTIONS(217), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(217), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(217), + [anon_sym_PERCENT_EQ] = ACTIONS(217), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(217), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(217), + [anon_sym_LT_LT_EQ] = ACTIONS(217), + [anon_sym_GT_GT_EQ] = ACTIONS(217), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(217), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(217), + [anon_sym_AMP_EQ] = ACTIONS(217), + [anon_sym_PIPE_EQ] = ACTIONS(217), + [anon_sym_CARET_EQ] = ACTIONS(217), + [anon_sym_QMARK] = ACTIONS(217), + [anon_sym_EQ_EQ] = ACTIONS(217), + [anon_sym_LT] = ACTIONS(215), + [anon_sym_GT] = ACTIONS(215), + [anon_sym_LT_EQ] = ACTIONS(215), + [anon_sym_GT_EQ] = ACTIONS(217), + [anon_sym_BANG_EQ] = ACTIONS(217), + [anon_sym_LT_EQ_GT] = ACTIONS(217), + [anon_sym_LT_LT] = ACTIONS(215), + [anon_sym_GT_GT] = ACTIONS(215), + [anon_sym_TILDE_GT_GT] = ACTIONS(215), + [anon_sym_CARET_GT_GT] = ACTIONS(215), + [anon_sym_DASH] = ACTIONS(215), + [anon_sym_PLUS] = ACTIONS(215), + [anon_sym_PIPE] = ACTIONS(215), + [anon_sym_CARET] = ACTIONS(215), + [anon_sym_STAR] = ACTIONS(219), + [anon_sym_SLASH] = ACTIONS(219), + [anon_sym_PERCENT] = ACTIONS(219), + [anon_sym_TILDE_SLASH] = ACTIONS(219), + [anon_sym_CARET_SLASH] = ACTIONS(219), + [anon_sym_TILDE_PERCENT] = ACTIONS(219), + [anon_sym_CARET_PERCENT] = ACTIONS(219), + [anon_sym_SLASH_PERCENT] = ACTIONS(221), + [anon_sym_AMP] = ACTIONS(219), + [anon_sym_TILDE] = ACTIONS(215), + [anon_sym_LBRACK] = ACTIONS(217), + [anon_sym_int] = ACTIONS(215), + [anon_sym_cell] = ACTIONS(215), + [anon_sym_slice] = ACTIONS(215), + [anon_sym_builder] = ACTIONS(215), + [anon_sym_cont] = ACTIONS(215), + [anon_sym_tuple] = ACTIONS(215), + [sym_var_type] = ACTIONS(215), + [aux_sym_number_literal_token1] = ACTIONS(215), + [sym_string_literal] = ACTIONS(215), + [sym_number_string_literal] = ACTIONS(217), + [sym_slice_string_literal] = ACTIONS(217), + [sym_underscore] = ACTIONS(215), [sym_comment] = ACTIONS(3), }, [STATE(19)] = { - [sym_identifier] = ACTIONS(157), - [anon_sym_SEMI] = ACTIONS(157), - [anon_sym_EQ] = ACTIONS(157), - [anon_sym_LPAREN] = ACTIONS(159), - [anon_sym_return] = ACTIONS(157), - [anon_sym_LBRACE] = ACTIONS(157), - [anon_sym_RBRACE] = ACTIONS(159), - [anon_sym_repeat] = ACTIONS(157), - [anon_sym_if] = ACTIONS(157), - [anon_sym_ifnot] = ACTIONS(157), - [anon_sym_do] = ACTIONS(157), - [anon_sym_while] = ACTIONS(157), - [anon_sym_try] = ACTIONS(157), - [anon_sym_PLUS_EQ] = ACTIONS(159), - [anon_sym_DASH_EQ] = ACTIONS(159), - [anon_sym_STAR_EQ] = ACTIONS(159), - [anon_sym_SLASH_EQ] = ACTIONS(159), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(159), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(159), - [anon_sym_PERCENT_EQ] = ACTIONS(159), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(159), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(159), - [anon_sym_LT_LT_EQ] = ACTIONS(159), - [anon_sym_GT_GT_EQ] = ACTIONS(159), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(159), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(159), - [anon_sym_AMP_EQ] = ACTIONS(159), - [anon_sym_PIPE_EQ] = ACTIONS(159), - [anon_sym_CARET_EQ] = ACTIONS(159), - [anon_sym_QMARK] = ACTIONS(159), - [anon_sym_EQ_EQ] = ACTIONS(159), - [anon_sym_LT] = ACTIONS(157), - [anon_sym_GT] = ACTIONS(157), - [anon_sym_LT_EQ] = ACTIONS(157), - [anon_sym_GT_EQ] = ACTIONS(159), - [anon_sym_BANG_EQ] = ACTIONS(159), - [anon_sym_LT_EQ_GT] = ACTIONS(159), - [anon_sym_LT_LT] = ACTIONS(157), - [anon_sym_GT_GT] = ACTIONS(157), - [anon_sym_TILDE_GT_GT] = ACTIONS(157), - [anon_sym_CARET_GT_GT] = ACTIONS(157), - [anon_sym_DASH] = ACTIONS(157), - [anon_sym_PLUS] = ACTIONS(157), - [anon_sym_PIPE] = ACTIONS(157), - [anon_sym_CARET] = ACTIONS(157), - [anon_sym_STAR] = ACTIONS(157), - [anon_sym_SLASH] = ACTIONS(157), - [anon_sym_PERCENT] = ACTIONS(157), - [anon_sym_TILDE_SLASH] = ACTIONS(157), - [anon_sym_CARET_SLASH] = ACTIONS(157), - [anon_sym_TILDE_PERCENT] = ACTIONS(157), - [anon_sym_CARET_PERCENT] = ACTIONS(157), - [anon_sym_SLASH_PERCENT] = ACTIONS(159), - [anon_sym_AMP] = ACTIONS(157), - [anon_sym_TILDE] = ACTIONS(157), - [anon_sym_DOT] = ACTIONS(159), - [anon_sym_LBRACK] = ACTIONS(159), - [anon_sym_int] = ACTIONS(157), - [anon_sym_cell] = ACTIONS(157), - [anon_sym_slice] = ACTIONS(157), - [anon_sym_builder] = ACTIONS(157), - [anon_sym_cont] = ACTIONS(157), - [anon_sym_tuple] = ACTIONS(157), - [sym_var_type] = ACTIONS(157), - [aux_sym_number_literal_token1] = ACTIONS(157), - [sym_string_literal] = ACTIONS(157), - [sym_number_string_literal] = ACTIONS(159), - [sym_slice_string_literal] = ACTIONS(159), - [sym_underscore] = ACTIONS(157), + [aux_sym__expr30_repeat1] = STATE(19), + [sym_identifier] = ACTIONS(223), + [anon_sym_SEMI] = ACTIONS(223), + [anon_sym_EQ] = ACTIONS(223), + [anon_sym_LPAREN] = ACTIONS(225), + [anon_sym_return] = ACTIONS(223), + [anon_sym_LBRACE] = ACTIONS(223), + [anon_sym_RBRACE] = ACTIONS(225), + [anon_sym_repeat] = ACTIONS(223), + [anon_sym_if] = ACTIONS(223), + [anon_sym_ifnot] = ACTIONS(223), + [anon_sym_do] = ACTIONS(223), + [anon_sym_while] = ACTIONS(223), + [anon_sym_try] = ACTIONS(223), + [anon_sym_PLUS_EQ] = ACTIONS(225), + [anon_sym_DASH_EQ] = ACTIONS(225), + [anon_sym_STAR_EQ] = ACTIONS(225), + [anon_sym_SLASH_EQ] = ACTIONS(225), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(225), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(225), + [anon_sym_PERCENT_EQ] = ACTIONS(225), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(225), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(225), + [anon_sym_LT_LT_EQ] = ACTIONS(225), + [anon_sym_GT_GT_EQ] = ACTIONS(225), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(225), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(225), + [anon_sym_AMP_EQ] = ACTIONS(225), + [anon_sym_PIPE_EQ] = ACTIONS(225), + [anon_sym_CARET_EQ] = ACTIONS(225), + [anon_sym_QMARK] = ACTIONS(225), + [anon_sym_EQ_EQ] = ACTIONS(225), + [anon_sym_LT] = ACTIONS(223), + [anon_sym_GT] = ACTIONS(223), + [anon_sym_LT_EQ] = ACTIONS(223), + [anon_sym_GT_EQ] = ACTIONS(225), + [anon_sym_BANG_EQ] = ACTIONS(225), + [anon_sym_LT_EQ_GT] = ACTIONS(225), + [anon_sym_LT_LT] = ACTIONS(223), + [anon_sym_GT_GT] = ACTIONS(223), + [anon_sym_TILDE_GT_GT] = ACTIONS(223), + [anon_sym_CARET_GT_GT] = ACTIONS(223), + [anon_sym_DASH] = ACTIONS(223), + [anon_sym_PLUS] = ACTIONS(223), + [anon_sym_PIPE] = ACTIONS(223), + [anon_sym_CARET] = ACTIONS(223), + [anon_sym_STAR] = ACTIONS(227), + [anon_sym_SLASH] = ACTIONS(227), + [anon_sym_PERCENT] = ACTIONS(227), + [anon_sym_TILDE_SLASH] = ACTIONS(227), + [anon_sym_CARET_SLASH] = ACTIONS(227), + [anon_sym_TILDE_PERCENT] = ACTIONS(227), + [anon_sym_CARET_PERCENT] = ACTIONS(227), + [anon_sym_SLASH_PERCENT] = ACTIONS(230), + [anon_sym_AMP] = ACTIONS(227), + [anon_sym_TILDE] = ACTIONS(223), + [anon_sym_LBRACK] = ACTIONS(225), + [anon_sym_int] = ACTIONS(223), + [anon_sym_cell] = ACTIONS(223), + [anon_sym_slice] = ACTIONS(223), + [anon_sym_builder] = ACTIONS(223), + [anon_sym_cont] = ACTIONS(223), + [anon_sym_tuple] = ACTIONS(223), + [sym_var_type] = ACTIONS(223), + [aux_sym_number_literal_token1] = ACTIONS(223), + [sym_string_literal] = ACTIONS(223), + [sym_number_string_literal] = ACTIONS(225), + [sym_slice_string_literal] = ACTIONS(225), + [sym_underscore] = ACTIONS(223), [sym_comment] = ACTIONS(3), }, [STATE(20)] = { - [sym__statement] = STATE(16), - [sym_return_statement] = STATE(16), - [sym_block_statement] = STATE(16), - [sym_expression_statement] = STATE(16), - [sym_empty_statement] = STATE(16), - [sym_repeat_statement] = STATE(16), - [sym_if_statement] = STATE(16), - [sym_do_while_statement] = STATE(16), - [sym_while_statement] = STATE(16), - [sym_try_catch_statement] = STATE(16), - [sym__expression] = STATE(170), - [sym__expr10] = STATE(170), - [sym__expr13] = STATE(139), - [sym__expr15] = STATE(136), - [sym__expr17] = STATE(77), - [sym__expr20] = STATE(47), - [sym__expr30] = STATE(38), - [sym__expr75] = STATE(13), - [sym__expr80] = STATE(13), - [sym__expr90] = STATE(4), - [sym_function_application] = STATE(4), - [sym_local_vars_declaration] = STATE(4), - [sym_tuple_vars_declaration] = STATE(14), - [sym_tensor_vars_declaration] = STATE(14), - [sym_var_declaration] = STATE(14), - [sym__var_declaration_lhs] = STATE(14), - [sym__nontype_expr100] = STATE(4), - [sym__expr100] = STATE(4), - [sym_parenthesized_expression] = STATE(4), - [sym_tensor_expression] = STATE(4), - [sym_typed_tuple] = STATE(4), - [sym__type_hint] = STATE(391), - [sym_function_type] = STATE(391), - [sym__atomic_type] = STATE(250), - [sym__parenthesized_type] = STATE(250), - [sym_primitive_type] = STATE(250), - [sym_tensor_type] = STATE(250), - [sym_tuple_type] = STATE(250), - [sym_hole_type] = STATE(250), - [sym_type_identifier] = STATE(250), - [sym_number_literal] = STATE(4), - [aux_sym_block_statement_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(95), - [anon_sym_SEMI] = ACTIONS(97), - [anon_sym_LPAREN] = ACTIONS(99), - [anon_sym_return] = ACTIONS(101), - [anon_sym_LBRACE] = ACTIONS(103), - [anon_sym_RBRACE] = ACTIONS(161), - [anon_sym_repeat] = ACTIONS(107), - [anon_sym_if] = ACTIONS(109), - [anon_sym_ifnot] = ACTIONS(109), - [anon_sym_do] = ACTIONS(111), - [anon_sym_while] = ACTIONS(113), - [anon_sym_try] = ACTIONS(115), - [anon_sym_DASH] = ACTIONS(117), - [anon_sym_TILDE] = ACTIONS(119), - [anon_sym_LBRACK] = ACTIONS(121), - [anon_sym_int] = ACTIONS(25), - [anon_sym_cell] = ACTIONS(25), - [anon_sym_slice] = ACTIONS(25), - [anon_sym_builder] = ACTIONS(25), - [anon_sym_cont] = ACTIONS(25), - [anon_sym_tuple] = ACTIONS(25), - [sym_var_type] = ACTIONS(27), - [aux_sym_number_literal_token1] = ACTIONS(123), - [sym_string_literal] = ACTIONS(125), - [sym_number_string_literal] = ACTIONS(127), - [sym_slice_string_literal] = ACTIONS(129), - [sym_underscore] = ACTIONS(131), + [sym_identifier] = ACTIONS(184), + [anon_sym_SEMI] = ACTIONS(184), + [anon_sym_EQ] = ACTIONS(184), + [anon_sym_LPAREN] = ACTIONS(191), + [anon_sym_return] = ACTIONS(184), + [anon_sym_LBRACE] = ACTIONS(184), + [anon_sym_RBRACE] = ACTIONS(191), + [anon_sym_repeat] = ACTIONS(184), + [anon_sym_if] = ACTIONS(184), + [anon_sym_ifnot] = ACTIONS(184), + [anon_sym_do] = ACTIONS(184), + [anon_sym_while] = ACTIONS(184), + [anon_sym_try] = ACTIONS(184), + [anon_sym_PLUS_EQ] = ACTIONS(191), + [anon_sym_DASH_EQ] = ACTIONS(191), + [anon_sym_STAR_EQ] = ACTIONS(191), + [anon_sym_SLASH_EQ] = ACTIONS(191), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(191), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(191), + [anon_sym_PERCENT_EQ] = ACTIONS(191), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(191), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(191), + [anon_sym_LT_LT_EQ] = ACTIONS(191), + [anon_sym_GT_GT_EQ] = ACTIONS(191), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(191), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(191), + [anon_sym_AMP_EQ] = ACTIONS(191), + [anon_sym_PIPE_EQ] = ACTIONS(191), + [anon_sym_CARET_EQ] = ACTIONS(191), + [anon_sym_QMARK] = ACTIONS(191), + [anon_sym_EQ_EQ] = ACTIONS(191), + [anon_sym_LT] = ACTIONS(184), + [anon_sym_GT] = ACTIONS(184), + [anon_sym_LT_EQ] = ACTIONS(184), + [anon_sym_GT_EQ] = ACTIONS(191), + [anon_sym_BANG_EQ] = ACTIONS(191), + [anon_sym_LT_EQ_GT] = ACTIONS(191), + [anon_sym_LT_LT] = ACTIONS(184), + [anon_sym_GT_GT] = ACTIONS(184), + [anon_sym_TILDE_GT_GT] = ACTIONS(184), + [anon_sym_CARET_GT_GT] = ACTIONS(184), + [anon_sym_DASH] = ACTIONS(184), + [anon_sym_PLUS] = ACTIONS(184), + [anon_sym_PIPE] = ACTIONS(184), + [anon_sym_CARET] = ACTIONS(184), + [anon_sym_STAR] = ACTIONS(184), + [anon_sym_SLASH] = ACTIONS(184), + [anon_sym_PERCENT] = ACTIONS(184), + [anon_sym_TILDE_SLASH] = ACTIONS(184), + [anon_sym_CARET_SLASH] = ACTIONS(184), + [anon_sym_TILDE_PERCENT] = ACTIONS(184), + [anon_sym_CARET_PERCENT] = ACTIONS(184), + [anon_sym_SLASH_PERCENT] = ACTIONS(191), + [anon_sym_AMP] = ACTIONS(184), + [anon_sym_TILDE] = ACTIONS(184), + [anon_sym_DOT] = ACTIONS(191), + [anon_sym_LBRACK] = ACTIONS(191), + [anon_sym_int] = ACTIONS(184), + [anon_sym_cell] = ACTIONS(184), + [anon_sym_slice] = ACTIONS(184), + [anon_sym_builder] = ACTIONS(184), + [anon_sym_cont] = ACTIONS(184), + [anon_sym_tuple] = ACTIONS(184), + [sym_var_type] = ACTIONS(184), + [aux_sym_number_literal_token1] = ACTIONS(184), + [sym_string_literal] = ACTIONS(184), + [sym_number_string_literal] = ACTIONS(191), + [sym_slice_string_literal] = ACTIONS(191), + [sym_underscore] = ACTIONS(184), [sym_comment] = ACTIONS(3), }, [STATE(21)] = { - [sym_identifier] = ACTIONS(163), - [anon_sym_SEMI] = ACTIONS(163), - [anon_sym_EQ] = ACTIONS(163), - [anon_sym_LPAREN] = ACTIONS(165), - [anon_sym_return] = ACTIONS(163), - [anon_sym_LBRACE] = ACTIONS(163), - [anon_sym_RBRACE] = ACTIONS(165), - [anon_sym_repeat] = ACTIONS(163), - [anon_sym_if] = ACTIONS(163), - [anon_sym_ifnot] = ACTIONS(163), - [anon_sym_do] = ACTIONS(163), - [anon_sym_while] = ACTIONS(163), - [anon_sym_try] = ACTIONS(163), - [anon_sym_PLUS_EQ] = ACTIONS(165), - [anon_sym_DASH_EQ] = ACTIONS(165), - [anon_sym_STAR_EQ] = ACTIONS(165), - [anon_sym_SLASH_EQ] = ACTIONS(165), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(165), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(165), - [anon_sym_PERCENT_EQ] = ACTIONS(165), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(165), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(165), - [anon_sym_LT_LT_EQ] = ACTIONS(165), - [anon_sym_GT_GT_EQ] = ACTIONS(165), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(165), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(165), - [anon_sym_AMP_EQ] = ACTIONS(165), - [anon_sym_PIPE_EQ] = ACTIONS(165), - [anon_sym_CARET_EQ] = ACTIONS(165), - [anon_sym_QMARK] = ACTIONS(165), - [anon_sym_EQ_EQ] = ACTIONS(165), - [anon_sym_LT] = ACTIONS(163), - [anon_sym_GT] = ACTIONS(163), - [anon_sym_LT_EQ] = ACTIONS(163), - [anon_sym_GT_EQ] = ACTIONS(165), - [anon_sym_BANG_EQ] = ACTIONS(165), - [anon_sym_LT_EQ_GT] = ACTIONS(165), - [anon_sym_LT_LT] = ACTIONS(163), - [anon_sym_GT_GT] = ACTIONS(163), - [anon_sym_TILDE_GT_GT] = ACTIONS(163), - [anon_sym_CARET_GT_GT] = ACTIONS(163), - [anon_sym_DASH] = ACTIONS(163), - [anon_sym_PLUS] = ACTIONS(163), - [anon_sym_PIPE] = ACTIONS(163), - [anon_sym_CARET] = ACTIONS(163), - [anon_sym_STAR] = ACTIONS(163), - [anon_sym_SLASH] = ACTIONS(163), - [anon_sym_PERCENT] = ACTIONS(163), - [anon_sym_TILDE_SLASH] = ACTIONS(163), - [anon_sym_CARET_SLASH] = ACTIONS(163), - [anon_sym_TILDE_PERCENT] = ACTIONS(163), - [anon_sym_CARET_PERCENT] = ACTIONS(163), - [anon_sym_SLASH_PERCENT] = ACTIONS(165), - [anon_sym_AMP] = ACTIONS(163), - [anon_sym_TILDE] = ACTIONS(163), - [anon_sym_DOT] = ACTIONS(165), - [anon_sym_LBRACK] = ACTIONS(165), - [anon_sym_int] = ACTIONS(163), - [anon_sym_cell] = ACTIONS(163), - [anon_sym_slice] = ACTIONS(163), - [anon_sym_builder] = ACTIONS(163), - [anon_sym_cont] = ACTIONS(163), - [anon_sym_tuple] = ACTIONS(163), - [sym_var_type] = ACTIONS(163), - [aux_sym_number_literal_token1] = ACTIONS(163), - [sym_string_literal] = ACTIONS(163), - [sym_number_string_literal] = ACTIONS(165), - [sym_slice_string_literal] = ACTIONS(165), - [sym_underscore] = ACTIONS(163), + [sym_identifier] = ACTIONS(233), + [anon_sym_SEMI] = ACTIONS(233), + [anon_sym_EQ] = ACTIONS(233), + [anon_sym_LPAREN] = ACTIONS(235), + [anon_sym_return] = ACTIONS(233), + [anon_sym_LBRACE] = ACTIONS(233), + [anon_sym_RBRACE] = ACTIONS(235), + [anon_sym_repeat] = ACTIONS(233), + [anon_sym_if] = ACTIONS(233), + [anon_sym_ifnot] = ACTIONS(233), + [anon_sym_do] = ACTIONS(233), + [anon_sym_while] = ACTIONS(233), + [anon_sym_try] = ACTIONS(233), + [anon_sym_PLUS_EQ] = ACTIONS(235), + [anon_sym_DASH_EQ] = ACTIONS(235), + [anon_sym_STAR_EQ] = ACTIONS(235), + [anon_sym_SLASH_EQ] = ACTIONS(235), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(235), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(235), + [anon_sym_PERCENT_EQ] = ACTIONS(235), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(235), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(235), + [anon_sym_LT_LT_EQ] = ACTIONS(235), + [anon_sym_GT_GT_EQ] = ACTIONS(235), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(235), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(235), + [anon_sym_AMP_EQ] = ACTIONS(235), + [anon_sym_PIPE_EQ] = ACTIONS(235), + [anon_sym_CARET_EQ] = ACTIONS(235), + [anon_sym_QMARK] = ACTIONS(235), + [anon_sym_EQ_EQ] = ACTIONS(235), + [anon_sym_LT] = ACTIONS(233), + [anon_sym_GT] = ACTIONS(233), + [anon_sym_LT_EQ] = ACTIONS(233), + [anon_sym_GT_EQ] = ACTIONS(235), + [anon_sym_BANG_EQ] = ACTIONS(235), + [anon_sym_LT_EQ_GT] = ACTIONS(235), + [anon_sym_LT_LT] = ACTIONS(233), + [anon_sym_GT_GT] = ACTIONS(233), + [anon_sym_TILDE_GT_GT] = ACTIONS(233), + [anon_sym_CARET_GT_GT] = ACTIONS(233), + [anon_sym_DASH] = ACTIONS(233), + [anon_sym_PLUS] = ACTIONS(233), + [anon_sym_PIPE] = ACTIONS(233), + [anon_sym_CARET] = ACTIONS(233), + [anon_sym_STAR] = ACTIONS(233), + [anon_sym_SLASH] = ACTIONS(233), + [anon_sym_PERCENT] = ACTIONS(233), + [anon_sym_TILDE_SLASH] = ACTIONS(233), + [anon_sym_CARET_SLASH] = ACTIONS(233), + [anon_sym_TILDE_PERCENT] = ACTIONS(233), + [anon_sym_CARET_PERCENT] = ACTIONS(233), + [anon_sym_SLASH_PERCENT] = ACTIONS(235), + [anon_sym_AMP] = ACTIONS(233), + [anon_sym_TILDE] = ACTIONS(233), + [anon_sym_DOT] = ACTIONS(235), + [anon_sym_LBRACK] = ACTIONS(235), + [anon_sym_int] = ACTIONS(233), + [anon_sym_cell] = ACTIONS(233), + [anon_sym_slice] = ACTIONS(233), + [anon_sym_builder] = ACTIONS(233), + [anon_sym_cont] = ACTIONS(233), + [anon_sym_tuple] = ACTIONS(233), + [sym_var_type] = ACTIONS(233), + [aux_sym_number_literal_token1] = ACTIONS(233), + [sym_string_literal] = ACTIONS(233), + [sym_number_string_literal] = ACTIONS(235), + [sym_slice_string_literal] = ACTIONS(235), + [sym_underscore] = ACTIONS(233), [sym_comment] = ACTIONS(3), }, [STATE(22)] = { - [aux_sym__expr30_repeat1] = STATE(22), - [sym_identifier] = ACTIONS(167), - [anon_sym_SEMI] = ACTIONS(167), - [anon_sym_EQ] = ACTIONS(167), - [anon_sym_LPAREN] = ACTIONS(169), - [anon_sym_return] = ACTIONS(167), - [anon_sym_LBRACE] = ACTIONS(167), - [anon_sym_RBRACE] = ACTIONS(169), - [anon_sym_repeat] = ACTIONS(167), - [anon_sym_if] = ACTIONS(167), - [anon_sym_ifnot] = ACTIONS(167), - [anon_sym_do] = ACTIONS(167), - [anon_sym_while] = ACTIONS(167), - [anon_sym_try] = ACTIONS(167), - [anon_sym_PLUS_EQ] = ACTIONS(169), - [anon_sym_DASH_EQ] = ACTIONS(169), - [anon_sym_STAR_EQ] = ACTIONS(169), - [anon_sym_SLASH_EQ] = ACTIONS(169), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(169), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(169), - [anon_sym_PERCENT_EQ] = ACTIONS(169), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(169), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(169), - [anon_sym_LT_LT_EQ] = ACTIONS(169), - [anon_sym_GT_GT_EQ] = ACTIONS(169), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(169), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(169), - [anon_sym_AMP_EQ] = ACTIONS(169), - [anon_sym_PIPE_EQ] = ACTIONS(169), - [anon_sym_CARET_EQ] = ACTIONS(169), - [anon_sym_QMARK] = ACTIONS(169), - [anon_sym_EQ_EQ] = ACTIONS(169), - [anon_sym_LT] = ACTIONS(167), - [anon_sym_GT] = ACTIONS(167), - [anon_sym_LT_EQ] = ACTIONS(167), - [anon_sym_GT_EQ] = ACTIONS(169), - [anon_sym_BANG_EQ] = ACTIONS(169), - [anon_sym_LT_EQ_GT] = ACTIONS(169), - [anon_sym_LT_LT] = ACTIONS(167), - [anon_sym_GT_GT] = ACTIONS(167), - [anon_sym_TILDE_GT_GT] = ACTIONS(167), - [anon_sym_CARET_GT_GT] = ACTIONS(167), - [anon_sym_DASH] = ACTIONS(167), - [anon_sym_PLUS] = ACTIONS(167), - [anon_sym_PIPE] = ACTIONS(167), - [anon_sym_CARET] = ACTIONS(167), - [anon_sym_STAR] = ACTIONS(171), - [anon_sym_SLASH] = ACTIONS(171), - [anon_sym_PERCENT] = ACTIONS(171), - [anon_sym_TILDE_SLASH] = ACTIONS(171), - [anon_sym_CARET_SLASH] = ACTIONS(171), - [anon_sym_TILDE_PERCENT] = ACTIONS(171), - [anon_sym_CARET_PERCENT] = ACTIONS(171), - [anon_sym_SLASH_PERCENT] = ACTIONS(174), - [anon_sym_AMP] = ACTIONS(171), - [anon_sym_TILDE] = ACTIONS(167), - [anon_sym_LBRACK] = ACTIONS(169), - [anon_sym_int] = ACTIONS(167), - [anon_sym_cell] = ACTIONS(167), - [anon_sym_slice] = ACTIONS(167), - [anon_sym_builder] = ACTIONS(167), - [anon_sym_cont] = ACTIONS(167), - [anon_sym_tuple] = ACTIONS(167), - [sym_var_type] = ACTIONS(167), - [aux_sym_number_literal_token1] = ACTIONS(167), - [sym_string_literal] = ACTIONS(167), - [sym_number_string_literal] = ACTIONS(169), - [sym_slice_string_literal] = ACTIONS(169), - [sym_underscore] = ACTIONS(167), + [sym_identifier] = ACTIONS(237), + [anon_sym_SEMI] = ACTIONS(237), + [anon_sym_EQ] = ACTIONS(237), + [anon_sym_LPAREN] = ACTIONS(239), + [anon_sym_return] = ACTIONS(237), + [anon_sym_LBRACE] = ACTIONS(237), + [anon_sym_RBRACE] = ACTIONS(239), + [anon_sym_repeat] = ACTIONS(237), + [anon_sym_if] = ACTIONS(237), + [anon_sym_ifnot] = ACTIONS(237), + [anon_sym_do] = ACTIONS(237), + [anon_sym_while] = ACTIONS(237), + [anon_sym_try] = ACTIONS(237), + [anon_sym_PLUS_EQ] = ACTIONS(239), + [anon_sym_DASH_EQ] = ACTIONS(239), + [anon_sym_STAR_EQ] = ACTIONS(239), + [anon_sym_SLASH_EQ] = ACTIONS(239), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(239), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(239), + [anon_sym_PERCENT_EQ] = ACTIONS(239), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(239), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(239), + [anon_sym_LT_LT_EQ] = ACTIONS(239), + [anon_sym_GT_GT_EQ] = ACTIONS(239), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(239), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(239), + [anon_sym_AMP_EQ] = ACTIONS(239), + [anon_sym_PIPE_EQ] = ACTIONS(239), + [anon_sym_CARET_EQ] = ACTIONS(239), + [anon_sym_QMARK] = ACTIONS(239), + [anon_sym_EQ_EQ] = ACTIONS(239), + [anon_sym_LT] = ACTIONS(237), + [anon_sym_GT] = ACTIONS(237), + [anon_sym_LT_EQ] = ACTIONS(237), + [anon_sym_GT_EQ] = ACTIONS(239), + [anon_sym_BANG_EQ] = ACTIONS(239), + [anon_sym_LT_EQ_GT] = ACTIONS(239), + [anon_sym_LT_LT] = ACTIONS(237), + [anon_sym_GT_GT] = ACTIONS(237), + [anon_sym_TILDE_GT_GT] = ACTIONS(237), + [anon_sym_CARET_GT_GT] = ACTIONS(237), + [anon_sym_DASH] = ACTIONS(237), + [anon_sym_PLUS] = ACTIONS(237), + [anon_sym_PIPE] = ACTIONS(237), + [anon_sym_CARET] = ACTIONS(237), + [anon_sym_STAR] = ACTIONS(237), + [anon_sym_SLASH] = ACTIONS(237), + [anon_sym_PERCENT] = ACTIONS(237), + [anon_sym_TILDE_SLASH] = ACTIONS(237), + [anon_sym_CARET_SLASH] = ACTIONS(237), + [anon_sym_TILDE_PERCENT] = ACTIONS(237), + [anon_sym_CARET_PERCENT] = ACTIONS(237), + [anon_sym_SLASH_PERCENT] = ACTIONS(239), + [anon_sym_AMP] = ACTIONS(237), + [anon_sym_TILDE] = ACTIONS(237), + [anon_sym_DOT] = ACTIONS(239), + [anon_sym_LBRACK] = ACTIONS(239), + [anon_sym_int] = ACTIONS(237), + [anon_sym_cell] = ACTIONS(237), + [anon_sym_slice] = ACTIONS(237), + [anon_sym_builder] = ACTIONS(237), + [anon_sym_cont] = ACTIONS(237), + [anon_sym_tuple] = ACTIONS(237), + [sym_var_type] = ACTIONS(237), + [aux_sym_number_literal_token1] = ACTIONS(237), + [sym_string_literal] = ACTIONS(237), + [sym_number_string_literal] = ACTIONS(239), + [sym_slice_string_literal] = ACTIONS(239), + [sym_underscore] = ACTIONS(237), [sym_comment] = ACTIONS(3), }, [STATE(23)] = { - [sym_identifier] = ACTIONS(76), - [anon_sym_SEMI] = ACTIONS(76), - [anon_sym_EQ] = ACTIONS(76), - [anon_sym_LPAREN] = ACTIONS(78), - [anon_sym_return] = ACTIONS(76), - [anon_sym_LBRACE] = ACTIONS(76), - [anon_sym_RBRACE] = ACTIONS(78), - [anon_sym_repeat] = ACTIONS(76), - [anon_sym_if] = ACTIONS(76), - [anon_sym_ifnot] = ACTIONS(76), - [anon_sym_do] = ACTIONS(76), - [anon_sym_while] = ACTIONS(76), - [anon_sym_try] = ACTIONS(76), - [anon_sym_PLUS_EQ] = ACTIONS(78), - [anon_sym_DASH_EQ] = ACTIONS(78), - [anon_sym_STAR_EQ] = ACTIONS(78), - [anon_sym_SLASH_EQ] = ACTIONS(78), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(78), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(78), - [anon_sym_PERCENT_EQ] = ACTIONS(78), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(78), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(78), - [anon_sym_LT_LT_EQ] = ACTIONS(78), - [anon_sym_GT_GT_EQ] = ACTIONS(78), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(78), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(78), - [anon_sym_AMP_EQ] = ACTIONS(78), - [anon_sym_PIPE_EQ] = ACTIONS(78), - [anon_sym_CARET_EQ] = ACTIONS(78), - [anon_sym_QMARK] = ACTIONS(78), - [anon_sym_EQ_EQ] = ACTIONS(78), - [anon_sym_LT] = ACTIONS(76), - [anon_sym_GT] = ACTIONS(76), - [anon_sym_LT_EQ] = ACTIONS(76), - [anon_sym_GT_EQ] = ACTIONS(78), - [anon_sym_BANG_EQ] = ACTIONS(78), - [anon_sym_LT_EQ_GT] = ACTIONS(78), - [anon_sym_LT_LT] = ACTIONS(76), - [anon_sym_GT_GT] = ACTIONS(76), - [anon_sym_TILDE_GT_GT] = ACTIONS(76), - [anon_sym_CARET_GT_GT] = ACTIONS(76), - [anon_sym_DASH] = ACTIONS(76), - [anon_sym_PLUS] = ACTIONS(76), - [anon_sym_PIPE] = ACTIONS(76), - [anon_sym_CARET] = ACTIONS(76), - [anon_sym_STAR] = ACTIONS(76), - [anon_sym_SLASH] = ACTIONS(76), - [anon_sym_PERCENT] = ACTIONS(76), - [anon_sym_TILDE_SLASH] = ACTIONS(76), - [anon_sym_CARET_SLASH] = ACTIONS(76), - [anon_sym_TILDE_PERCENT] = ACTIONS(76), - [anon_sym_CARET_PERCENT] = ACTIONS(76), - [anon_sym_SLASH_PERCENT] = ACTIONS(78), - [anon_sym_AMP] = ACTIONS(76), - [anon_sym_TILDE] = ACTIONS(76), - [anon_sym_DOT] = ACTIONS(78), - [anon_sym_LBRACK] = ACTIONS(78), - [anon_sym_int] = ACTIONS(76), - [anon_sym_cell] = ACTIONS(76), - [anon_sym_slice] = ACTIONS(76), - [anon_sym_builder] = ACTIONS(76), - [anon_sym_cont] = ACTIONS(76), - [anon_sym_tuple] = ACTIONS(76), - [sym_var_type] = ACTIONS(76), - [aux_sym_number_literal_token1] = ACTIONS(76), - [sym_string_literal] = ACTIONS(76), - [sym_number_string_literal] = ACTIONS(78), - [sym_slice_string_literal] = ACTIONS(78), - [sym_underscore] = ACTIONS(76), + [sym_identifier] = ACTIONS(241), + [anon_sym_SEMI] = ACTIONS(241), + [anon_sym_EQ] = ACTIONS(241), + [anon_sym_LPAREN] = ACTIONS(243), + [anon_sym_return] = ACTIONS(241), + [anon_sym_LBRACE] = ACTIONS(241), + [anon_sym_RBRACE] = ACTIONS(243), + [anon_sym_repeat] = ACTIONS(241), + [anon_sym_if] = ACTIONS(241), + [anon_sym_ifnot] = ACTIONS(241), + [anon_sym_do] = ACTIONS(241), + [anon_sym_while] = ACTIONS(241), + [anon_sym_try] = ACTIONS(241), + [anon_sym_PLUS_EQ] = ACTIONS(243), + [anon_sym_DASH_EQ] = ACTIONS(243), + [anon_sym_STAR_EQ] = ACTIONS(243), + [anon_sym_SLASH_EQ] = ACTIONS(243), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(243), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(243), + [anon_sym_PERCENT_EQ] = ACTIONS(243), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(243), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(243), + [anon_sym_LT_LT_EQ] = ACTIONS(243), + [anon_sym_GT_GT_EQ] = ACTIONS(243), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(243), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(243), + [anon_sym_AMP_EQ] = ACTIONS(243), + [anon_sym_PIPE_EQ] = ACTIONS(243), + [anon_sym_CARET_EQ] = ACTIONS(243), + [anon_sym_QMARK] = ACTIONS(243), + [anon_sym_EQ_EQ] = ACTIONS(243), + [anon_sym_LT] = ACTIONS(241), + [anon_sym_GT] = ACTIONS(241), + [anon_sym_LT_EQ] = ACTIONS(241), + [anon_sym_GT_EQ] = ACTIONS(243), + [anon_sym_BANG_EQ] = ACTIONS(243), + [anon_sym_LT_EQ_GT] = ACTIONS(243), + [anon_sym_LT_LT] = ACTIONS(241), + [anon_sym_GT_GT] = ACTIONS(241), + [anon_sym_TILDE_GT_GT] = ACTIONS(241), + [anon_sym_CARET_GT_GT] = ACTIONS(241), + [anon_sym_DASH] = ACTIONS(241), + [anon_sym_PLUS] = ACTIONS(241), + [anon_sym_PIPE] = ACTIONS(241), + [anon_sym_CARET] = ACTIONS(241), + [anon_sym_STAR] = ACTIONS(241), + [anon_sym_SLASH] = ACTIONS(241), + [anon_sym_PERCENT] = ACTIONS(241), + [anon_sym_TILDE_SLASH] = ACTIONS(241), + [anon_sym_CARET_SLASH] = ACTIONS(241), + [anon_sym_TILDE_PERCENT] = ACTIONS(241), + [anon_sym_CARET_PERCENT] = ACTIONS(241), + [anon_sym_SLASH_PERCENT] = ACTIONS(243), + [anon_sym_AMP] = ACTIONS(241), + [anon_sym_TILDE] = ACTIONS(241), + [anon_sym_DOT] = ACTIONS(243), + [anon_sym_LBRACK] = ACTIONS(243), + [anon_sym_int] = ACTIONS(241), + [anon_sym_cell] = ACTIONS(241), + [anon_sym_slice] = ACTIONS(241), + [anon_sym_builder] = ACTIONS(241), + [anon_sym_cont] = ACTIONS(241), + [anon_sym_tuple] = ACTIONS(241), + [sym_var_type] = ACTIONS(241), + [aux_sym_number_literal_token1] = ACTIONS(241), + [sym_string_literal] = ACTIONS(241), + [sym_number_string_literal] = ACTIONS(243), + [sym_slice_string_literal] = ACTIONS(243), + [sym_underscore] = ACTIONS(241), [sym_comment] = ACTIONS(3), }, [STATE(24)] = { - [sym__statement] = STATE(24), - [sym_return_statement] = STATE(24), - [sym_block_statement] = STATE(24), - [sym_expression_statement] = STATE(24), - [sym_empty_statement] = STATE(24), - [sym_repeat_statement] = STATE(24), - [sym_if_statement] = STATE(24), - [sym_do_while_statement] = STATE(24), - [sym_while_statement] = STATE(24), - [sym_try_catch_statement] = STATE(24), - [sym__expression] = STATE(170), - [sym__expr10] = STATE(170), - [sym__expr13] = STATE(139), - [sym__expr15] = STATE(136), - [sym__expr17] = STATE(77), - [sym__expr20] = STATE(47), - [sym__expr30] = STATE(38), - [sym__expr75] = STATE(13), - [sym__expr80] = STATE(13), - [sym__expr90] = STATE(4), - [sym_function_application] = STATE(4), - [sym_local_vars_declaration] = STATE(4), - [sym_tuple_vars_declaration] = STATE(14), - [sym_tensor_vars_declaration] = STATE(14), - [sym_var_declaration] = STATE(14), - [sym__var_declaration_lhs] = STATE(14), - [sym__nontype_expr100] = STATE(4), - [sym__expr100] = STATE(4), - [sym_parenthesized_expression] = STATE(4), - [sym_tensor_expression] = STATE(4), - [sym_typed_tuple] = STATE(4), - [sym__type_hint] = STATE(391), - [sym_function_type] = STATE(391), - [sym__atomic_type] = STATE(250), - [sym__parenthesized_type] = STATE(250), - [sym_primitive_type] = STATE(250), - [sym_tensor_type] = STATE(250), - [sym_tuple_type] = STATE(250), - [sym_hole_type] = STATE(250), - [sym_type_identifier] = STATE(250), - [sym_number_literal] = STATE(4), - [aux_sym_block_statement_repeat1] = STATE(24), - [sym_identifier] = ACTIONS(177), - [anon_sym_SEMI] = ACTIONS(180), - [anon_sym_LPAREN] = ACTIONS(183), - [anon_sym_return] = ACTIONS(186), - [anon_sym_LBRACE] = ACTIONS(189), - [anon_sym_RBRACE] = ACTIONS(192), - [anon_sym_repeat] = ACTIONS(194), - [anon_sym_if] = ACTIONS(197), - [anon_sym_ifnot] = ACTIONS(197), - [anon_sym_do] = ACTIONS(200), - [anon_sym_while] = ACTIONS(203), - [anon_sym_try] = ACTIONS(206), - [anon_sym_DASH] = ACTIONS(209), - [anon_sym_TILDE] = ACTIONS(212), - [anon_sym_LBRACK] = ACTIONS(215), - [anon_sym_int] = ACTIONS(218), - [anon_sym_cell] = ACTIONS(218), - [anon_sym_slice] = ACTIONS(218), - [anon_sym_builder] = ACTIONS(218), - [anon_sym_cont] = ACTIONS(218), - [anon_sym_tuple] = ACTIONS(218), - [sym_var_type] = ACTIONS(221), - [aux_sym_number_literal_token1] = ACTIONS(224), - [sym_string_literal] = ACTIONS(227), - [sym_number_string_literal] = ACTIONS(230), - [sym_slice_string_literal] = ACTIONS(233), - [sym_underscore] = ACTIONS(236), + [sym_identifier] = ACTIONS(245), + [anon_sym_SEMI] = ACTIONS(245), + [anon_sym_EQ] = ACTIONS(245), + [anon_sym_LPAREN] = ACTIONS(247), + [anon_sym_return] = ACTIONS(245), + [anon_sym_LBRACE] = ACTIONS(245), + [anon_sym_RBRACE] = ACTIONS(247), + [anon_sym_repeat] = ACTIONS(245), + [anon_sym_if] = ACTIONS(245), + [anon_sym_ifnot] = ACTIONS(245), + [anon_sym_do] = ACTIONS(245), + [anon_sym_while] = ACTIONS(245), + [anon_sym_try] = ACTIONS(245), + [anon_sym_PLUS_EQ] = ACTIONS(247), + [anon_sym_DASH_EQ] = ACTIONS(247), + [anon_sym_STAR_EQ] = ACTIONS(247), + [anon_sym_SLASH_EQ] = ACTIONS(247), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(247), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(247), + [anon_sym_PERCENT_EQ] = ACTIONS(247), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(247), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(247), + [anon_sym_LT_LT_EQ] = ACTIONS(247), + [anon_sym_GT_GT_EQ] = ACTIONS(247), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(247), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(247), + [anon_sym_AMP_EQ] = ACTIONS(247), + [anon_sym_PIPE_EQ] = ACTIONS(247), + [anon_sym_CARET_EQ] = ACTIONS(247), + [anon_sym_QMARK] = ACTIONS(247), + [anon_sym_EQ_EQ] = ACTIONS(247), + [anon_sym_LT] = ACTIONS(245), + [anon_sym_GT] = ACTIONS(245), + [anon_sym_LT_EQ] = ACTIONS(245), + [anon_sym_GT_EQ] = ACTIONS(247), + [anon_sym_BANG_EQ] = ACTIONS(247), + [anon_sym_LT_EQ_GT] = ACTIONS(247), + [anon_sym_LT_LT] = ACTIONS(245), + [anon_sym_GT_GT] = ACTIONS(245), + [anon_sym_TILDE_GT_GT] = ACTIONS(245), + [anon_sym_CARET_GT_GT] = ACTIONS(245), + [anon_sym_DASH] = ACTIONS(245), + [anon_sym_PLUS] = ACTIONS(245), + [anon_sym_PIPE] = ACTIONS(245), + [anon_sym_CARET] = ACTIONS(245), + [anon_sym_STAR] = ACTIONS(245), + [anon_sym_SLASH] = ACTIONS(245), + [anon_sym_PERCENT] = ACTIONS(245), + [anon_sym_TILDE_SLASH] = ACTIONS(245), + [anon_sym_CARET_SLASH] = ACTIONS(245), + [anon_sym_TILDE_PERCENT] = ACTIONS(245), + [anon_sym_CARET_PERCENT] = ACTIONS(245), + [anon_sym_SLASH_PERCENT] = ACTIONS(247), + [anon_sym_AMP] = ACTIONS(245), + [anon_sym_TILDE] = ACTIONS(245), + [anon_sym_DOT] = ACTIONS(247), + [anon_sym_LBRACK] = ACTIONS(247), + [anon_sym_int] = ACTIONS(245), + [anon_sym_cell] = ACTIONS(245), + [anon_sym_slice] = ACTIONS(245), + [anon_sym_builder] = ACTIONS(245), + [anon_sym_cont] = ACTIONS(245), + [anon_sym_tuple] = ACTIONS(245), + [sym_var_type] = ACTIONS(245), + [aux_sym_number_literal_token1] = ACTIONS(245), + [sym_string_literal] = ACTIONS(245), + [sym_number_string_literal] = ACTIONS(247), + [sym_slice_string_literal] = ACTIONS(247), + [sym_underscore] = ACTIONS(245), [sym_comment] = ACTIONS(3), }, [STATE(25)] = { - [sym_identifier] = ACTIONS(239), - [anon_sym_SEMI] = ACTIONS(239), - [anon_sym_EQ] = ACTIONS(239), - [anon_sym_LPAREN] = ACTIONS(241), - [anon_sym_return] = ACTIONS(239), - [anon_sym_LBRACE] = ACTIONS(239), - [anon_sym_RBRACE] = ACTIONS(241), - [anon_sym_repeat] = ACTIONS(239), - [anon_sym_if] = ACTIONS(239), - [anon_sym_ifnot] = ACTIONS(239), - [anon_sym_do] = ACTIONS(239), - [anon_sym_while] = ACTIONS(239), - [anon_sym_try] = ACTIONS(239), - [anon_sym_PLUS_EQ] = ACTIONS(241), - [anon_sym_DASH_EQ] = ACTIONS(241), - [anon_sym_STAR_EQ] = ACTIONS(241), - [anon_sym_SLASH_EQ] = ACTIONS(241), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(241), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(241), - [anon_sym_PERCENT_EQ] = ACTIONS(241), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(241), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(241), - [anon_sym_LT_LT_EQ] = ACTIONS(241), - [anon_sym_GT_GT_EQ] = ACTIONS(241), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(241), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(241), - [anon_sym_AMP_EQ] = ACTIONS(241), - [anon_sym_PIPE_EQ] = ACTIONS(241), - [anon_sym_CARET_EQ] = ACTIONS(241), - [anon_sym_QMARK] = ACTIONS(241), - [anon_sym_EQ_EQ] = ACTIONS(241), - [anon_sym_LT] = ACTIONS(239), - [anon_sym_GT] = ACTIONS(239), - [anon_sym_LT_EQ] = ACTIONS(239), - [anon_sym_GT_EQ] = ACTIONS(241), - [anon_sym_BANG_EQ] = ACTIONS(241), - [anon_sym_LT_EQ_GT] = ACTIONS(241), - [anon_sym_LT_LT] = ACTIONS(239), - [anon_sym_GT_GT] = ACTIONS(239), - [anon_sym_TILDE_GT_GT] = ACTIONS(239), - [anon_sym_CARET_GT_GT] = ACTIONS(239), - [anon_sym_DASH] = ACTIONS(239), - [anon_sym_PLUS] = ACTIONS(239), - [anon_sym_PIPE] = ACTIONS(239), - [anon_sym_CARET] = ACTIONS(239), - [anon_sym_STAR] = ACTIONS(239), - [anon_sym_SLASH] = ACTIONS(239), - [anon_sym_PERCENT] = ACTIONS(239), - [anon_sym_TILDE_SLASH] = ACTIONS(239), - [anon_sym_CARET_SLASH] = ACTIONS(239), - [anon_sym_TILDE_PERCENT] = ACTIONS(239), - [anon_sym_CARET_PERCENT] = ACTIONS(239), - [anon_sym_SLASH_PERCENT] = ACTIONS(241), - [anon_sym_AMP] = ACTIONS(239), - [anon_sym_TILDE] = ACTIONS(239), - [anon_sym_DOT] = ACTIONS(241), - [anon_sym_LBRACK] = ACTIONS(241), - [anon_sym_int] = ACTIONS(239), - [anon_sym_cell] = ACTIONS(239), - [anon_sym_slice] = ACTIONS(239), - [anon_sym_builder] = ACTIONS(239), - [anon_sym_cont] = ACTIONS(239), - [anon_sym_tuple] = ACTIONS(239), - [sym_var_type] = ACTIONS(239), - [aux_sym_number_literal_token1] = ACTIONS(239), - [sym_string_literal] = ACTIONS(239), - [sym_number_string_literal] = ACTIONS(241), - [sym_slice_string_literal] = ACTIONS(241), - [sym_underscore] = ACTIONS(239), + [sym_identifier] = ACTIONS(249), + [anon_sym_SEMI] = ACTIONS(249), + [anon_sym_EQ] = ACTIONS(249), + [anon_sym_LPAREN] = ACTIONS(251), + [anon_sym_return] = ACTIONS(249), + [anon_sym_LBRACE] = ACTIONS(249), + [anon_sym_RBRACE] = ACTIONS(251), + [anon_sym_repeat] = ACTIONS(249), + [anon_sym_if] = ACTIONS(249), + [anon_sym_ifnot] = ACTIONS(249), + [anon_sym_do] = ACTIONS(249), + [anon_sym_while] = ACTIONS(249), + [anon_sym_try] = ACTIONS(249), + [anon_sym_PLUS_EQ] = ACTIONS(251), + [anon_sym_DASH_EQ] = ACTIONS(251), + [anon_sym_STAR_EQ] = ACTIONS(251), + [anon_sym_SLASH_EQ] = ACTIONS(251), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(251), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(251), + [anon_sym_PERCENT_EQ] = ACTIONS(251), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(251), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(251), + [anon_sym_LT_LT_EQ] = ACTIONS(251), + [anon_sym_GT_GT_EQ] = ACTIONS(251), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(251), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(251), + [anon_sym_AMP_EQ] = ACTIONS(251), + [anon_sym_PIPE_EQ] = ACTIONS(251), + [anon_sym_CARET_EQ] = ACTIONS(251), + [anon_sym_QMARK] = ACTIONS(251), + [anon_sym_EQ_EQ] = ACTIONS(251), + [anon_sym_LT] = ACTIONS(249), + [anon_sym_GT] = ACTIONS(249), + [anon_sym_LT_EQ] = ACTIONS(249), + [anon_sym_GT_EQ] = ACTIONS(251), + [anon_sym_BANG_EQ] = ACTIONS(251), + [anon_sym_LT_EQ_GT] = ACTIONS(251), + [anon_sym_LT_LT] = ACTIONS(249), + [anon_sym_GT_GT] = ACTIONS(249), + [anon_sym_TILDE_GT_GT] = ACTIONS(249), + [anon_sym_CARET_GT_GT] = ACTIONS(249), + [anon_sym_DASH] = ACTIONS(249), + [anon_sym_PLUS] = ACTIONS(249), + [anon_sym_PIPE] = ACTIONS(249), + [anon_sym_CARET] = ACTIONS(249), + [anon_sym_STAR] = ACTIONS(249), + [anon_sym_SLASH] = ACTIONS(249), + [anon_sym_PERCENT] = ACTIONS(249), + [anon_sym_TILDE_SLASH] = ACTIONS(249), + [anon_sym_CARET_SLASH] = ACTIONS(249), + [anon_sym_TILDE_PERCENT] = ACTIONS(249), + [anon_sym_CARET_PERCENT] = ACTIONS(249), + [anon_sym_SLASH_PERCENT] = ACTIONS(251), + [anon_sym_AMP] = ACTIONS(249), + [anon_sym_TILDE] = ACTIONS(249), + [anon_sym_DOT] = ACTIONS(251), + [anon_sym_LBRACK] = ACTIONS(251), + [anon_sym_int] = ACTIONS(249), + [anon_sym_cell] = ACTIONS(249), + [anon_sym_slice] = ACTIONS(249), + [anon_sym_builder] = ACTIONS(249), + [anon_sym_cont] = ACTIONS(249), + [anon_sym_tuple] = ACTIONS(249), + [sym_var_type] = ACTIONS(249), + [aux_sym_number_literal_token1] = ACTIONS(249), + [sym_string_literal] = ACTIONS(249), + [sym_number_string_literal] = ACTIONS(251), + [sym_slice_string_literal] = ACTIONS(251), + [sym_underscore] = ACTIONS(249), [sym_comment] = ACTIONS(3), }, [STATE(26)] = { - [sym_identifier] = ACTIONS(243), - [anon_sym_SEMI] = ACTIONS(243), - [anon_sym_EQ] = ACTIONS(243), - [anon_sym_LPAREN] = ACTIONS(245), - [anon_sym_return] = ACTIONS(243), - [anon_sym_LBRACE] = ACTIONS(243), - [anon_sym_RBRACE] = ACTIONS(245), - [anon_sym_repeat] = ACTIONS(243), - [anon_sym_if] = ACTIONS(243), - [anon_sym_ifnot] = ACTIONS(243), - [anon_sym_do] = ACTIONS(243), - [anon_sym_while] = ACTIONS(243), - [anon_sym_try] = ACTIONS(243), - [anon_sym_PLUS_EQ] = ACTIONS(245), - [anon_sym_DASH_EQ] = ACTIONS(245), - [anon_sym_STAR_EQ] = ACTIONS(245), - [anon_sym_SLASH_EQ] = ACTIONS(245), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(245), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(245), - [anon_sym_PERCENT_EQ] = ACTIONS(245), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(245), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(245), - [anon_sym_LT_LT_EQ] = ACTIONS(245), - [anon_sym_GT_GT_EQ] = ACTIONS(245), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(245), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(245), - [anon_sym_AMP_EQ] = ACTIONS(245), - [anon_sym_PIPE_EQ] = ACTIONS(245), - [anon_sym_CARET_EQ] = ACTIONS(245), - [anon_sym_QMARK] = ACTIONS(245), - [anon_sym_EQ_EQ] = ACTIONS(245), - [anon_sym_LT] = ACTIONS(243), - [anon_sym_GT] = ACTIONS(243), - [anon_sym_LT_EQ] = ACTIONS(243), - [anon_sym_GT_EQ] = ACTIONS(245), - [anon_sym_BANG_EQ] = ACTIONS(245), - [anon_sym_LT_EQ_GT] = ACTIONS(245), - [anon_sym_LT_LT] = ACTIONS(243), - [anon_sym_GT_GT] = ACTIONS(243), - [anon_sym_TILDE_GT_GT] = ACTIONS(243), - [anon_sym_CARET_GT_GT] = ACTIONS(243), - [anon_sym_DASH] = ACTIONS(243), - [anon_sym_PLUS] = ACTIONS(243), - [anon_sym_PIPE] = ACTIONS(243), - [anon_sym_CARET] = ACTIONS(243), - [anon_sym_STAR] = ACTIONS(243), - [anon_sym_SLASH] = ACTIONS(243), - [anon_sym_PERCENT] = ACTIONS(243), - [anon_sym_TILDE_SLASH] = ACTIONS(243), - [anon_sym_CARET_SLASH] = ACTIONS(243), - [anon_sym_TILDE_PERCENT] = ACTIONS(243), - [anon_sym_CARET_PERCENT] = ACTIONS(243), - [anon_sym_SLASH_PERCENT] = ACTIONS(245), - [anon_sym_AMP] = ACTIONS(243), - [anon_sym_TILDE] = ACTIONS(243), - [anon_sym_DOT] = ACTIONS(245), - [anon_sym_LBRACK] = ACTIONS(245), - [anon_sym_int] = ACTIONS(243), - [anon_sym_cell] = ACTIONS(243), - [anon_sym_slice] = ACTIONS(243), - [anon_sym_builder] = ACTIONS(243), - [anon_sym_cont] = ACTIONS(243), - [anon_sym_tuple] = ACTIONS(243), - [sym_var_type] = ACTIONS(243), - [aux_sym_number_literal_token1] = ACTIONS(243), - [sym_string_literal] = ACTIONS(243), - [sym_number_string_literal] = ACTIONS(245), - [sym_slice_string_literal] = ACTIONS(245), - [sym_underscore] = ACTIONS(243), + [sym_identifier] = ACTIONS(253), + [anon_sym_SEMI] = ACTIONS(253), + [anon_sym_EQ] = ACTIONS(253), + [anon_sym_LPAREN] = ACTIONS(255), + [anon_sym_return] = ACTIONS(253), + [anon_sym_LBRACE] = ACTIONS(253), + [anon_sym_RBRACE] = ACTIONS(255), + [anon_sym_repeat] = ACTIONS(253), + [anon_sym_if] = ACTIONS(253), + [anon_sym_ifnot] = ACTIONS(253), + [anon_sym_do] = ACTIONS(253), + [anon_sym_while] = ACTIONS(253), + [anon_sym_try] = ACTIONS(253), + [anon_sym_PLUS_EQ] = ACTIONS(255), + [anon_sym_DASH_EQ] = ACTIONS(255), + [anon_sym_STAR_EQ] = ACTIONS(255), + [anon_sym_SLASH_EQ] = ACTIONS(255), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(255), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(255), + [anon_sym_PERCENT_EQ] = ACTIONS(255), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(255), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(255), + [anon_sym_LT_LT_EQ] = ACTIONS(255), + [anon_sym_GT_GT_EQ] = ACTIONS(255), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(255), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(255), + [anon_sym_AMP_EQ] = ACTIONS(255), + [anon_sym_PIPE_EQ] = ACTIONS(255), + [anon_sym_CARET_EQ] = ACTIONS(255), + [anon_sym_QMARK] = ACTIONS(255), + [anon_sym_EQ_EQ] = ACTIONS(255), + [anon_sym_LT] = ACTIONS(253), + [anon_sym_GT] = ACTIONS(253), + [anon_sym_LT_EQ] = ACTIONS(253), + [anon_sym_GT_EQ] = ACTIONS(255), + [anon_sym_BANG_EQ] = ACTIONS(255), + [anon_sym_LT_EQ_GT] = ACTIONS(255), + [anon_sym_LT_LT] = ACTIONS(253), + [anon_sym_GT_GT] = ACTIONS(253), + [anon_sym_TILDE_GT_GT] = ACTIONS(253), + [anon_sym_CARET_GT_GT] = ACTIONS(253), + [anon_sym_DASH] = ACTIONS(253), + [anon_sym_PLUS] = ACTIONS(253), + [anon_sym_PIPE] = ACTIONS(253), + [anon_sym_CARET] = ACTIONS(253), + [anon_sym_STAR] = ACTIONS(253), + [anon_sym_SLASH] = ACTIONS(253), + [anon_sym_PERCENT] = ACTIONS(253), + [anon_sym_TILDE_SLASH] = ACTIONS(253), + [anon_sym_CARET_SLASH] = ACTIONS(253), + [anon_sym_TILDE_PERCENT] = ACTIONS(253), + [anon_sym_CARET_PERCENT] = ACTIONS(253), + [anon_sym_SLASH_PERCENT] = ACTIONS(255), + [anon_sym_AMP] = ACTIONS(253), + [anon_sym_TILDE] = ACTIONS(253), + [anon_sym_DOT] = ACTIONS(255), + [anon_sym_LBRACK] = ACTIONS(255), + [anon_sym_int] = ACTIONS(253), + [anon_sym_cell] = ACTIONS(253), + [anon_sym_slice] = ACTIONS(253), + [anon_sym_builder] = ACTIONS(253), + [anon_sym_cont] = ACTIONS(253), + [anon_sym_tuple] = ACTIONS(253), + [sym_var_type] = ACTIONS(253), + [aux_sym_number_literal_token1] = ACTIONS(253), + [sym_string_literal] = ACTIONS(253), + [sym_number_string_literal] = ACTIONS(255), + [sym_slice_string_literal] = ACTIONS(255), + [sym_underscore] = ACTIONS(253), [sym_comment] = ACTIONS(3), }, [STATE(27)] = { - [sym_identifier] = ACTIONS(247), - [anon_sym_SEMI] = ACTIONS(247), - [anon_sym_EQ] = ACTIONS(247), - [anon_sym_LPAREN] = ACTIONS(249), - [anon_sym_return] = ACTIONS(247), - [anon_sym_LBRACE] = ACTIONS(247), - [anon_sym_RBRACE] = ACTIONS(249), - [anon_sym_repeat] = ACTIONS(247), - [anon_sym_if] = ACTIONS(247), - [anon_sym_ifnot] = ACTIONS(247), - [anon_sym_do] = ACTIONS(247), - [anon_sym_while] = ACTIONS(247), - [anon_sym_try] = ACTIONS(247), - [anon_sym_PLUS_EQ] = ACTIONS(249), - [anon_sym_DASH_EQ] = ACTIONS(249), - [anon_sym_STAR_EQ] = ACTIONS(249), - [anon_sym_SLASH_EQ] = ACTIONS(249), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(249), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(249), - [anon_sym_PERCENT_EQ] = ACTIONS(249), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(249), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(249), - [anon_sym_LT_LT_EQ] = ACTIONS(249), - [anon_sym_GT_GT_EQ] = ACTIONS(249), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(249), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(249), - [anon_sym_AMP_EQ] = ACTIONS(249), - [anon_sym_PIPE_EQ] = ACTIONS(249), - [anon_sym_CARET_EQ] = ACTIONS(249), - [anon_sym_QMARK] = ACTIONS(249), - [anon_sym_EQ_EQ] = ACTIONS(249), - [anon_sym_LT] = ACTIONS(247), - [anon_sym_GT] = ACTIONS(247), - [anon_sym_LT_EQ] = ACTIONS(247), - [anon_sym_GT_EQ] = ACTIONS(249), - [anon_sym_BANG_EQ] = ACTIONS(249), - [anon_sym_LT_EQ_GT] = ACTIONS(249), - [anon_sym_LT_LT] = ACTIONS(247), - [anon_sym_GT_GT] = ACTIONS(247), - [anon_sym_TILDE_GT_GT] = ACTIONS(247), - [anon_sym_CARET_GT_GT] = ACTIONS(247), - [anon_sym_DASH] = ACTIONS(247), - [anon_sym_PLUS] = ACTIONS(247), - [anon_sym_PIPE] = ACTIONS(247), - [anon_sym_CARET] = ACTIONS(247), - [anon_sym_STAR] = ACTIONS(247), - [anon_sym_SLASH] = ACTIONS(247), - [anon_sym_PERCENT] = ACTIONS(247), - [anon_sym_TILDE_SLASH] = ACTIONS(247), - [anon_sym_CARET_SLASH] = ACTIONS(247), - [anon_sym_TILDE_PERCENT] = ACTIONS(247), - [anon_sym_CARET_PERCENT] = ACTIONS(247), - [anon_sym_SLASH_PERCENT] = ACTIONS(249), - [anon_sym_AMP] = ACTIONS(247), - [anon_sym_TILDE] = ACTIONS(247), - [anon_sym_DOT] = ACTIONS(249), - [anon_sym_LBRACK] = ACTIONS(249), - [anon_sym_int] = ACTIONS(247), - [anon_sym_cell] = ACTIONS(247), - [anon_sym_slice] = ACTIONS(247), - [anon_sym_builder] = ACTIONS(247), - [anon_sym_cont] = ACTIONS(247), - [anon_sym_tuple] = ACTIONS(247), - [sym_var_type] = ACTIONS(247), - [aux_sym_number_literal_token1] = ACTIONS(247), - [sym_string_literal] = ACTIONS(247), - [sym_number_string_literal] = ACTIONS(249), - [sym_slice_string_literal] = ACTIONS(249), - [sym_underscore] = ACTIONS(247), + [sym_identifier] = ACTIONS(257), + [anon_sym_SEMI] = ACTIONS(257), + [anon_sym_EQ] = ACTIONS(257), + [anon_sym_LPAREN] = ACTIONS(259), + [anon_sym_return] = ACTIONS(257), + [anon_sym_LBRACE] = ACTIONS(257), + [anon_sym_RBRACE] = ACTIONS(259), + [anon_sym_repeat] = ACTIONS(257), + [anon_sym_if] = ACTIONS(257), + [anon_sym_ifnot] = ACTIONS(257), + [anon_sym_do] = ACTIONS(257), + [anon_sym_while] = ACTIONS(257), + [anon_sym_try] = ACTIONS(257), + [anon_sym_PLUS_EQ] = ACTIONS(259), + [anon_sym_DASH_EQ] = ACTIONS(259), + [anon_sym_STAR_EQ] = ACTIONS(259), + [anon_sym_SLASH_EQ] = ACTIONS(259), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(259), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(259), + [anon_sym_PERCENT_EQ] = ACTIONS(259), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(259), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(259), + [anon_sym_LT_LT_EQ] = ACTIONS(259), + [anon_sym_GT_GT_EQ] = ACTIONS(259), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(259), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(259), + [anon_sym_AMP_EQ] = ACTIONS(259), + [anon_sym_PIPE_EQ] = ACTIONS(259), + [anon_sym_CARET_EQ] = ACTIONS(259), + [anon_sym_QMARK] = ACTIONS(259), + [anon_sym_EQ_EQ] = ACTIONS(259), + [anon_sym_LT] = ACTIONS(257), + [anon_sym_GT] = ACTIONS(257), + [anon_sym_LT_EQ] = ACTIONS(257), + [anon_sym_GT_EQ] = ACTIONS(259), + [anon_sym_BANG_EQ] = ACTIONS(259), + [anon_sym_LT_EQ_GT] = ACTIONS(259), + [anon_sym_LT_LT] = ACTIONS(257), + [anon_sym_GT_GT] = ACTIONS(257), + [anon_sym_TILDE_GT_GT] = ACTIONS(257), + [anon_sym_CARET_GT_GT] = ACTIONS(257), + [anon_sym_DASH] = ACTIONS(257), + [anon_sym_PLUS] = ACTIONS(257), + [anon_sym_PIPE] = ACTIONS(257), + [anon_sym_CARET] = ACTIONS(257), + [anon_sym_STAR] = ACTIONS(257), + [anon_sym_SLASH] = ACTIONS(257), + [anon_sym_PERCENT] = ACTIONS(257), + [anon_sym_TILDE_SLASH] = ACTIONS(257), + [anon_sym_CARET_SLASH] = ACTIONS(257), + [anon_sym_TILDE_PERCENT] = ACTIONS(257), + [anon_sym_CARET_PERCENT] = ACTIONS(257), + [anon_sym_SLASH_PERCENT] = ACTIONS(259), + [anon_sym_AMP] = ACTIONS(257), + [anon_sym_TILDE] = ACTIONS(257), + [anon_sym_DOT] = ACTIONS(259), + [anon_sym_LBRACK] = ACTIONS(259), + [anon_sym_int] = ACTIONS(257), + [anon_sym_cell] = ACTIONS(257), + [anon_sym_slice] = ACTIONS(257), + [anon_sym_builder] = ACTIONS(257), + [anon_sym_cont] = ACTIONS(257), + [anon_sym_tuple] = ACTIONS(257), + [sym_var_type] = ACTIONS(257), + [aux_sym_number_literal_token1] = ACTIONS(257), + [sym_string_literal] = ACTIONS(257), + [sym_number_string_literal] = ACTIONS(259), + [sym_slice_string_literal] = ACTIONS(259), + [sym_underscore] = ACTIONS(257), [sym_comment] = ACTIONS(3), }, [STATE(28)] = { - [sym_identifier] = ACTIONS(251), - [anon_sym_SEMI] = ACTIONS(251), - [anon_sym_EQ] = ACTIONS(251), - [anon_sym_LPAREN] = ACTIONS(253), - [anon_sym_return] = ACTIONS(251), - [anon_sym_LBRACE] = ACTIONS(251), - [anon_sym_RBRACE] = ACTIONS(253), - [anon_sym_repeat] = ACTIONS(251), - [anon_sym_if] = ACTIONS(251), - [anon_sym_ifnot] = ACTIONS(251), - [anon_sym_do] = ACTIONS(251), - [anon_sym_while] = ACTIONS(251), - [anon_sym_try] = ACTIONS(251), - [anon_sym_PLUS_EQ] = ACTIONS(253), - [anon_sym_DASH_EQ] = ACTIONS(253), - [anon_sym_STAR_EQ] = ACTIONS(253), - [anon_sym_SLASH_EQ] = ACTIONS(253), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(253), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(253), - [anon_sym_PERCENT_EQ] = ACTIONS(253), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(253), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(253), - [anon_sym_LT_LT_EQ] = ACTIONS(253), - [anon_sym_GT_GT_EQ] = ACTIONS(253), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(253), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(253), - [anon_sym_AMP_EQ] = ACTIONS(253), - [anon_sym_PIPE_EQ] = ACTIONS(253), - [anon_sym_CARET_EQ] = ACTIONS(253), - [anon_sym_QMARK] = ACTIONS(253), - [anon_sym_EQ_EQ] = ACTIONS(253), - [anon_sym_LT] = ACTIONS(251), - [anon_sym_GT] = ACTIONS(251), - [anon_sym_LT_EQ] = ACTIONS(251), - [anon_sym_GT_EQ] = ACTIONS(253), - [anon_sym_BANG_EQ] = ACTIONS(253), - [anon_sym_LT_EQ_GT] = ACTIONS(253), - [anon_sym_LT_LT] = ACTIONS(251), - [anon_sym_GT_GT] = ACTIONS(251), - [anon_sym_TILDE_GT_GT] = ACTIONS(251), - [anon_sym_CARET_GT_GT] = ACTIONS(251), - [anon_sym_DASH] = ACTIONS(251), - [anon_sym_PLUS] = ACTIONS(251), - [anon_sym_PIPE] = ACTIONS(251), - [anon_sym_CARET] = ACTIONS(251), - [anon_sym_STAR] = ACTIONS(251), - [anon_sym_SLASH] = ACTIONS(251), - [anon_sym_PERCENT] = ACTIONS(251), - [anon_sym_TILDE_SLASH] = ACTIONS(251), - [anon_sym_CARET_SLASH] = ACTIONS(251), - [anon_sym_TILDE_PERCENT] = ACTIONS(251), - [anon_sym_CARET_PERCENT] = ACTIONS(251), - [anon_sym_SLASH_PERCENT] = ACTIONS(253), - [anon_sym_AMP] = ACTIONS(251), - [anon_sym_TILDE] = ACTIONS(251), - [anon_sym_DOT] = ACTIONS(253), - [anon_sym_LBRACK] = ACTIONS(253), - [anon_sym_int] = ACTIONS(251), - [anon_sym_cell] = ACTIONS(251), - [anon_sym_slice] = ACTIONS(251), - [anon_sym_builder] = ACTIONS(251), - [anon_sym_cont] = ACTIONS(251), - [anon_sym_tuple] = ACTIONS(251), - [sym_var_type] = ACTIONS(251), - [aux_sym_number_literal_token1] = ACTIONS(251), - [sym_string_literal] = ACTIONS(251), - [sym_number_string_literal] = ACTIONS(253), - [sym_slice_string_literal] = ACTIONS(253), - [sym_underscore] = ACTIONS(251), + [sym_identifier] = ACTIONS(261), + [anon_sym_SEMI] = ACTIONS(261), + [anon_sym_EQ] = ACTIONS(261), + [anon_sym_LPAREN] = ACTIONS(263), + [anon_sym_return] = ACTIONS(261), + [anon_sym_LBRACE] = ACTIONS(261), + [anon_sym_RBRACE] = ACTIONS(263), + [anon_sym_repeat] = ACTIONS(261), + [anon_sym_if] = ACTIONS(261), + [anon_sym_ifnot] = ACTIONS(261), + [anon_sym_do] = ACTIONS(261), + [anon_sym_while] = ACTIONS(261), + [anon_sym_try] = ACTIONS(261), + [anon_sym_PLUS_EQ] = ACTIONS(263), + [anon_sym_DASH_EQ] = ACTIONS(263), + [anon_sym_STAR_EQ] = ACTIONS(263), + [anon_sym_SLASH_EQ] = ACTIONS(263), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(263), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(263), + [anon_sym_PERCENT_EQ] = ACTIONS(263), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(263), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(263), + [anon_sym_LT_LT_EQ] = ACTIONS(263), + [anon_sym_GT_GT_EQ] = ACTIONS(263), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(263), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(263), + [anon_sym_AMP_EQ] = ACTIONS(263), + [anon_sym_PIPE_EQ] = ACTIONS(263), + [anon_sym_CARET_EQ] = ACTIONS(263), + [anon_sym_QMARK] = ACTIONS(263), + [anon_sym_EQ_EQ] = ACTIONS(263), + [anon_sym_LT] = ACTIONS(261), + [anon_sym_GT] = ACTIONS(261), + [anon_sym_LT_EQ] = ACTIONS(261), + [anon_sym_GT_EQ] = ACTIONS(263), + [anon_sym_BANG_EQ] = ACTIONS(263), + [anon_sym_LT_EQ_GT] = ACTIONS(263), + [anon_sym_LT_LT] = ACTIONS(261), + [anon_sym_GT_GT] = ACTIONS(261), + [anon_sym_TILDE_GT_GT] = ACTIONS(261), + [anon_sym_CARET_GT_GT] = ACTIONS(261), + [anon_sym_DASH] = ACTIONS(261), + [anon_sym_PLUS] = ACTIONS(261), + [anon_sym_PIPE] = ACTIONS(261), + [anon_sym_CARET] = ACTIONS(261), + [anon_sym_STAR] = ACTIONS(261), + [anon_sym_SLASH] = ACTIONS(261), + [anon_sym_PERCENT] = ACTIONS(261), + [anon_sym_TILDE_SLASH] = ACTIONS(261), + [anon_sym_CARET_SLASH] = ACTIONS(261), + [anon_sym_TILDE_PERCENT] = ACTIONS(261), + [anon_sym_CARET_PERCENT] = ACTIONS(261), + [anon_sym_SLASH_PERCENT] = ACTIONS(263), + [anon_sym_AMP] = ACTIONS(261), + [anon_sym_TILDE] = ACTIONS(261), + [anon_sym_DOT] = ACTIONS(263), + [anon_sym_LBRACK] = ACTIONS(263), + [anon_sym_int] = ACTIONS(261), + [anon_sym_cell] = ACTIONS(261), + [anon_sym_slice] = ACTIONS(261), + [anon_sym_builder] = ACTIONS(261), + [anon_sym_cont] = ACTIONS(261), + [anon_sym_tuple] = ACTIONS(261), + [sym_var_type] = ACTIONS(261), + [aux_sym_number_literal_token1] = ACTIONS(261), + [sym_string_literal] = ACTIONS(261), + [sym_number_string_literal] = ACTIONS(263), + [sym_slice_string_literal] = ACTIONS(263), + [sym_underscore] = ACTIONS(261), [sym_comment] = ACTIONS(3), }, [STATE(29)] = { - [sym_identifier] = ACTIONS(255), - [anon_sym_SEMI] = ACTIONS(255), - [anon_sym_EQ] = ACTIONS(255), - [anon_sym_LPAREN] = ACTIONS(257), - [anon_sym_return] = ACTIONS(255), - [anon_sym_LBRACE] = ACTIONS(255), - [anon_sym_RBRACE] = ACTIONS(257), - [anon_sym_repeat] = ACTIONS(255), - [anon_sym_if] = ACTIONS(255), - [anon_sym_ifnot] = ACTIONS(255), - [anon_sym_do] = ACTIONS(255), - [anon_sym_while] = ACTIONS(255), - [anon_sym_try] = ACTIONS(255), - [anon_sym_PLUS_EQ] = ACTIONS(257), - [anon_sym_DASH_EQ] = ACTIONS(257), - [anon_sym_STAR_EQ] = ACTIONS(257), - [anon_sym_SLASH_EQ] = ACTIONS(257), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(257), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(257), - [anon_sym_PERCENT_EQ] = ACTIONS(257), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(257), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(257), - [anon_sym_LT_LT_EQ] = ACTIONS(257), - [anon_sym_GT_GT_EQ] = ACTIONS(257), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(257), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(257), - [anon_sym_AMP_EQ] = ACTIONS(257), - [anon_sym_PIPE_EQ] = ACTIONS(257), - [anon_sym_CARET_EQ] = ACTIONS(257), - [anon_sym_QMARK] = ACTIONS(257), - [anon_sym_EQ_EQ] = ACTIONS(257), - [anon_sym_LT] = ACTIONS(255), - [anon_sym_GT] = ACTIONS(255), - [anon_sym_LT_EQ] = ACTIONS(255), - [anon_sym_GT_EQ] = ACTIONS(257), - [anon_sym_BANG_EQ] = ACTIONS(257), - [anon_sym_LT_EQ_GT] = ACTIONS(257), - [anon_sym_LT_LT] = ACTIONS(255), - [anon_sym_GT_GT] = ACTIONS(255), - [anon_sym_TILDE_GT_GT] = ACTIONS(255), - [anon_sym_CARET_GT_GT] = ACTIONS(255), - [anon_sym_DASH] = ACTIONS(255), - [anon_sym_PLUS] = ACTIONS(255), - [anon_sym_PIPE] = ACTIONS(255), - [anon_sym_CARET] = ACTIONS(255), - [anon_sym_STAR] = ACTIONS(255), - [anon_sym_SLASH] = ACTIONS(255), - [anon_sym_PERCENT] = ACTIONS(255), - [anon_sym_TILDE_SLASH] = ACTIONS(255), - [anon_sym_CARET_SLASH] = ACTIONS(255), - [anon_sym_TILDE_PERCENT] = ACTIONS(255), - [anon_sym_CARET_PERCENT] = ACTIONS(255), - [anon_sym_SLASH_PERCENT] = ACTIONS(257), - [anon_sym_AMP] = ACTIONS(255), - [anon_sym_TILDE] = ACTIONS(255), - [anon_sym_DOT] = ACTIONS(257), - [anon_sym_LBRACK] = ACTIONS(257), - [anon_sym_int] = ACTIONS(255), - [anon_sym_cell] = ACTIONS(255), - [anon_sym_slice] = ACTIONS(255), - [anon_sym_builder] = ACTIONS(255), - [anon_sym_cont] = ACTIONS(255), - [anon_sym_tuple] = ACTIONS(255), - [sym_var_type] = ACTIONS(255), - [aux_sym_number_literal_token1] = ACTIONS(255), - [sym_string_literal] = ACTIONS(255), - [sym_number_string_literal] = ACTIONS(257), - [sym_slice_string_literal] = ACTIONS(257), - [sym_underscore] = ACTIONS(255), + [sym_identifier] = ACTIONS(265), + [anon_sym_SEMI] = ACTIONS(265), + [anon_sym_EQ] = ACTIONS(265), + [anon_sym_LPAREN] = ACTIONS(267), + [anon_sym_return] = ACTIONS(265), + [anon_sym_LBRACE] = ACTIONS(265), + [anon_sym_RBRACE] = ACTIONS(267), + [anon_sym_repeat] = ACTIONS(265), + [anon_sym_if] = ACTIONS(265), + [anon_sym_ifnot] = ACTIONS(265), + [anon_sym_do] = ACTIONS(265), + [anon_sym_while] = ACTIONS(265), + [anon_sym_try] = ACTIONS(265), + [anon_sym_PLUS_EQ] = ACTIONS(267), + [anon_sym_DASH_EQ] = ACTIONS(267), + [anon_sym_STAR_EQ] = ACTIONS(267), + [anon_sym_SLASH_EQ] = ACTIONS(267), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(267), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(267), + [anon_sym_PERCENT_EQ] = ACTIONS(267), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(267), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(267), + [anon_sym_LT_LT_EQ] = ACTIONS(267), + [anon_sym_GT_GT_EQ] = ACTIONS(267), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(267), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(267), + [anon_sym_AMP_EQ] = ACTIONS(267), + [anon_sym_PIPE_EQ] = ACTIONS(267), + [anon_sym_CARET_EQ] = ACTIONS(267), + [anon_sym_QMARK] = ACTIONS(267), + [anon_sym_EQ_EQ] = ACTIONS(267), + [anon_sym_LT] = ACTIONS(265), + [anon_sym_GT] = ACTIONS(265), + [anon_sym_LT_EQ] = ACTIONS(265), + [anon_sym_GT_EQ] = ACTIONS(267), + [anon_sym_BANG_EQ] = ACTIONS(267), + [anon_sym_LT_EQ_GT] = ACTIONS(267), + [anon_sym_LT_LT] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(265), + [anon_sym_TILDE_GT_GT] = ACTIONS(265), + [anon_sym_CARET_GT_GT] = ACTIONS(265), + [anon_sym_DASH] = ACTIONS(265), + [anon_sym_PLUS] = ACTIONS(265), + [anon_sym_PIPE] = ACTIONS(265), + [anon_sym_CARET] = ACTIONS(265), + [anon_sym_STAR] = ACTIONS(265), + [anon_sym_SLASH] = ACTIONS(265), + [anon_sym_PERCENT] = ACTIONS(265), + [anon_sym_TILDE_SLASH] = ACTIONS(265), + [anon_sym_CARET_SLASH] = ACTIONS(265), + [anon_sym_TILDE_PERCENT] = ACTIONS(265), + [anon_sym_CARET_PERCENT] = ACTIONS(265), + [anon_sym_SLASH_PERCENT] = ACTIONS(267), + [anon_sym_AMP] = ACTIONS(265), + [anon_sym_TILDE] = ACTIONS(265), + [anon_sym_DOT] = ACTIONS(267), + [anon_sym_LBRACK] = ACTIONS(267), + [anon_sym_int] = ACTIONS(265), + [anon_sym_cell] = ACTIONS(265), + [anon_sym_slice] = ACTIONS(265), + [anon_sym_builder] = ACTIONS(265), + [anon_sym_cont] = ACTIONS(265), + [anon_sym_tuple] = ACTIONS(265), + [sym_var_type] = ACTIONS(265), + [aux_sym_number_literal_token1] = ACTIONS(265), + [sym_string_literal] = ACTIONS(265), + [sym_number_string_literal] = ACTIONS(267), + [sym_slice_string_literal] = ACTIONS(267), + [sym_underscore] = ACTIONS(265), [sym_comment] = ACTIONS(3), }, [STATE(30)] = { - [sym_identifier] = ACTIONS(259), - [anon_sym_SEMI] = ACTIONS(259), - [anon_sym_EQ] = ACTIONS(259), - [anon_sym_LPAREN] = ACTIONS(261), - [anon_sym_return] = ACTIONS(259), - [anon_sym_LBRACE] = ACTIONS(259), - [anon_sym_RBRACE] = ACTIONS(261), - [anon_sym_repeat] = ACTIONS(259), - [anon_sym_if] = ACTIONS(259), - [anon_sym_ifnot] = ACTIONS(259), - [anon_sym_do] = ACTIONS(259), - [anon_sym_while] = ACTIONS(259), - [anon_sym_try] = ACTIONS(259), - [anon_sym_PLUS_EQ] = ACTIONS(261), - [anon_sym_DASH_EQ] = ACTIONS(261), - [anon_sym_STAR_EQ] = ACTIONS(261), - [anon_sym_SLASH_EQ] = ACTIONS(261), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(261), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(261), - [anon_sym_PERCENT_EQ] = ACTIONS(261), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(261), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(261), - [anon_sym_LT_LT_EQ] = ACTIONS(261), - [anon_sym_GT_GT_EQ] = ACTIONS(261), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(261), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(261), - [anon_sym_AMP_EQ] = ACTIONS(261), - [anon_sym_PIPE_EQ] = ACTIONS(261), - [anon_sym_CARET_EQ] = ACTIONS(261), - [anon_sym_QMARK] = ACTIONS(261), - [anon_sym_EQ_EQ] = ACTIONS(261), - [anon_sym_LT] = ACTIONS(259), - [anon_sym_GT] = ACTIONS(259), - [anon_sym_LT_EQ] = ACTIONS(259), - [anon_sym_GT_EQ] = ACTIONS(261), - [anon_sym_BANG_EQ] = ACTIONS(261), - [anon_sym_LT_EQ_GT] = ACTIONS(261), - [anon_sym_LT_LT] = ACTIONS(259), - [anon_sym_GT_GT] = ACTIONS(259), - [anon_sym_TILDE_GT_GT] = ACTIONS(259), - [anon_sym_CARET_GT_GT] = ACTIONS(259), - [anon_sym_DASH] = ACTIONS(259), - [anon_sym_PLUS] = ACTIONS(259), - [anon_sym_PIPE] = ACTIONS(259), - [anon_sym_CARET] = ACTIONS(259), - [anon_sym_STAR] = ACTIONS(259), - [anon_sym_SLASH] = ACTIONS(259), - [anon_sym_PERCENT] = ACTIONS(259), - [anon_sym_TILDE_SLASH] = ACTIONS(259), - [anon_sym_CARET_SLASH] = ACTIONS(259), - [anon_sym_TILDE_PERCENT] = ACTIONS(259), - [anon_sym_CARET_PERCENT] = ACTIONS(259), - [anon_sym_SLASH_PERCENT] = ACTIONS(261), - [anon_sym_AMP] = ACTIONS(259), - [anon_sym_TILDE] = ACTIONS(259), - [anon_sym_DOT] = ACTIONS(261), - [anon_sym_LBRACK] = ACTIONS(261), - [anon_sym_int] = ACTIONS(259), - [anon_sym_cell] = ACTIONS(259), - [anon_sym_slice] = ACTIONS(259), - [anon_sym_builder] = ACTIONS(259), - [anon_sym_cont] = ACTIONS(259), - [anon_sym_tuple] = ACTIONS(259), - [sym_var_type] = ACTIONS(259), - [aux_sym_number_literal_token1] = ACTIONS(259), - [sym_string_literal] = ACTIONS(259), - [sym_number_string_literal] = ACTIONS(261), - [sym_slice_string_literal] = ACTIONS(261), - [sym_underscore] = ACTIONS(259), + [sym_identifier] = ACTIONS(269), + [anon_sym_SEMI] = ACTIONS(269), + [anon_sym_EQ] = ACTIONS(269), + [anon_sym_LPAREN] = ACTIONS(271), + [anon_sym_return] = ACTIONS(269), + [anon_sym_LBRACE] = ACTIONS(269), + [anon_sym_RBRACE] = ACTIONS(271), + [anon_sym_repeat] = ACTIONS(269), + [anon_sym_if] = ACTIONS(269), + [anon_sym_ifnot] = ACTIONS(269), + [anon_sym_do] = ACTIONS(269), + [anon_sym_while] = ACTIONS(269), + [anon_sym_try] = ACTIONS(269), + [anon_sym_PLUS_EQ] = ACTIONS(271), + [anon_sym_DASH_EQ] = ACTIONS(271), + [anon_sym_STAR_EQ] = ACTIONS(271), + [anon_sym_SLASH_EQ] = ACTIONS(271), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(271), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(271), + [anon_sym_PERCENT_EQ] = ACTIONS(271), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(271), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(271), + [anon_sym_LT_LT_EQ] = ACTIONS(271), + [anon_sym_GT_GT_EQ] = ACTIONS(271), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(271), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(271), + [anon_sym_AMP_EQ] = ACTIONS(271), + [anon_sym_PIPE_EQ] = ACTIONS(271), + [anon_sym_CARET_EQ] = ACTIONS(271), + [anon_sym_QMARK] = ACTIONS(271), + [anon_sym_EQ_EQ] = ACTIONS(271), + [anon_sym_LT] = ACTIONS(269), + [anon_sym_GT] = ACTIONS(269), + [anon_sym_LT_EQ] = ACTIONS(269), + [anon_sym_GT_EQ] = ACTIONS(271), + [anon_sym_BANG_EQ] = ACTIONS(271), + [anon_sym_LT_EQ_GT] = ACTIONS(271), + [anon_sym_LT_LT] = ACTIONS(269), + [anon_sym_GT_GT] = ACTIONS(269), + [anon_sym_TILDE_GT_GT] = ACTIONS(269), + [anon_sym_CARET_GT_GT] = ACTIONS(269), + [anon_sym_DASH] = ACTIONS(269), + [anon_sym_PLUS] = ACTIONS(269), + [anon_sym_PIPE] = ACTIONS(269), + [anon_sym_CARET] = ACTIONS(269), + [anon_sym_STAR] = ACTIONS(269), + [anon_sym_SLASH] = ACTIONS(269), + [anon_sym_PERCENT] = ACTIONS(269), + [anon_sym_TILDE_SLASH] = ACTIONS(269), + [anon_sym_CARET_SLASH] = ACTIONS(269), + [anon_sym_TILDE_PERCENT] = ACTIONS(269), + [anon_sym_CARET_PERCENT] = ACTIONS(269), + [anon_sym_SLASH_PERCENT] = ACTIONS(271), + [anon_sym_AMP] = ACTIONS(269), + [anon_sym_TILDE] = ACTIONS(269), + [anon_sym_DOT] = ACTIONS(271), + [anon_sym_LBRACK] = ACTIONS(271), + [anon_sym_int] = ACTIONS(269), + [anon_sym_cell] = ACTIONS(269), + [anon_sym_slice] = ACTIONS(269), + [anon_sym_builder] = ACTIONS(269), + [anon_sym_cont] = ACTIONS(269), + [anon_sym_tuple] = ACTIONS(269), + [sym_var_type] = ACTIONS(269), + [aux_sym_number_literal_token1] = ACTIONS(269), + [sym_string_literal] = ACTIONS(269), + [sym_number_string_literal] = ACTIONS(271), + [sym_slice_string_literal] = ACTIONS(271), + [sym_underscore] = ACTIONS(269), [sym_comment] = ACTIONS(3), }, [STATE(31)] = { - [sym_identifier] = ACTIONS(263), - [anon_sym_SEMI] = ACTIONS(263), - [anon_sym_EQ] = ACTIONS(263), - [anon_sym_LPAREN] = ACTIONS(265), - [anon_sym_return] = ACTIONS(263), - [anon_sym_LBRACE] = ACTIONS(263), - [anon_sym_RBRACE] = ACTIONS(265), - [anon_sym_repeat] = ACTIONS(263), - [anon_sym_if] = ACTIONS(263), - [anon_sym_ifnot] = ACTIONS(263), - [anon_sym_do] = ACTIONS(263), - [anon_sym_while] = ACTIONS(263), - [anon_sym_try] = ACTIONS(263), - [anon_sym_PLUS_EQ] = ACTIONS(265), - [anon_sym_DASH_EQ] = ACTIONS(265), - [anon_sym_STAR_EQ] = ACTIONS(265), - [anon_sym_SLASH_EQ] = ACTIONS(265), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(265), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(265), - [anon_sym_PERCENT_EQ] = ACTIONS(265), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(265), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(265), - [anon_sym_LT_LT_EQ] = ACTIONS(265), - [anon_sym_GT_GT_EQ] = ACTIONS(265), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(265), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(265), - [anon_sym_AMP_EQ] = ACTIONS(265), - [anon_sym_PIPE_EQ] = ACTIONS(265), - [anon_sym_CARET_EQ] = ACTIONS(265), - [anon_sym_QMARK] = ACTIONS(265), - [anon_sym_EQ_EQ] = ACTIONS(265), - [anon_sym_LT] = ACTIONS(263), - [anon_sym_GT] = ACTIONS(263), - [anon_sym_LT_EQ] = ACTIONS(263), - [anon_sym_GT_EQ] = ACTIONS(265), - [anon_sym_BANG_EQ] = ACTIONS(265), - [anon_sym_LT_EQ_GT] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(263), - [anon_sym_GT_GT] = ACTIONS(263), - [anon_sym_TILDE_GT_GT] = ACTIONS(263), - [anon_sym_CARET_GT_GT] = ACTIONS(263), - [anon_sym_DASH] = ACTIONS(263), - [anon_sym_PLUS] = ACTIONS(263), - [anon_sym_PIPE] = ACTIONS(263), - [anon_sym_CARET] = ACTIONS(263), - [anon_sym_STAR] = ACTIONS(263), - [anon_sym_SLASH] = ACTIONS(263), - [anon_sym_PERCENT] = ACTIONS(263), - [anon_sym_TILDE_SLASH] = ACTIONS(263), - [anon_sym_CARET_SLASH] = ACTIONS(263), - [anon_sym_TILDE_PERCENT] = ACTIONS(263), - [anon_sym_CARET_PERCENT] = ACTIONS(263), - [anon_sym_SLASH_PERCENT] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(263), - [anon_sym_TILDE] = ACTIONS(263), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LBRACK] = ACTIONS(265), - [anon_sym_int] = ACTIONS(263), - [anon_sym_cell] = ACTIONS(263), - [anon_sym_slice] = ACTIONS(263), - [anon_sym_builder] = ACTIONS(263), - [anon_sym_cont] = ACTIONS(263), - [anon_sym_tuple] = ACTIONS(263), - [sym_var_type] = ACTIONS(263), - [aux_sym_number_literal_token1] = ACTIONS(263), - [sym_string_literal] = ACTIONS(263), - [sym_number_string_literal] = ACTIONS(265), - [sym_slice_string_literal] = ACTIONS(265), - [sym_underscore] = ACTIONS(263), + [sym_identifier] = ACTIONS(273), + [anon_sym_SEMI] = ACTIONS(273), + [anon_sym_EQ] = ACTIONS(273), + [anon_sym_LPAREN] = ACTIONS(275), + [anon_sym_return] = ACTIONS(273), + [anon_sym_LBRACE] = ACTIONS(273), + [anon_sym_RBRACE] = ACTIONS(275), + [anon_sym_repeat] = ACTIONS(273), + [anon_sym_if] = ACTIONS(273), + [anon_sym_ifnot] = ACTIONS(273), + [anon_sym_do] = ACTIONS(273), + [anon_sym_while] = ACTIONS(273), + [anon_sym_try] = ACTIONS(273), + [anon_sym_PLUS_EQ] = ACTIONS(275), + [anon_sym_DASH_EQ] = ACTIONS(275), + [anon_sym_STAR_EQ] = ACTIONS(275), + [anon_sym_SLASH_EQ] = ACTIONS(275), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(275), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(275), + [anon_sym_PERCENT_EQ] = ACTIONS(275), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(275), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(275), + [anon_sym_LT_LT_EQ] = ACTIONS(275), + [anon_sym_GT_GT_EQ] = ACTIONS(275), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(275), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(275), + [anon_sym_AMP_EQ] = ACTIONS(275), + [anon_sym_PIPE_EQ] = ACTIONS(275), + [anon_sym_CARET_EQ] = ACTIONS(275), + [anon_sym_QMARK] = ACTIONS(275), + [anon_sym_EQ_EQ] = ACTIONS(275), + [anon_sym_LT] = ACTIONS(273), + [anon_sym_GT] = ACTIONS(273), + [anon_sym_LT_EQ] = ACTIONS(273), + [anon_sym_GT_EQ] = ACTIONS(275), + [anon_sym_BANG_EQ] = ACTIONS(275), + [anon_sym_LT_EQ_GT] = ACTIONS(275), + [anon_sym_LT_LT] = ACTIONS(273), + [anon_sym_GT_GT] = ACTIONS(273), + [anon_sym_TILDE_GT_GT] = ACTIONS(273), + [anon_sym_CARET_GT_GT] = ACTIONS(273), + [anon_sym_DASH] = ACTIONS(273), + [anon_sym_PLUS] = ACTIONS(273), + [anon_sym_PIPE] = ACTIONS(273), + [anon_sym_CARET] = ACTIONS(273), + [anon_sym_STAR] = ACTIONS(273), + [anon_sym_SLASH] = ACTIONS(273), + [anon_sym_PERCENT] = ACTIONS(273), + [anon_sym_TILDE_SLASH] = ACTIONS(273), + [anon_sym_CARET_SLASH] = ACTIONS(273), + [anon_sym_TILDE_PERCENT] = ACTIONS(273), + [anon_sym_CARET_PERCENT] = ACTIONS(273), + [anon_sym_SLASH_PERCENT] = ACTIONS(275), + [anon_sym_AMP] = ACTIONS(273), + [anon_sym_TILDE] = ACTIONS(273), + [anon_sym_DOT] = ACTIONS(275), + [anon_sym_LBRACK] = ACTIONS(275), + [anon_sym_int] = ACTIONS(273), + [anon_sym_cell] = ACTIONS(273), + [anon_sym_slice] = ACTIONS(273), + [anon_sym_builder] = ACTIONS(273), + [anon_sym_cont] = ACTIONS(273), + [anon_sym_tuple] = ACTIONS(273), + [sym_var_type] = ACTIONS(273), + [aux_sym_number_literal_token1] = ACTIONS(273), + [sym_string_literal] = ACTIONS(273), + [sym_number_string_literal] = ACTIONS(275), + [sym_slice_string_literal] = ACTIONS(275), + [sym_underscore] = ACTIONS(273), [sym_comment] = ACTIONS(3), }, [STATE(32)] = { - [sym_identifier] = ACTIONS(267), - [anon_sym_SEMI] = ACTIONS(267), - [anon_sym_EQ] = ACTIONS(267), - [anon_sym_LPAREN] = ACTIONS(269), - [anon_sym_return] = ACTIONS(267), - [anon_sym_LBRACE] = ACTIONS(267), - [anon_sym_RBRACE] = ACTIONS(269), - [anon_sym_repeat] = ACTIONS(267), - [anon_sym_if] = ACTIONS(267), - [anon_sym_ifnot] = ACTIONS(267), - [anon_sym_do] = ACTIONS(267), - [anon_sym_while] = ACTIONS(267), - [anon_sym_try] = ACTIONS(267), - [anon_sym_PLUS_EQ] = ACTIONS(269), - [anon_sym_DASH_EQ] = ACTIONS(269), - [anon_sym_STAR_EQ] = ACTIONS(269), - [anon_sym_SLASH_EQ] = ACTIONS(269), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(269), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(269), - [anon_sym_PERCENT_EQ] = ACTIONS(269), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(269), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(269), - [anon_sym_LT_LT_EQ] = ACTIONS(269), - [anon_sym_GT_GT_EQ] = ACTIONS(269), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(269), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(269), - [anon_sym_AMP_EQ] = ACTIONS(269), - [anon_sym_PIPE_EQ] = ACTIONS(269), - [anon_sym_CARET_EQ] = ACTIONS(269), - [anon_sym_QMARK] = ACTIONS(269), - [anon_sym_EQ_EQ] = ACTIONS(269), - [anon_sym_LT] = ACTIONS(267), - [anon_sym_GT] = ACTIONS(267), - [anon_sym_LT_EQ] = ACTIONS(267), - [anon_sym_GT_EQ] = ACTIONS(269), - [anon_sym_BANG_EQ] = ACTIONS(269), - [anon_sym_LT_EQ_GT] = ACTIONS(269), - [anon_sym_LT_LT] = ACTIONS(267), - [anon_sym_GT_GT] = ACTIONS(267), - [anon_sym_TILDE_GT_GT] = ACTIONS(267), - [anon_sym_CARET_GT_GT] = ACTIONS(267), - [anon_sym_DASH] = ACTIONS(267), - [anon_sym_PLUS] = ACTIONS(267), - [anon_sym_PIPE] = ACTIONS(267), - [anon_sym_CARET] = ACTIONS(267), - [anon_sym_STAR] = ACTIONS(267), - [anon_sym_SLASH] = ACTIONS(267), - [anon_sym_PERCENT] = ACTIONS(267), - [anon_sym_TILDE_SLASH] = ACTIONS(267), - [anon_sym_CARET_SLASH] = ACTIONS(267), - [anon_sym_TILDE_PERCENT] = ACTIONS(267), - [anon_sym_CARET_PERCENT] = ACTIONS(267), - [anon_sym_SLASH_PERCENT] = ACTIONS(269), - [anon_sym_AMP] = ACTIONS(267), - [anon_sym_TILDE] = ACTIONS(267), - [anon_sym_DOT] = ACTIONS(269), - [anon_sym_LBRACK] = ACTIONS(269), - [anon_sym_int] = ACTIONS(267), - [anon_sym_cell] = ACTIONS(267), - [anon_sym_slice] = ACTIONS(267), - [anon_sym_builder] = ACTIONS(267), - [anon_sym_cont] = ACTIONS(267), - [anon_sym_tuple] = ACTIONS(267), - [sym_var_type] = ACTIONS(267), - [aux_sym_number_literal_token1] = ACTIONS(267), - [sym_string_literal] = ACTIONS(267), - [sym_number_string_literal] = ACTIONS(269), - [sym_slice_string_literal] = ACTIONS(269), - [sym_underscore] = ACTIONS(267), + [sym_identifier] = ACTIONS(277), + [anon_sym_SEMI] = ACTIONS(277), + [anon_sym_EQ] = ACTIONS(277), + [anon_sym_LPAREN] = ACTIONS(279), + [anon_sym_return] = ACTIONS(277), + [anon_sym_LBRACE] = ACTIONS(277), + [anon_sym_RBRACE] = ACTIONS(279), + [anon_sym_repeat] = ACTIONS(277), + [anon_sym_if] = ACTIONS(277), + [anon_sym_ifnot] = ACTIONS(277), + [anon_sym_do] = ACTIONS(277), + [anon_sym_while] = ACTIONS(277), + [anon_sym_try] = ACTIONS(277), + [anon_sym_PLUS_EQ] = ACTIONS(279), + [anon_sym_DASH_EQ] = ACTIONS(279), + [anon_sym_STAR_EQ] = ACTIONS(279), + [anon_sym_SLASH_EQ] = ACTIONS(279), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(279), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(279), + [anon_sym_PERCENT_EQ] = ACTIONS(279), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(279), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(279), + [anon_sym_LT_LT_EQ] = ACTIONS(279), + [anon_sym_GT_GT_EQ] = ACTIONS(279), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(279), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(279), + [anon_sym_AMP_EQ] = ACTIONS(279), + [anon_sym_PIPE_EQ] = ACTIONS(279), + [anon_sym_CARET_EQ] = ACTIONS(279), + [anon_sym_QMARK] = ACTIONS(279), + [anon_sym_EQ_EQ] = ACTIONS(279), + [anon_sym_LT] = ACTIONS(277), + [anon_sym_GT] = ACTIONS(277), + [anon_sym_LT_EQ] = ACTIONS(277), + [anon_sym_GT_EQ] = ACTIONS(279), + [anon_sym_BANG_EQ] = ACTIONS(279), + [anon_sym_LT_EQ_GT] = ACTIONS(279), + [anon_sym_LT_LT] = ACTIONS(277), + [anon_sym_GT_GT] = ACTIONS(277), + [anon_sym_TILDE_GT_GT] = ACTIONS(277), + [anon_sym_CARET_GT_GT] = ACTIONS(277), + [anon_sym_DASH] = ACTIONS(277), + [anon_sym_PLUS] = ACTIONS(277), + [anon_sym_PIPE] = ACTIONS(277), + [anon_sym_CARET] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(277), + [anon_sym_SLASH] = ACTIONS(277), + [anon_sym_PERCENT] = ACTIONS(277), + [anon_sym_TILDE_SLASH] = ACTIONS(277), + [anon_sym_CARET_SLASH] = ACTIONS(277), + [anon_sym_TILDE_PERCENT] = ACTIONS(277), + [anon_sym_CARET_PERCENT] = ACTIONS(277), + [anon_sym_SLASH_PERCENT] = ACTIONS(279), + [anon_sym_AMP] = ACTIONS(277), + [anon_sym_TILDE] = ACTIONS(277), + [anon_sym_DOT] = ACTIONS(279), + [anon_sym_LBRACK] = ACTIONS(279), + [anon_sym_int] = ACTIONS(277), + [anon_sym_cell] = ACTIONS(277), + [anon_sym_slice] = ACTIONS(277), + [anon_sym_builder] = ACTIONS(277), + [anon_sym_cont] = ACTIONS(277), + [anon_sym_tuple] = ACTIONS(277), + [sym_var_type] = ACTIONS(277), + [aux_sym_number_literal_token1] = ACTIONS(277), + [sym_string_literal] = ACTIONS(277), + [sym_number_string_literal] = ACTIONS(279), + [sym_slice_string_literal] = ACTIONS(279), + [sym_underscore] = ACTIONS(277), [sym_comment] = ACTIONS(3), }, [STATE(33)] = { - [sym_identifier] = ACTIONS(271), - [anon_sym_SEMI] = ACTIONS(271), - [anon_sym_EQ] = ACTIONS(271), - [anon_sym_LPAREN] = ACTIONS(273), - [anon_sym_return] = ACTIONS(271), - [anon_sym_LBRACE] = ACTIONS(271), - [anon_sym_RBRACE] = ACTIONS(273), - [anon_sym_repeat] = ACTIONS(271), - [anon_sym_if] = ACTIONS(271), - [anon_sym_ifnot] = ACTIONS(271), - [anon_sym_do] = ACTIONS(271), - [anon_sym_while] = ACTIONS(271), - [anon_sym_try] = ACTIONS(271), - [anon_sym_PLUS_EQ] = ACTIONS(273), - [anon_sym_DASH_EQ] = ACTIONS(273), - [anon_sym_STAR_EQ] = ACTIONS(273), - [anon_sym_SLASH_EQ] = ACTIONS(273), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(273), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(273), - [anon_sym_PERCENT_EQ] = ACTIONS(273), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(273), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(273), - [anon_sym_LT_LT_EQ] = ACTIONS(273), - [anon_sym_GT_GT_EQ] = ACTIONS(273), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(273), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(273), - [anon_sym_AMP_EQ] = ACTIONS(273), - [anon_sym_PIPE_EQ] = ACTIONS(273), - [anon_sym_CARET_EQ] = ACTIONS(273), - [anon_sym_QMARK] = ACTIONS(273), - [anon_sym_EQ_EQ] = ACTIONS(273), - [anon_sym_LT] = ACTIONS(271), - [anon_sym_GT] = ACTIONS(271), - [anon_sym_LT_EQ] = ACTIONS(271), - [anon_sym_GT_EQ] = ACTIONS(273), - [anon_sym_BANG_EQ] = ACTIONS(273), - [anon_sym_LT_EQ_GT] = ACTIONS(273), - [anon_sym_LT_LT] = ACTIONS(271), - [anon_sym_GT_GT] = ACTIONS(271), - [anon_sym_TILDE_GT_GT] = ACTIONS(271), - [anon_sym_CARET_GT_GT] = ACTIONS(271), - [anon_sym_DASH] = ACTIONS(271), - [anon_sym_PLUS] = ACTIONS(271), - [anon_sym_PIPE] = ACTIONS(271), - [anon_sym_CARET] = ACTIONS(271), - [anon_sym_STAR] = ACTIONS(271), - [anon_sym_SLASH] = ACTIONS(271), - [anon_sym_PERCENT] = ACTIONS(271), - [anon_sym_TILDE_SLASH] = ACTIONS(271), - [anon_sym_CARET_SLASH] = ACTIONS(271), - [anon_sym_TILDE_PERCENT] = ACTIONS(271), - [anon_sym_CARET_PERCENT] = ACTIONS(271), - [anon_sym_SLASH_PERCENT] = ACTIONS(273), - [anon_sym_AMP] = ACTIONS(271), - [anon_sym_TILDE] = ACTIONS(271), - [anon_sym_DOT] = ACTIONS(273), - [anon_sym_LBRACK] = ACTIONS(273), - [anon_sym_int] = ACTIONS(271), - [anon_sym_cell] = ACTIONS(271), - [anon_sym_slice] = ACTIONS(271), - [anon_sym_builder] = ACTIONS(271), - [anon_sym_cont] = ACTIONS(271), - [anon_sym_tuple] = ACTIONS(271), - [sym_var_type] = ACTIONS(271), - [aux_sym_number_literal_token1] = ACTIONS(271), - [sym_string_literal] = ACTIONS(271), - [sym_number_string_literal] = ACTIONS(273), - [sym_slice_string_literal] = ACTIONS(273), - [sym_underscore] = ACTIONS(271), + [aux_sym__expr30_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(281), + [anon_sym_SEMI] = ACTIONS(281), + [anon_sym_EQ] = ACTIONS(281), + [anon_sym_LPAREN] = ACTIONS(283), + [anon_sym_return] = ACTIONS(281), + [anon_sym_LBRACE] = ACTIONS(281), + [anon_sym_RBRACE] = ACTIONS(283), + [anon_sym_repeat] = ACTIONS(281), + [anon_sym_if] = ACTIONS(281), + [anon_sym_ifnot] = ACTIONS(281), + [anon_sym_do] = ACTIONS(281), + [anon_sym_while] = ACTIONS(281), + [anon_sym_try] = ACTIONS(281), + [anon_sym_PLUS_EQ] = ACTIONS(283), + [anon_sym_DASH_EQ] = ACTIONS(283), + [anon_sym_STAR_EQ] = ACTIONS(283), + [anon_sym_SLASH_EQ] = ACTIONS(283), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(283), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(283), + [anon_sym_PERCENT_EQ] = ACTIONS(283), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(283), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(283), + [anon_sym_LT_LT_EQ] = ACTIONS(283), + [anon_sym_GT_GT_EQ] = ACTIONS(283), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(283), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(283), + [anon_sym_AMP_EQ] = ACTIONS(283), + [anon_sym_PIPE_EQ] = ACTIONS(283), + [anon_sym_CARET_EQ] = ACTIONS(283), + [anon_sym_QMARK] = ACTIONS(283), + [anon_sym_EQ_EQ] = ACTIONS(283), + [anon_sym_LT] = ACTIONS(281), + [anon_sym_GT] = ACTIONS(281), + [anon_sym_LT_EQ] = ACTIONS(281), + [anon_sym_GT_EQ] = ACTIONS(283), + [anon_sym_BANG_EQ] = ACTIONS(283), + [anon_sym_LT_EQ_GT] = ACTIONS(283), + [anon_sym_LT_LT] = ACTIONS(281), + [anon_sym_GT_GT] = ACTIONS(281), + [anon_sym_TILDE_GT_GT] = ACTIONS(281), + [anon_sym_CARET_GT_GT] = ACTIONS(281), + [anon_sym_DASH] = ACTIONS(281), + [anon_sym_PLUS] = ACTIONS(281), + [anon_sym_PIPE] = ACTIONS(281), + [anon_sym_CARET] = ACTIONS(281), + [anon_sym_STAR] = ACTIONS(219), + [anon_sym_SLASH] = ACTIONS(219), + [anon_sym_PERCENT] = ACTIONS(219), + [anon_sym_TILDE_SLASH] = ACTIONS(219), + [anon_sym_CARET_SLASH] = ACTIONS(219), + [anon_sym_TILDE_PERCENT] = ACTIONS(219), + [anon_sym_CARET_PERCENT] = ACTIONS(219), + [anon_sym_SLASH_PERCENT] = ACTIONS(221), + [anon_sym_AMP] = ACTIONS(219), + [anon_sym_TILDE] = ACTIONS(281), + [anon_sym_LBRACK] = ACTIONS(283), + [anon_sym_int] = ACTIONS(281), + [anon_sym_cell] = ACTIONS(281), + [anon_sym_slice] = ACTIONS(281), + [anon_sym_builder] = ACTIONS(281), + [anon_sym_cont] = ACTIONS(281), + [anon_sym_tuple] = ACTIONS(281), + [sym_var_type] = ACTIONS(281), + [aux_sym_number_literal_token1] = ACTIONS(281), + [sym_string_literal] = ACTIONS(281), + [sym_number_string_literal] = ACTIONS(283), + [sym_slice_string_literal] = ACTIONS(283), + [sym_underscore] = ACTIONS(281), [sym_comment] = ACTIONS(3), }, [STATE(34)] = { - [sym_identifier] = ACTIONS(275), - [anon_sym_SEMI] = ACTIONS(275), - [anon_sym_EQ] = ACTIONS(275), - [anon_sym_LPAREN] = ACTIONS(277), - [anon_sym_return] = ACTIONS(275), - [anon_sym_LBRACE] = ACTIONS(275), - [anon_sym_RBRACE] = ACTIONS(277), - [anon_sym_repeat] = ACTIONS(275), - [anon_sym_if] = ACTIONS(275), - [anon_sym_ifnot] = ACTIONS(275), - [anon_sym_do] = ACTIONS(275), - [anon_sym_while] = ACTIONS(275), - [anon_sym_try] = ACTIONS(275), - [anon_sym_PLUS_EQ] = ACTIONS(277), - [anon_sym_DASH_EQ] = ACTIONS(277), - [anon_sym_STAR_EQ] = ACTIONS(277), - [anon_sym_SLASH_EQ] = ACTIONS(277), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(277), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(277), - [anon_sym_PERCENT_EQ] = ACTIONS(277), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(277), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(277), - [anon_sym_LT_LT_EQ] = ACTIONS(277), - [anon_sym_GT_GT_EQ] = ACTIONS(277), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(277), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(277), - [anon_sym_AMP_EQ] = ACTIONS(277), - [anon_sym_PIPE_EQ] = ACTIONS(277), - [anon_sym_CARET_EQ] = ACTIONS(277), - [anon_sym_QMARK] = ACTIONS(277), - [anon_sym_EQ_EQ] = ACTIONS(277), - [anon_sym_LT] = ACTIONS(275), - [anon_sym_GT] = ACTIONS(275), - [anon_sym_LT_EQ] = ACTIONS(275), - [anon_sym_GT_EQ] = ACTIONS(277), - [anon_sym_BANG_EQ] = ACTIONS(277), - [anon_sym_LT_EQ_GT] = ACTIONS(277), - [anon_sym_LT_LT] = ACTIONS(275), - [anon_sym_GT_GT] = ACTIONS(275), - [anon_sym_TILDE_GT_GT] = ACTIONS(275), - [anon_sym_CARET_GT_GT] = ACTIONS(275), - [anon_sym_DASH] = ACTIONS(275), - [anon_sym_PLUS] = ACTIONS(275), - [anon_sym_PIPE] = ACTIONS(275), - [anon_sym_CARET] = ACTIONS(275), - [anon_sym_STAR] = ACTIONS(275), - [anon_sym_SLASH] = ACTIONS(275), - [anon_sym_PERCENT] = ACTIONS(275), - [anon_sym_TILDE_SLASH] = ACTIONS(275), - [anon_sym_CARET_SLASH] = ACTIONS(275), - [anon_sym_TILDE_PERCENT] = ACTIONS(275), - [anon_sym_CARET_PERCENT] = ACTIONS(275), - [anon_sym_SLASH_PERCENT] = ACTIONS(277), - [anon_sym_AMP] = ACTIONS(275), - [anon_sym_TILDE] = ACTIONS(275), - [anon_sym_DOT] = ACTIONS(277), - [anon_sym_LBRACK] = ACTIONS(277), - [anon_sym_int] = ACTIONS(275), - [anon_sym_cell] = ACTIONS(275), - [anon_sym_slice] = ACTIONS(275), - [anon_sym_builder] = ACTIONS(275), - [anon_sym_cont] = ACTIONS(275), - [anon_sym_tuple] = ACTIONS(275), - [sym_var_type] = ACTIONS(275), - [aux_sym_number_literal_token1] = ACTIONS(275), - [sym_string_literal] = ACTIONS(275), - [sym_number_string_literal] = ACTIONS(277), - [sym_slice_string_literal] = ACTIONS(277), - [sym_underscore] = ACTIONS(275), + [sym_identifier] = ACTIONS(285), + [anon_sym_SEMI] = ACTIONS(285), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_LPAREN] = ACTIONS(287), + [anon_sym_return] = ACTIONS(285), + [anon_sym_LBRACE] = ACTIONS(285), + [anon_sym_RBRACE] = ACTIONS(287), + [anon_sym_repeat] = ACTIONS(285), + [anon_sym_if] = ACTIONS(285), + [anon_sym_ifnot] = ACTIONS(285), + [anon_sym_do] = ACTIONS(285), + [anon_sym_while] = ACTIONS(285), + [anon_sym_try] = ACTIONS(285), + [anon_sym_PLUS_EQ] = ACTIONS(287), + [anon_sym_DASH_EQ] = ACTIONS(287), + [anon_sym_STAR_EQ] = ACTIONS(287), + [anon_sym_SLASH_EQ] = ACTIONS(287), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(287), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(287), + [anon_sym_PERCENT_EQ] = ACTIONS(287), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(287), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(287), + [anon_sym_LT_LT_EQ] = ACTIONS(287), + [anon_sym_GT_GT_EQ] = ACTIONS(287), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(287), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(287), + [anon_sym_AMP_EQ] = ACTIONS(287), + [anon_sym_PIPE_EQ] = ACTIONS(287), + [anon_sym_CARET_EQ] = ACTIONS(287), + [anon_sym_QMARK] = ACTIONS(287), + [anon_sym_EQ_EQ] = ACTIONS(287), + [anon_sym_LT] = ACTIONS(285), + [anon_sym_GT] = ACTIONS(285), + [anon_sym_LT_EQ] = ACTIONS(285), + [anon_sym_GT_EQ] = ACTIONS(287), + [anon_sym_BANG_EQ] = ACTIONS(287), + [anon_sym_LT_EQ_GT] = ACTIONS(287), + [anon_sym_LT_LT] = ACTIONS(285), + [anon_sym_GT_GT] = ACTIONS(285), + [anon_sym_TILDE_GT_GT] = ACTIONS(285), + [anon_sym_CARET_GT_GT] = ACTIONS(285), + [anon_sym_DASH] = ACTIONS(285), + [anon_sym_PLUS] = ACTIONS(285), + [anon_sym_PIPE] = ACTIONS(285), + [anon_sym_CARET] = ACTIONS(285), + [anon_sym_STAR] = ACTIONS(285), + [anon_sym_SLASH] = ACTIONS(285), + [anon_sym_PERCENT] = ACTIONS(285), + [anon_sym_TILDE_SLASH] = ACTIONS(285), + [anon_sym_CARET_SLASH] = ACTIONS(285), + [anon_sym_TILDE_PERCENT] = ACTIONS(285), + [anon_sym_CARET_PERCENT] = ACTIONS(285), + [anon_sym_SLASH_PERCENT] = ACTIONS(287), + [anon_sym_AMP] = ACTIONS(285), + [anon_sym_TILDE] = ACTIONS(285), + [anon_sym_LBRACK] = ACTIONS(287), + [anon_sym_int] = ACTIONS(285), + [anon_sym_cell] = ACTIONS(285), + [anon_sym_slice] = ACTIONS(285), + [anon_sym_builder] = ACTIONS(285), + [anon_sym_cont] = ACTIONS(285), + [anon_sym_tuple] = ACTIONS(285), + [sym_var_type] = ACTIONS(285), + [aux_sym_number_literal_token1] = ACTIONS(285), + [sym_string_literal] = ACTIONS(285), + [sym_number_string_literal] = ACTIONS(287), + [sym_slice_string_literal] = ACTIONS(287), + [sym_underscore] = ACTIONS(285), [sym_comment] = ACTIONS(3), }, [STATE(35)] = { - [sym_identifier] = ACTIONS(279), - [anon_sym_SEMI] = ACTIONS(279), - [anon_sym_EQ] = ACTIONS(279), - [anon_sym_LPAREN] = ACTIONS(281), - [anon_sym_return] = ACTIONS(279), - [anon_sym_LBRACE] = ACTIONS(279), - [anon_sym_RBRACE] = ACTIONS(281), - [anon_sym_repeat] = ACTIONS(279), - [anon_sym_if] = ACTIONS(279), - [anon_sym_ifnot] = ACTIONS(279), - [anon_sym_do] = ACTIONS(279), - [anon_sym_while] = ACTIONS(279), - [anon_sym_try] = ACTIONS(279), - [anon_sym_PLUS_EQ] = ACTIONS(281), - [anon_sym_DASH_EQ] = ACTIONS(281), - [anon_sym_STAR_EQ] = ACTIONS(281), - [anon_sym_SLASH_EQ] = ACTIONS(281), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(281), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(281), - [anon_sym_PERCENT_EQ] = ACTIONS(281), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(281), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(281), - [anon_sym_LT_LT_EQ] = ACTIONS(281), - [anon_sym_GT_GT_EQ] = ACTIONS(281), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(281), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(281), - [anon_sym_AMP_EQ] = ACTIONS(281), - [anon_sym_PIPE_EQ] = ACTIONS(281), - [anon_sym_CARET_EQ] = ACTIONS(281), - [anon_sym_QMARK] = ACTIONS(281), - [anon_sym_EQ_EQ] = ACTIONS(281), - [anon_sym_LT] = ACTIONS(279), - [anon_sym_GT] = ACTIONS(279), - [anon_sym_LT_EQ] = ACTIONS(279), - [anon_sym_GT_EQ] = ACTIONS(281), - [anon_sym_BANG_EQ] = ACTIONS(281), - [anon_sym_LT_EQ_GT] = ACTIONS(281), - [anon_sym_LT_LT] = ACTIONS(279), - [anon_sym_GT_GT] = ACTIONS(279), - [anon_sym_TILDE_GT_GT] = ACTIONS(279), - [anon_sym_CARET_GT_GT] = ACTIONS(279), - [anon_sym_DASH] = ACTIONS(279), - [anon_sym_PLUS] = ACTIONS(279), - [anon_sym_PIPE] = ACTIONS(279), - [anon_sym_CARET] = ACTIONS(279), - [anon_sym_STAR] = ACTIONS(279), - [anon_sym_SLASH] = ACTIONS(279), - [anon_sym_PERCENT] = ACTIONS(279), - [anon_sym_TILDE_SLASH] = ACTIONS(279), - [anon_sym_CARET_SLASH] = ACTIONS(279), - [anon_sym_TILDE_PERCENT] = ACTIONS(279), - [anon_sym_CARET_PERCENT] = ACTIONS(279), - [anon_sym_SLASH_PERCENT] = ACTIONS(281), - [anon_sym_AMP] = ACTIONS(279), - [anon_sym_TILDE] = ACTIONS(279), - [anon_sym_DOT] = ACTIONS(281), - [anon_sym_LBRACK] = ACTIONS(281), - [anon_sym_int] = ACTIONS(279), - [anon_sym_cell] = ACTIONS(279), - [anon_sym_slice] = ACTIONS(279), - [anon_sym_builder] = ACTIONS(279), - [anon_sym_cont] = ACTIONS(279), - [anon_sym_tuple] = ACTIONS(279), - [sym_var_type] = ACTIONS(279), - [aux_sym_number_literal_token1] = ACTIONS(279), - [sym_string_literal] = ACTIONS(279), - [sym_number_string_literal] = ACTIONS(281), - [sym_slice_string_literal] = ACTIONS(281), - [sym_underscore] = ACTIONS(279), - [sym_comment] = ACTIONS(3), - }, - [STATE(36)] = { - [sym_identifier] = ACTIONS(167), - [anon_sym_SEMI] = ACTIONS(167), - [anon_sym_EQ] = ACTIONS(167), - [anon_sym_LPAREN] = ACTIONS(169), - [anon_sym_return] = ACTIONS(167), - [anon_sym_LBRACE] = ACTIONS(167), - [anon_sym_RBRACE] = ACTIONS(169), - [anon_sym_repeat] = ACTIONS(167), - [anon_sym_if] = ACTIONS(167), - [anon_sym_ifnot] = ACTIONS(167), - [anon_sym_do] = ACTIONS(167), - [anon_sym_while] = ACTIONS(167), - [anon_sym_try] = ACTIONS(167), - [anon_sym_PLUS_EQ] = ACTIONS(169), - [anon_sym_DASH_EQ] = ACTIONS(169), - [anon_sym_STAR_EQ] = ACTIONS(169), - [anon_sym_SLASH_EQ] = ACTIONS(169), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(169), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(169), - [anon_sym_PERCENT_EQ] = ACTIONS(169), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(169), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(169), - [anon_sym_LT_LT_EQ] = ACTIONS(169), - [anon_sym_GT_GT_EQ] = ACTIONS(169), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(169), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(169), - [anon_sym_AMP_EQ] = ACTIONS(169), - [anon_sym_PIPE_EQ] = ACTIONS(169), - [anon_sym_CARET_EQ] = ACTIONS(169), - [anon_sym_QMARK] = ACTIONS(169), - [anon_sym_EQ_EQ] = ACTIONS(169), - [anon_sym_LT] = ACTIONS(167), - [anon_sym_GT] = ACTIONS(167), - [anon_sym_LT_EQ] = ACTIONS(167), - [anon_sym_GT_EQ] = ACTIONS(169), - [anon_sym_BANG_EQ] = ACTIONS(169), - [anon_sym_LT_EQ_GT] = ACTIONS(169), - [anon_sym_LT_LT] = ACTIONS(167), - [anon_sym_GT_GT] = ACTIONS(167), - [anon_sym_TILDE_GT_GT] = ACTIONS(167), - [anon_sym_CARET_GT_GT] = ACTIONS(167), - [anon_sym_DASH] = ACTIONS(167), - [anon_sym_PLUS] = ACTIONS(167), - [anon_sym_PIPE] = ACTIONS(167), - [anon_sym_CARET] = ACTIONS(167), - [anon_sym_STAR] = ACTIONS(167), - [anon_sym_SLASH] = ACTIONS(167), - [anon_sym_PERCENT] = ACTIONS(167), - [anon_sym_TILDE_SLASH] = ACTIONS(167), - [anon_sym_CARET_SLASH] = ACTIONS(167), - [anon_sym_TILDE_PERCENT] = ACTIONS(167), - [anon_sym_CARET_PERCENT] = ACTIONS(167), - [anon_sym_SLASH_PERCENT] = ACTIONS(169), - [anon_sym_AMP] = ACTIONS(167), - [anon_sym_TILDE] = ACTIONS(167), - [anon_sym_LBRACK] = ACTIONS(169), - [anon_sym_int] = ACTIONS(167), - [anon_sym_cell] = ACTIONS(167), - [anon_sym_slice] = ACTIONS(167), - [anon_sym_builder] = ACTIONS(167), - [anon_sym_cont] = ACTIONS(167), - [anon_sym_tuple] = ACTIONS(167), - [sym_var_type] = ACTIONS(167), - [aux_sym_number_literal_token1] = ACTIONS(167), - [sym_string_literal] = ACTIONS(167), - [sym_number_string_literal] = ACTIONS(169), - [sym_slice_string_literal] = ACTIONS(169), - [sym_underscore] = ACTIONS(167), - [sym_comment] = ACTIONS(3), - }, - [STATE(37)] = { - [sym_identifier] = ACTIONS(283), - [anon_sym_SEMI] = ACTIONS(283), - [anon_sym_EQ] = ACTIONS(283), - [anon_sym_LPAREN] = ACTIONS(285), - [anon_sym_return] = ACTIONS(283), - [anon_sym_LBRACE] = ACTIONS(283), - [anon_sym_RBRACE] = ACTIONS(285), - [anon_sym_repeat] = ACTIONS(283), - [anon_sym_if] = ACTIONS(283), - [anon_sym_ifnot] = ACTIONS(283), - [anon_sym_do] = ACTIONS(283), - [anon_sym_while] = ACTIONS(283), - [anon_sym_try] = ACTIONS(283), - [anon_sym_PLUS_EQ] = ACTIONS(285), - [anon_sym_DASH_EQ] = ACTIONS(285), - [anon_sym_STAR_EQ] = ACTIONS(285), - [anon_sym_SLASH_EQ] = ACTIONS(285), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(285), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(285), - [anon_sym_PERCENT_EQ] = ACTIONS(285), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(285), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(285), - [anon_sym_LT_LT_EQ] = ACTIONS(285), - [anon_sym_GT_GT_EQ] = ACTIONS(285), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(285), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(285), - [anon_sym_AMP_EQ] = ACTIONS(285), - [anon_sym_PIPE_EQ] = ACTIONS(285), - [anon_sym_CARET_EQ] = ACTIONS(285), - [anon_sym_QMARK] = ACTIONS(285), - [anon_sym_EQ_EQ] = ACTIONS(285), - [anon_sym_LT] = ACTIONS(283), - [anon_sym_GT] = ACTIONS(283), - [anon_sym_LT_EQ] = ACTIONS(283), - [anon_sym_GT_EQ] = ACTIONS(285), - [anon_sym_BANG_EQ] = ACTIONS(285), - [anon_sym_LT_EQ_GT] = ACTIONS(285), - [anon_sym_LT_LT] = ACTIONS(283), - [anon_sym_GT_GT] = ACTIONS(283), - [anon_sym_TILDE_GT_GT] = ACTIONS(283), - [anon_sym_CARET_GT_GT] = ACTIONS(283), - [anon_sym_DASH] = ACTIONS(283), - [anon_sym_PLUS] = ACTIONS(283), - [anon_sym_PIPE] = ACTIONS(283), - [anon_sym_CARET] = ACTIONS(283), - [anon_sym_STAR] = ACTIONS(283), - [anon_sym_SLASH] = ACTIONS(283), - [anon_sym_PERCENT] = ACTIONS(283), - [anon_sym_TILDE_SLASH] = ACTIONS(283), - [anon_sym_CARET_SLASH] = ACTIONS(283), - [anon_sym_TILDE_PERCENT] = ACTIONS(283), - [anon_sym_CARET_PERCENT] = ACTIONS(283), - [anon_sym_SLASH_PERCENT] = ACTIONS(285), - [anon_sym_AMP] = ACTIONS(283), - [anon_sym_TILDE] = ACTIONS(283), - [anon_sym_LBRACK] = ACTIONS(285), - [anon_sym_int] = ACTIONS(283), - [anon_sym_cell] = ACTIONS(283), - [anon_sym_slice] = ACTIONS(283), - [anon_sym_builder] = ACTIONS(283), - [anon_sym_cont] = ACTIONS(283), - [anon_sym_tuple] = ACTIONS(283), - [sym_var_type] = ACTIONS(283), - [aux_sym_number_literal_token1] = ACTIONS(283), - [sym_string_literal] = ACTIONS(283), - [sym_number_string_literal] = ACTIONS(285), - [sym_slice_string_literal] = ACTIONS(285), - [sym_underscore] = ACTIONS(283), + [sym_identifier] = ACTIONS(223), + [anon_sym_SEMI] = ACTIONS(223), + [anon_sym_EQ] = ACTIONS(223), + [anon_sym_LPAREN] = ACTIONS(225), + [anon_sym_return] = ACTIONS(223), + [anon_sym_LBRACE] = ACTIONS(223), + [anon_sym_RBRACE] = ACTIONS(225), + [anon_sym_repeat] = ACTIONS(223), + [anon_sym_if] = ACTIONS(223), + [anon_sym_ifnot] = ACTIONS(223), + [anon_sym_do] = ACTIONS(223), + [anon_sym_while] = ACTIONS(223), + [anon_sym_try] = ACTIONS(223), + [anon_sym_PLUS_EQ] = ACTIONS(225), + [anon_sym_DASH_EQ] = ACTIONS(225), + [anon_sym_STAR_EQ] = ACTIONS(225), + [anon_sym_SLASH_EQ] = ACTIONS(225), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(225), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(225), + [anon_sym_PERCENT_EQ] = ACTIONS(225), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(225), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(225), + [anon_sym_LT_LT_EQ] = ACTIONS(225), + [anon_sym_GT_GT_EQ] = ACTIONS(225), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(225), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(225), + [anon_sym_AMP_EQ] = ACTIONS(225), + [anon_sym_PIPE_EQ] = ACTIONS(225), + [anon_sym_CARET_EQ] = ACTIONS(225), + [anon_sym_QMARK] = ACTIONS(225), + [anon_sym_EQ_EQ] = ACTIONS(225), + [anon_sym_LT] = ACTIONS(223), + [anon_sym_GT] = ACTIONS(223), + [anon_sym_LT_EQ] = ACTIONS(223), + [anon_sym_GT_EQ] = ACTIONS(225), + [anon_sym_BANG_EQ] = ACTIONS(225), + [anon_sym_LT_EQ_GT] = ACTIONS(225), + [anon_sym_LT_LT] = ACTIONS(223), + [anon_sym_GT_GT] = ACTIONS(223), + [anon_sym_TILDE_GT_GT] = ACTIONS(223), + [anon_sym_CARET_GT_GT] = ACTIONS(223), + [anon_sym_DASH] = ACTIONS(223), + [anon_sym_PLUS] = ACTIONS(223), + [anon_sym_PIPE] = ACTIONS(223), + [anon_sym_CARET] = ACTIONS(223), + [anon_sym_STAR] = ACTIONS(223), + [anon_sym_SLASH] = ACTIONS(223), + [anon_sym_PERCENT] = ACTIONS(223), + [anon_sym_TILDE_SLASH] = ACTIONS(223), + [anon_sym_CARET_SLASH] = ACTIONS(223), + [anon_sym_TILDE_PERCENT] = ACTIONS(223), + [anon_sym_CARET_PERCENT] = ACTIONS(223), + [anon_sym_SLASH_PERCENT] = ACTIONS(225), + [anon_sym_AMP] = ACTIONS(223), + [anon_sym_TILDE] = ACTIONS(223), + [anon_sym_LBRACK] = ACTIONS(225), + [anon_sym_int] = ACTIONS(223), + [anon_sym_cell] = ACTIONS(223), + [anon_sym_slice] = ACTIONS(223), + [anon_sym_builder] = ACTIONS(223), + [anon_sym_cont] = ACTIONS(223), + [anon_sym_tuple] = ACTIONS(223), + [sym_var_type] = ACTIONS(223), + [aux_sym_number_literal_token1] = ACTIONS(223), + [sym_string_literal] = ACTIONS(223), + [sym_number_string_literal] = ACTIONS(225), + [sym_slice_string_literal] = ACTIONS(225), + [sym_underscore] = ACTIONS(223), [sym_comment] = ACTIONS(3), }, }; @@ -6611,13 +6662,13 @@ static const uint16_t ts_small_parse_table[] = { [0] = 5, ACTIONS(3), 1, sym_comment, - STATE(43), 1, + STATE(38), 1, aux_sym__expr20_repeat1, - ACTIONS(291), 3, + ACTIONS(293), 3, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(289), 26, + ACTIONS(291), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -6644,7 +6695,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(287), 30, + ACTIONS(289), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6675,10 +6726,43 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [72] = 3, + [72] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 30, + STATE(39), 1, + aux_sym__expr20_repeat1, + ACTIONS(293), 3, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(291), 26, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(289), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6709,10 +6793,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(295), 30, - anon_sym_COMMA, + [144] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(39), 1, + aux_sym__expr20_repeat1, + ACTIONS(293), 3, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(297), 26, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -6731,52 +6822,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_LBRACK, - anon_sym_RBRACK, sym_number_string_literal, sym_slice_string_literal, - [140] = 5, - ACTIONS(3), 1, - sym_comment, - STATE(41), 1, - aux_sym__expr20_repeat1, - ACTIONS(291), 3, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(299), 26, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(297), 30, + ACTIONS(295), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6807,17 +6860,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [212] = 5, + [216] = 5, ACTIONS(3), 1, sym_comment, - STATE(41), 1, + STATE(39), 1, aux_sym__expr20_repeat1, - ACTIONS(305), 4, + ACTIONS(303), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(303), 26, + ACTIONS(301), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -6844,7 +6897,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(301), 29, + ACTIONS(299), 29, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6874,43 +6927,10 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [284] = 5, + [288] = 3, ACTIONS(3), 1, sym_comment, - STATE(40), 1, - aux_sym__expr20_repeat1, - ACTIONS(291), 3, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(310), 26, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(308), 30, + ACTIONS(306), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6941,16 +6961,47 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, + ACTIONS(308), 30, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_LBRACK, + anon_sym_RBRACK, + sym_number_string_literal, + sym_slice_string_literal, [356] = 5, ACTIONS(3), 1, sym_comment, - STATE(41), 1, + STATE(37), 1, aux_sym__expr20_repeat1, - ACTIONS(291), 3, + ACTIONS(293), 3, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(310), 26, + ACTIONS(312), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -6977,7 +7028,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(308), 30, + ACTIONS(310), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7011,7 +7062,7 @@ static const uint16_t ts_small_parse_table[] = { [428] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(303), 26, + ACTIONS(301), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7038,7 +7089,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(301), 33, + ACTIONS(299), 33, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7075,14 +7126,14 @@ static const uint16_t ts_small_parse_table[] = { [495] = 5, ACTIONS(3), 1, sym_comment, - STATE(45), 1, + STATE(43), 1, aux_sym__expr17_repeat1, - ACTIONS(312), 4, + ACTIONS(314), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(293), 26, + ACTIONS(306), 26, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7109,7 +7160,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(295), 26, + ACTIONS(308), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7139,14 +7190,14 @@ static const uint16_t ts_small_parse_table[] = { [564] = 5, ACTIONS(3), 1, sym_comment, - STATE(45), 1, + STATE(43), 1, aux_sym__expr17_repeat1, - ACTIONS(319), 4, + ACTIONS(321), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(315), 26, + ACTIONS(317), 26, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7173,7 +7224,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(317), 26, + ACTIONS(319), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7203,14 +7254,14 @@ static const uint16_t ts_small_parse_table[] = { [633] = 5, ACTIONS(3), 1, sym_comment, - STATE(46), 1, + STATE(44), 1, aux_sym__expr17_repeat1, - ACTIONS(319), 4, + ACTIONS(321), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(321), 26, + ACTIONS(323), 26, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7237,7 +7288,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(323), 26, + ACTIONS(325), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7267,15 +7318,15 @@ static const uint16_t ts_small_parse_table[] = { [702] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(325), 1, - sym_identifier, ACTIONS(327), 1, + sym_identifier, + ACTIONS(333), 1, anon_sym_LPAREN, - STATE(49), 3, + STATE(47), 3, sym_parenthesized_expression, sym_tensor_expression, aux_sym_function_application_repeat1, - ACTIONS(41), 23, + ACTIONS(329), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7299,7 +7350,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(43), 27, + ACTIONS(331), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -7330,15 +7381,15 @@ static const uint16_t ts_small_parse_table[] = { [771] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(329), 1, - sym_identifier, - ACTIONS(332), 1, + ACTIONS(333), 1, anon_sym_LPAREN, - STATE(49), 3, + ACTIONS(335), 1, + sym_identifier, + STATE(48), 3, sym_parenthesized_expression, sym_tensor_expression, aux_sym_function_application_repeat1, - ACTIONS(34), 23, + ACTIONS(41), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7362,7 +7413,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(39), 27, + ACTIONS(43), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -7393,15 +7444,15 @@ static const uint16_t ts_small_parse_table[] = { [840] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(327), 1, - anon_sym_LPAREN, - ACTIONS(335), 1, + ACTIONS(337), 1, sym_identifier, + ACTIONS(340), 1, + anon_sym_LPAREN, STATE(48), 3, sym_parenthesized_expression, sym_tensor_expression, aux_sym_function_application_repeat1, - ACTIONS(337), 23, + ACTIONS(34), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7425,7 +7476,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(339), 27, + ACTIONS(39), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -7453,12 +7504,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [909] = 4, + [909] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(71), 1, + ACTIONS(343), 1, + sym_identifier, + ACTIONS(189), 2, + anon_sym_LPAREN, anon_sym_DASH_GT, - ACTIONS(65), 24, + ACTIONS(184), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7482,10 +7536,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(67), 28, + ACTIONS(191), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7512,14 +7564,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [972] = 5, + [974] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(82), 1, + ACTIONS(345), 1, sym_identifier, - ACTIONS(89), 1, + ACTIONS(201), 2, + anon_sym_LPAREN, anon_sym_DASH_GT, - ACTIONS(85), 23, + ACTIONS(196), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7543,9 +7596,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(87), 28, + ACTIONS(203), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7572,12 +7624,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1037] = 4, + [1039] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(69), 1, + ACTIONS(193), 1, + sym_identifier, + ACTIONS(198), 1, + anon_sym_LPAREN, + ACTIONS(201), 1, anon_sym_DASH_GT, - ACTIONS(65), 24, + ACTIONS(196), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7601,10 +7657,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(67), 28, + ACTIONS(203), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7631,14 +7685,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1100] = 5, + [1106] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(73), 1, + ACTIONS(181), 1, sym_identifier, - ACTIONS(80), 1, + ACTIONS(186), 1, + anon_sym_LPAREN, + ACTIONS(189), 1, anon_sym_DASH_GT, - ACTIONS(76), 23, + ACTIONS(184), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7662,9 +7718,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(78), 28, + ACTIONS(191), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7691,10 +7746,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1165] = 3, + [1173] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(91), 24, + ACTIONS(177), 1, + anon_sym_DASH_GT, + ACTIONS(171), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7719,7 +7776,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(93), 28, + ACTIONS(173), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -7748,17 +7805,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1225] = 6, + [1236] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(341), 1, - anon_sym_TILDE, - ACTIONS(344), 1, - anon_sym_DOT, - STATE(56), 2, - sym_method_call, - aux_sym__expr80_repeat1, - ACTIONS(55), 22, + ACTIONS(175), 1, + anon_sym_DASH_GT, + ACTIONS(171), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7781,8 +7833,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(57), 26, + anon_sym_TILDE, + sym_identifier, + ACTIONS(173), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7807,11 +7862,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - [1291] = 3, + [1299] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(76), 24, + ACTIONS(347), 1, + sym_identifier, + ACTIONS(175), 2, + anon_sym_LPAREN, + anon_sym_DASH_GT, + ACTIONS(171), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7835,10 +7896,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(78), 28, + ACTIONS(173), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7865,10 +7924,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1351] = 3, + [1364] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(239), 24, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(177), 2, + anon_sym_LPAREN, + anon_sym_DASH_GT, + ACTIONS(171), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7892,10 +7956,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(241), 28, + ACTIONS(173), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7922,10 +7984,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1411] = 3, + [1429] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(243), 24, + ACTIONS(273), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7950,7 +8012,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(245), 28, + ACTIONS(275), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -7979,10 +8041,69 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1471] = 3, + [1489] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(357), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + ACTIONS(355), 4, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + ACTIONS(353), 22, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(351), 23, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, + anon_sym_TILDE, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [1553] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(247), 24, + ACTIONS(245), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8007,7 +8128,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(249), 28, + ACTIONS(247), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8036,10 +8157,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1531] = 3, + [1613] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(251), 24, + ACTIONS(249), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8064,7 +8185,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(253), 28, + ACTIONS(251), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8093,10 +8214,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1591] = 3, + [1673] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(255), 24, + ACTIONS(253), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8121,7 +8242,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(257), 28, + ACTIONS(255), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8150,10 +8271,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1651] = 3, + [1733] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(259), 24, + ACTIONS(359), 1, + anon_sym_TILDE, + ACTIONS(362), 1, + anon_sym_DOT, + STATE(62), 2, + sym_method_call, + aux_sym__expr80_repeat1, + ACTIONS(55), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8176,11 +8304,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(261), 28, + ACTIONS(57), 26, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8205,12 +8330,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, - anon_sym_DOT, anon_sym_RBRACK, - [1711] = 3, + [1799] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(267), 24, + ACTIONS(184), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8235,7 +8359,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(269), 28, + ACTIONS(191), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8264,10 +8388,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1771] = 3, + [1859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(271), 24, + ACTIONS(257), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8292,7 +8416,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(273), 28, + ACTIONS(259), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8321,10 +8445,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1831] = 3, + [1919] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(275), 24, + ACTIONS(261), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8349,7 +8473,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(277), 28, + ACTIONS(263), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8378,10 +8502,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1891] = 3, + [1979] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(157), 24, + ACTIONS(265), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8406,7 +8530,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(159), 28, + ACTIONS(267), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8435,17 +8559,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1951] = 6, + [2039] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(347), 1, - anon_sym_TILDE, - ACTIONS(349), 1, - anon_sym_DOT, - STATE(74), 2, - sym_method_call, - aux_sym__expr80_repeat1, - ACTIONS(45), 22, + ACTIONS(269), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8468,8 +8585,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(47), 26, + anon_sym_TILDE, + sym_identifier, + ACTIONS(271), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8494,11 +8614,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - [2017] = 3, + [2099] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(141), 24, + ACTIONS(365), 1, + anon_sym_TILDE, + ACTIONS(367), 1, + anon_sym_DOT, + STATE(62), 2, + sym_method_call, + aux_sym__expr80_repeat1, + ACTIONS(45), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8521,11 +8649,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(143), 28, + ACTIONS(47), 26, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8550,12 +8675,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, - anon_sym_DOT, anon_sym_RBRACK, - [2077] = 3, + [2165] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(279), 24, + ACTIONS(207), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8580,7 +8704,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(281), 28, + ACTIONS(209), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8609,10 +8733,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2137] = 3, + [2225] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(163), 24, + ACTIONS(277), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8637,7 +8761,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(165), 28, + ACTIONS(279), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8666,14 +8790,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2197] = 5, + [2285] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(69), 1, - anon_sym_DASH_GT, - ACTIONS(351), 1, - sym_identifier, - ACTIONS(65), 23, + ACTIONS(211), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8697,8 +8817,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(67), 27, + sym_identifier, + ACTIONS(213), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8725,73 +8847,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2261] = 5, + [2345] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(71), 1, - anon_sym_DASH_GT, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(65), 23, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - ACTIONS(67), 27, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - anon_sym_RBRACK, - [2325] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(347), 1, + ACTIONS(365), 1, anon_sym_TILDE, - ACTIONS(349), 1, + ACTIONS(367), 1, anon_sym_DOT, - STATE(56), 2, + STATE(68), 2, sym_method_call, aux_sym__expr80_repeat1, ACTIONS(51), 22, @@ -8844,14 +8907,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_RBRACK, - [2391] = 5, + [2411] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(80), 1, - anon_sym_DASH_GT, - ACTIONS(355), 1, - sym_identifier, - ACTIONS(76), 23, + ACTIONS(237), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8875,8 +8934,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(78), 27, + sym_identifier, + ACTIONS(239), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8903,14 +8964,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2455] = 5, + [2471] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(89), 1, - anon_sym_DASH_GT, - ACTIONS(357), 1, - sym_identifier, - ACTIONS(85), 23, + ACTIONS(241), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8934,8 +8991,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(87), 27, + sym_identifier, + ACTIONS(243), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8962,69 +9021,250 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2519] = 5, + [2531] = 28, ACTIONS(3), 1, sym_comment, - ACTIONS(365), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - ACTIONS(363), 4, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - ACTIONS(361), 22, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, + ACTIONS(73), 1, + anon_sym_LBRACE, + ACTIONS(87), 1, + anon_sym_DASH, + ACTIONS(89), 1, + anon_sym_TILDE, + ACTIONS(91), 1, anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, sym_number_string_literal, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(359), 23, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, + ACTIONS(105), 1, + sym_underscore, + STATE(116), 1, + sym__expr15, + STATE(140), 1, + sym__expr30, + STATE(150), 1, + sym__expr20, + STATE(157), 1, + sym__expr17, + STATE(170), 1, + sym_block_statement, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(385), 2, + sym__expression, + sym__expr10, + STATE(417), 2, + sym__type_hint, + sym_function_type, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [2640] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, + anon_sym_LPAREN, + ACTIONS(87), 1, anon_sym_DASH, + ACTIONS(89), 1, anon_sym_TILDE, + ACTIONS(91), 1, + anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, + sym_underscore, + STATE(116), 1, + sym__expr15, + STATE(140), 1, + sym__expr30, + STATE(150), 1, + sym__expr20, + STATE(157), 1, + sym__expr17, + STATE(384), 1, + sym_constant_declaration_value, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(403), 2, + sym__expression, + sym__expr10, + STATE(417), 2, + sym__type_hint, + sym_function_type, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [2746] = 28, + ACTIONS(3), 1, + sym_comment, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(87), 1, + anon_sym_DASH, + ACTIONS(89), 1, + anon_sym_TILDE, + ACTIONS(95), 1, sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, + ACTIONS(99), 1, sym_string_literal, - sym_identifier, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, sym_underscore, - [2583] = 3, + ACTIONS(369), 1, + anon_sym_LPAREN, + ACTIONS(371), 1, + anon_sym_LBRACK, + ACTIONS(373), 1, + anon_sym_RBRACK, + STATE(116), 1, + sym__expr15, + STATE(120), 1, + sym_var_declaration, + STATE(140), 1, + sym__expr30, + STATE(150), 1, + sym__expr20, + STATE(157), 1, + sym__expr17, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(270), 2, + sym__type_hint, + sym_function_type, + STATE(372), 2, + sym__expression, + sym__expr10, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 3, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [2854] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(153), 24, + ACTIONS(211), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9048,10 +9288,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(155), 28, + ACTIONS(213), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -9078,65 +9316,169 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2643] = 3, + [2912] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 23, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(87), 1, anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(265), 27, - anon_sym_COMMA, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, + sym_underscore, + ACTIONS(369), 1, + anon_sym_LPAREN, + ACTIONS(371), 1, + anon_sym_LBRACK, + ACTIONS(375), 1, anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, + STATE(116), 1, + sym__expr15, + STATE(140), 1, + sym__expr30, + STATE(150), 1, + sym__expr20, + STATE(157), 1, + sym__expr17, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(292), 2, + sym__type_hint, + sym_function_type, + STATE(317), 2, + sym__expression, + sym__expr10, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [3018] = 28, + ACTIONS(3), 1, + sym_comment, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(87), 1, + anon_sym_DASH, + ACTIONS(89), 1, + anon_sym_TILDE, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, + sym_underscore, + ACTIONS(369), 1, + anon_sym_LPAREN, + ACTIONS(371), 1, + anon_sym_LBRACK, + ACTIONS(377), 1, anon_sym_RBRACK, - [2701] = 3, + STATE(116), 1, + sym__expr15, + STATE(118), 1, + sym_var_declaration, + STATE(140), 1, + sym__expr30, + STATE(150), 1, + sym__expr20, + STATE(157), 1, + sym__expr17, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(270), 2, + sym__type_hint, + sym_function_type, + STATE(322), 2, + sym__expression, + sym__expr10, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 3, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [3126] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(141), 23, + ACTIONS(233), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9160,7 +9502,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(143), 27, + ACTIONS(235), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9188,68 +9530,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2759] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(82), 1, - sym_identifier, - ACTIONS(89), 1, - anon_sym_DASH_GT, - ACTIONS(367), 3, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_RBRACK, - ACTIONS(85), 21, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - ACTIONS(87), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [2823] = 3, + [3184] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(91), 23, + ACTIONS(237), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9273,7 +9557,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(93), 27, + ACTIONS(239), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9301,13 +9585,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2881] = 3, + [3242] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(153), 23, - anon_sym_SEMI, + ACTIONS(181), 1, + sym_identifier, + ACTIONS(189), 1, + anon_sym_DASH_GT, + ACTIONS(186), 4, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACK, + ACTIONS(184), 21, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -9328,9 +9619,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(155), 27, - anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(191), 23, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -9348,21 +9637,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_DOT, - anon_sym_RBRACK, - [2939] = 3, + [3306] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(157), 23, - anon_sym_SEMI, + ACTIONS(193), 1, + sym_identifier, + ACTIONS(201), 1, + anon_sym_DASH_GT, + ACTIONS(198), 4, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACK, + ACTIONS(196), 21, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -9383,9 +9677,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(159), 27, - anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(203), 23, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -9403,18 +9695,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_DOT, - anon_sym_RBRACK, - [2997] = 3, + [3370] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(279), 23, + ACTIONS(241), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9438,7 +9728,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(281), 27, + ACTIONS(243), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9466,10 +9756,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3055] = 3, + [3428] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(163), 23, + ACTIONS(245), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9493,7 +9783,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(165), 27, + ACTIONS(247), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9521,10 +9811,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3113] = 3, + [3486] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(239), 23, + ACTIONS(249), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9548,7 +9838,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(241), 27, + ACTIONS(251), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9576,10 +9866,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3171] = 3, + [3544] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(243), 23, + ACTIONS(253), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9603,7 +9893,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(245), 27, + ACTIONS(255), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9631,10 +9921,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3229] = 3, + [3602] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(247), 23, + ACTIONS(257), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9658,7 +9948,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(249), 27, + ACTIONS(259), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9686,10 +9976,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3287] = 3, + [3660] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(251), 23, + ACTIONS(261), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9713,7 +10003,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(253), 27, + ACTIONS(263), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9741,10 +10031,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3345] = 3, + [3718] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(255), 23, + ACTIONS(269), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9768,7 +10058,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(257), 27, + ACTIONS(271), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9796,10 +10086,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3403] = 3, + [3776] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(259), 23, + ACTIONS(207), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9823,7 +10113,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(261), 27, + ACTIONS(209), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9851,10 +10141,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3461] = 3, + [3834] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(267), 23, + ACTIONS(273), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9878,7 +10168,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(269), 27, + ACTIONS(275), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9906,10 +10196,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3519] = 3, + [3892] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(271), 23, + ACTIONS(277), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9933,7 +10223,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(273), 27, + ACTIONS(279), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9961,1164 +10251,805 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3577] = 27, + [3950] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(103), 1, - anon_sym_LBRACE, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + ACTIONS(379), 1, + anon_sym_RPAREN, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(168), 1, - sym_block_statement, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(361), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(317), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [3683] = 3, + [4056] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(275), 23, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - ACTIONS(277), 27, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - anon_sym_RBRACK, - [3741] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(73), 1, - sym_identifier, - ACTIONS(80), 1, - anon_sym_DASH_GT, - ACTIONS(390), 3, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_RBRACK, - ACTIONS(76), 21, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - ACTIONS(78), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [3805] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(393), 1, - anon_sym_COMMA, - ACTIONS(395), 1, - anon_sym_RBRACK, - STATE(323), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(141), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, + ACTIONS(65), 1, sym_identifier, - ACTIONS(143), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [3868] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(399), 1, - anon_sym_SLASH_PERCENT, - STATE(109), 1, - aux_sym__expr30_repeat1, - ACTIONS(397), 8, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - ACTIONS(145), 14, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(147), 25, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [3931] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(176), 1, - sym__if_statement_contents, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(420), 1, + sym_constant_declaration_value, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(374), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(403), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4034] = 26, + [4162] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, - anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, - anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + ACTIONS(369), 1, + anon_sym_LPAREN, + ACTIONS(371), 1, + anon_sym_LBRACK, + ACTIONS(381), 1, + anon_sym_RPAREN, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(366), 1, - sym_constant_declaration_value, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(368), 2, - sym__expression, - sym__expr10, - STATE(390), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(292), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(317), 2, + sym__expression, + sym__expr10, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4137] = 26, + [4268] = 28, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, + ACTIONS(369), 1, anon_sym_LPAREN, - ACTIONS(403), 1, - anon_sym_RPAREN, - ACTIONS(405), 1, + ACTIONS(371), 1, anon_sym_LBRACK, - STATE(152), 1, + ACTIONS(383), 1, + anon_sym_RBRACK, + STATE(116), 1, + sym__expr15, + STATE(118), 1, + sym_var_declaration, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(289), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(270), 2, sym__type_hint, sym_function_type, - STATE(352), 2, + STATE(322), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(108), 4, - sym_tuple_vars_declaration, + STATE(73), 3, sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4240] = 26, + [4376] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(407), 1, - anon_sym_RPAREN, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(164), 1, + sym__if_statement_contents, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(352), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(401), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4343] = 26, + [4482] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(374), 1, + ACTIONS(69), 1, + anon_sym_LPAREN, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(91), 1, + anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, - anon_sym_LPAREN, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(409), 1, - anon_sym_RBRACK, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(167), 1, + sym__if_statement_contents, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(290), 2, - sym__type_hint, - sym_function_type, - STATE(304), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(401), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(417), 2, + sym__type_hint, + sym_function_type, + STATE(72), 3, sym__expr90, sym_function_application, - sym__expr100, - STATE(98), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + sym__expr100, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4446] = 26, + [4588] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + ACTIONS(385), 1, + anon_sym_RPAREN, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(177), 1, - sym__if_statement_contents, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(374), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(371), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4549] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(399), 1, - anon_sym_SLASH_PERCENT, - STATE(99), 1, - aux_sym__expr30_repeat1, - ACTIONS(397), 8, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - ACTIONS(133), 14, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(135), 25, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [4612] = 3, + [4694] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(411), 22, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(87), 1, anon_sym_DASH, + ACTIONS(89), 1, anon_sym_TILDE, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, + ACTIONS(95), 1, sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, + ACTIONS(99), 1, sym_string_literal, - sym_identifier, - sym_underscore, - ACTIONS(413), 27, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_LBRACK, - anon_sym_RBRACK, + ACTIONS(101), 1, sym_number_string_literal, + ACTIONS(103), 1, sym_slice_string_literal, - [4669] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(415), 1, - anon_sym_COMMA, - ACTIONS(417), 1, - anon_sym_RPAREN, - STATE(317), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(141), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(143), 24, + ACTIONS(105), 1, + sym_underscore, + ACTIONS(369), 1, anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [4732] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(422), 1, - anon_sym_SLASH_PERCENT, - STATE(109), 1, - aux_sym__expr30_repeat1, - ACTIONS(419), 8, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - ACTIONS(167), 14, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(169), 25, - anon_sym_COMMA, + ACTIONS(371), 1, + anon_sym_LBRACK, + ACTIONS(387), 1, anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [4795] = 26, + STATE(116), 1, + sym__expr15, + STATE(140), 1, + sym__expr30, + STATE(150), 1, + sym__expr20, + STATE(157), 1, + sym__expr17, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(292), 2, + sym__type_hint, + sym_function_type, + STATE(360), 2, + sym__expression, + sym__expr10, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [4800] = 28, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, + ACTIONS(369), 1, anon_sym_LPAREN, - ACTIONS(405), 1, + ACTIONS(371), 1, anon_sym_LBRACK, - ACTIONS(425), 1, - anon_sym_RPAREN, - STATE(152), 1, + ACTIONS(389), 1, + anon_sym_RBRACK, + STATE(115), 1, + sym_var_declaration, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(289), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(270), 2, sym__type_hint, sym_function_type, - STATE(352), 2, + STATE(361), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(108), 4, - sym_tuple_vars_declaration, + STATE(73), 3, sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4898] = 26, + [4908] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, + ACTIONS(369), 1, anon_sym_LPAREN, - ACTIONS(405), 1, + ACTIONS(371), 1, anon_sym_LBRACK, - ACTIONS(427), 1, - anon_sym_RBRACK, - STATE(152), 1, + ACTIONS(391), 1, + anon_sym_RPAREN, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(290), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(292), 2, sym__type_hint, sym_function_type, - STATE(304), 2, + STATE(371), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(98), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5001] = 6, + [5014] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(429), 1, - anon_sym_COMMA, - ACTIONS(431), 1, - anon_sym_RPAREN, - STATE(332), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(141), 22, + ACTIONS(265), 23, + anon_sym_SEMI, anon_sym_EQ, + anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -11139,66 +11070,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(143), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [5064] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(433), 1, + ACTIONS(267), 27, anon_sym_COMMA, - ACTIONS(435), 1, - anon_sym_RBRACK, - STATE(335), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(141), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(143), 24, - anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -11216,265 +11090,99 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, + anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_DOT, - [5127] = 26, + anon_sym_RBRACK, + [5072] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, - sym_number_string_literal, - ACTIONS(386), 1, - sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - ACTIONS(437), 1, - anon_sym_RPAREN, - STATE(152), 1, - sym__expr30, - STATE(157), 1, - sym__expr20, - STATE(163), 1, - sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(327), 2, - sym__expression, - sym__expr10, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [5230] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(374), 1, - anon_sym_DASH, - ACTIONS(376), 1, - anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, - anon_sym_LPAREN, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_RPAREN, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(289), 2, - sym__type_hint, - sym_function_type, - STATE(327), 2, + STATE(126), 2, sym__expression, sym__expr10, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(112), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [5333] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(374), 1, - anon_sym_DASH, - ACTIONS(376), 1, - anon_sym_TILDE, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, - sym_number_string_literal, - ACTIONS(386), 1, - sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - ACTIONS(401), 1, - anon_sym_LPAREN, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(441), 1, - anon_sym_RBRACK, - STATE(152), 1, - sym__expr30, - STATE(157), 1, - sym__expr20, - STATE(163), 1, - sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, + STATE(175), 2, + sym_ternary_expression, sym__expr13, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(290), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(329), 2, - sym__expression, - sym__expr10, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(113), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5436] = 6, + [5175] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(443), 1, - anon_sym_COMMA, - ACTIONS(445), 1, - anon_sym_RPAREN, - STATE(345), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(141), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, + ACTIONS(395), 1, + anon_sym_SLASH_PERCENT, + STATE(121), 1, + aux_sym__expr30_repeat1, + ACTIONS(393), 8, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -11483,44 +11191,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(143), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [5499] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(447), 1, - anon_sym_COMMA, - ACTIONS(449), 1, - anon_sym_RBRACK, - STATE(348), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(141), 22, + ACTIONS(281), 14, + anon_sym_SEMI, anon_sym_EQ, + anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -11532,18 +11206,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(143), 24, - anon_sym_LPAREN, + ACTIONS(283), 25, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -11561,275 +11226,276 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, + anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [5562] = 26, + anon_sym_RBRACK, + [5238] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(374), 1, + ACTIONS(69), 1, + anon_sym_LPAREN, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(91), 1, + anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, - anon_sym_LPAREN, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(451), 1, - anon_sym_RPAREN, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(289), 2, - sym__type_hint, - sym_function_type, - STATE(296), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(318), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(417), 2, + sym__type_hint, + sym_function_type, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(117), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5665] = 26, + [5341] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(374), 1, + ACTIONS(69), 1, + anon_sym_LPAREN, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(380), 1, + ACTIONS(91), 1, + anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - ACTIONS(401), 1, - anon_sym_LPAREN, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(453), 1, - anon_sym_RBRACK, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(290), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(342), 2, + STATE(423), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(118), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5768] = 26, + [5444] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(370), 1, + ACTIONS(397), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(401), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(403), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(415), 1, sym_underscore, - STATE(152), 1, + STATE(41), 1, sym__expr30, - STATE(157), 1, + STATE(45), 1, sym__expr20, - STATE(163), 1, + STATE(58), 1, sym__expr17, - STATE(196), 1, + STATE(116), 1, sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(377), 1, - sym_constant_declaration_value, - STATE(106), 2, + STATE(439), 1, + sym_ternary_condition, + STATE(33), 2, sym__expr75, sym__expr80, - STATE(368), 2, + STATE(126), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(131), 2, + sym_ternary_expression, + sym__expr13, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5871] = 3, + STATE(5), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [5545] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(455), 22, + ACTIONS(420), 1, + anon_sym_SLASH_PERCENT, + STATE(111), 1, + aux_sym__expr30_repeat1, + ACTIONS(417), 8, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(223), 14, anon_sym_SEMI, - anon_sym_return, + anon_sym_EQ, anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, anon_sym_DASH, - anon_sym_TILDE, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - ACTIONS(457), 26, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(225), 25, anon_sym_COMMA, - anon_sym_EQ, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_RBRACE, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -11846,168 +11512,254 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_PIPE_EQ, anon_sym_CARET_EQ, + anon_sym_QMARK, anon_sym_COLON, - anon_sym_LBRACK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, anon_sym_RBRACK, + [5608] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, + sym_identifier, + ACTIONS(399), 1, + anon_sym_LPAREN, + ACTIONS(401), 1, + anon_sym_DASH, + ACTIONS(403), 1, + anon_sym_TILDE, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(407), 1, + aux_sym_number_literal_token1, + ACTIONS(409), 1, + sym_string_literal, + ACTIONS(411), 1, sym_number_string_literal, + ACTIONS(413), 1, sym_slice_string_literal, - [5927] = 25, + ACTIONS(415), 1, + sym_underscore, + STATE(41), 1, + sym__expr30, + STATE(45), 1, + sym__expr20, + STATE(58), 1, + sym__expr17, + STATE(116), 1, + sym__expr15, + STATE(439), 1, + sym_ternary_condition, + STATE(33), 2, + sym__expr75, + sym__expr80, + STATE(130), 2, + sym_ternary_expression, + sym__expr13, + STATE(169), 2, + sym__expression, + sym__expr10, + STATE(407), 2, + sym__type_hint, + sym_function_type, + STATE(22), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(5), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [5709] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(376), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(398), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [6027] = 25, + [5812] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(390), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(397), 2, + STATE(430), 2, sym__expression, sym__expr10, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [6127] = 3, + [5915] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(167), 22, - anon_sym_SEMI, + ACTIONS(423), 1, + anon_sym_COMMA, + ACTIONS(425), 1, + anon_sym_RBRACK, + STATE(366), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(237), 22, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -12027,9 +11779,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(169), 26, - anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_TILDE, + sym_identifier, + ACTIONS(239), 24, + anon_sym_LPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -12047,244 +11800,289 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, - anon_sym_RBRACK, - [6183] = 24, + anon_sym_DOT, + [5978] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(95), 1, - sym_identifier, - ACTIONS(99), 1, - anon_sym_LPAREN, - ACTIONS(117), 1, + ACTIONS(431), 1, + anon_sym_QMARK, + ACTIONS(427), 22, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, anon_sym_DASH, - ACTIONS(119), 1, anon_sym_TILDE, - ACTIONS(121), 1, - anon_sym_LBRACK, - ACTIONS(123), 1, - aux_sym_number_literal_token1, - ACTIONS(125), 1, - sym_string_literal, - ACTIONS(127), 1, - sym_number_string_literal, - ACTIONS(129), 1, - sym_slice_string_literal, - ACTIONS(131), 1, - sym_underscore, - STATE(38), 1, - sym__expr30, - STATE(47), 1, - sym__expr20, - STATE(77), 1, - sym__expr17, - STATE(136), 1, - sym__expr15, - STATE(139), 1, - sym__expr13, - STATE(13), 2, - sym__expr75, - sym__expr80, - STATE(171), 2, - sym__expression, - sym__expr10, - STATE(391), 2, - sym__type_hint, - sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(4), 9, - sym__expr90, - sym_function_application, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - [6281] = 25, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + ACTIONS(429), 26, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_COLON, + anon_sym_LBRACK, + anon_sym_RBRACK, + sym_number_string_literal, + sym_slice_string_literal, + [6037] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(341), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(405), 2, sym__expression, sym__expr10, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [6381] = 25, + [6140] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(433), 1, + anon_sym_COMMA, + ACTIONS(435), 1, + anon_sym_RBRACK, + STATE(356), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(237), 22, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + sym_identifier, + ACTIONS(239), 24, + anon_sym_LPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [6203] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(360), 2, - sym__expression, - sym__expr10, - STATE(390), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(435), 2, + sym__expression, + sym__expr10, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [6481] = 3, + [6306] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(283), 22, - anon_sym_SEMI, + ACTIONS(437), 1, + anon_sym_COMMA, + ACTIONS(439), 1, + anon_sym_RBRACK, + STATE(376), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(237), 22, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -12304,7 +12102,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(285), 26, + anon_sym_TILDE, + sym_identifier, + ACTIONS(239), 24, + anon_sym_LPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [6369] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(395), 1, + anon_sym_SLASH_PERCENT, + STATE(111), 1, + aux_sym__expr30_repeat1, + ACTIONS(393), 8, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(215), 14, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(217), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -12329,296 +12185,180 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, anon_sym_RBRACK, - [6537] = 25, + [6432] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(372), 1, - anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(441), 22, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, anon_sym_DASH, - ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(378), 1, - anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, - sym_number_string_literal, - ACTIONS(386), 1, - sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - STATE(152), 1, - sym__expr30, - STATE(157), 1, - sym__expr20, - STATE(163), 1, - sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(394), 2, - sym__expression, - sym__expr10, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [6637] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(27), 1, sym_var_type, - ACTIONS(370), 1, + aux_sym_number_literal_token1, + sym_string_literal, sym_identifier, - ACTIONS(372), 1, + sym_underscore, + ACTIONS(443), 27, + anon_sym_COMMA, + anon_sym_EQ, anon_sym_LPAREN, - ACTIONS(374), 1, - anon_sym_DASH, - ACTIONS(376), 1, - anon_sym_TILDE, - ACTIONS(378), 1, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, + anon_sym_RBRACK, sym_number_string_literal, - ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - STATE(152), 1, - sym__expr30, - STATE(157), 1, - sym__expr20, - STATE(163), 1, - sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(392), 2, - sym__expression, - sym__expr10, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [6737] = 25, + [6489] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(372), 1, - anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(445), 22, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, anon_sym_DASH, - ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(378), 1, - anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, - sym_number_string_literal, - ACTIONS(386), 1, - sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - STATE(152), 1, - sym__expr30, - STATE(157), 1, - sym__expr20, - STATE(163), 1, - sym__expr17, - STATE(164), 1, - sym__expr10, - STATE(196), 1, - sym__expr15, - STATE(197), 1, - sym__expr13, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [6836] = 24, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + ACTIONS(447), 26, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_COLON, + anon_sym_LBRACK, + anon_sym_RBRACK, + sym_number_string_literal, + sym_slice_string_literal, + [6545] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(117), 1, + ACTIONS(401), 1, anon_sym_DASH, - ACTIONS(119), 1, + ACTIONS(403), 1, anon_sym_TILDE, - ACTIONS(121), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(125), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(127), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(129), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(131), 1, + ACTIONS(415), 1, sym_underscore, - STATE(38), 1, + STATE(41), 1, sym__expr30, - STATE(47), 1, + STATE(45), 1, sym__expr20, - STATE(77), 1, + STATE(58), 1, sym__expr17, - STATE(136), 1, + STATE(116), 1, sym__expr15, - STATE(139), 1, - sym__expr13, - STATE(164), 1, + STATE(172), 1, sym__expr10, - STATE(13), 2, + STATE(439), 1, + sym_ternary_condition, + STATE(33), 2, sym__expr75, sym__expr80, - STATE(391), 2, + STATE(130), 2, + sym_ternary_expression, + sym__expr13, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(4), 9, + STATE(5), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -12628,181 +12368,217 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [6933] = 23, + [6645] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(95), 1, - sym_identifier, - ACTIONS(99), 1, - anon_sym_LPAREN, - ACTIONS(117), 1, + ACTIONS(223), 22, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(225), 26, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_RBRACK, + [6701] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(449), 22, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, anon_sym_DASH, - ACTIONS(119), 1, anon_sym_TILDE, - ACTIONS(121), 1, - anon_sym_LBRACK, - ACTIONS(123), 1, - aux_sym_number_literal_token1, - ACTIONS(125), 1, - sym_string_literal, - ACTIONS(127), 1, - sym_number_string_literal, - ACTIONS(129), 1, - sym_slice_string_literal, - ACTIONS(131), 1, - sym_underscore, - STATE(38), 1, - sym__expr30, - STATE(47), 1, - sym__expr20, - STATE(77), 1, - sym__expr17, - STATE(122), 1, - sym__expr13, - STATE(136), 1, - sym__expr15, - STATE(13), 2, - sym__expr75, - sym__expr80, - STATE(391), 2, - sym__type_hint, - sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(4), 9, - sym__expr90, - sym_function_application, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - [7027] = 24, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + ACTIONS(451), 26, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_COLON, + anon_sym_LBRACK, + anon_sym_RBRACK, + sym_number_string_literal, + sym_slice_string_literal, + [6757] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(122), 1, - sym__expr13, - STATE(152), 1, + STATE(116), 1, + sym__expr15, + STATE(123), 1, + sym__expr10, + STATE(140), 1, sym__expr30, - STATE(157), 1, + STATE(150), 1, sym__expr20, - STATE(163), 1, + STATE(157), 1, sym__expr17, - STATE(196), 1, - sym__expr15, - STATE(106), 2, + STATE(421), 1, + sym_ternary_condition, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(390), 2, + STATE(175), 2, + sym_ternary_expression, + sym__expr13, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [7123] = 4, + [6859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(463), 1, - anon_sym_QMARK, - ACTIONS(459), 22, + ACTIONS(285), 22, anon_sym_SEMI, - anon_sym_return, + anon_sym_EQ, anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, anon_sym_DASH, - anon_sym_TILDE, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - ACTIONS(461), 22, - anon_sym_EQ, - anon_sym_LPAREN, - anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(287), 26, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -12819,67 +12595,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_PIPE_EQ, anon_sym_CARET_EQ, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - [7178] = 21, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_RBRACK, + [6915] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(117), 1, + ACTIONS(401), 1, anon_sym_DASH, - ACTIONS(119), 1, + ACTIONS(403), 1, anon_sym_TILDE, - ACTIONS(121), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(125), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(127), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(129), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(131), 1, + ACTIONS(415), 1, sym_underscore, - STATE(38), 1, + STATE(41), 1, sym__expr30, - STATE(47), 1, + STATE(45), 1, sym__expr20, - STATE(107), 1, + STATE(58), 1, sym__expr17, - STATE(13), 2, + STATE(116), 1, + sym__expr15, + STATE(123), 1, + sym__expr10, + STATE(439), 1, + sym_ternary_condition, + STATE(33), 2, sym__expr75, sym__expr80, - STATE(391), 2, + STATE(131), 2, + sym_ternary_expression, + sym__expr13, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(4), 9, + STATE(5), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -12889,84 +12678,66 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7266] = 22, + [7015] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(372), 1, + ACTIONS(457), 5, anon_sym_LPAREN, - ACTIONS(374), 1, - anon_sym_DASH, - ACTIONS(376), 1, - anon_sym_TILDE, - ACTIONS(378), 1, + anon_sym_RBRACE, anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - STATE(107), 1, - sym__expr17, - STATE(152), 1, - sym__expr30, - STATE(157), 1, - sym__expr20, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(455), 17, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + ACTIONS(453), 22, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, + anon_sym_TILDE, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [7356] = 4, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [7069] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(469), 5, + ACTIONS(457), 5, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(467), 17, + ACTIONS(459), 17, anon_sym_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -12984,7 +12755,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_PIPE_EQ, anon_sym_CARET_EQ, - ACTIONS(465), 22, + ACTIONS(453), 22, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -13007,62 +12778,63 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [7410] = 20, + [7123] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(117), 1, + ACTIONS(401), 1, anon_sym_DASH, - ACTIONS(119), 1, + ACTIONS(403), 1, anon_sym_TILDE, - ACTIONS(121), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(125), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(127), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(129), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(131), 1, + ACTIONS(415), 1, sym_underscore, - STATE(38), 1, + STATE(41), 1, sym__expr30, - STATE(39), 1, + STATE(45), 1, sym__expr20, - STATE(13), 2, + STATE(122), 1, + sym__expr17, + STATE(33), 2, sym__expr75, sym__expr80, - STATE(391), 2, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(4), 9, + STATE(5), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -13072,186 +12844,128 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7495] = 21, + [7210] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(374), 1, + ACTIONS(87), 1, anon_sym_DASH, - ACTIONS(376), 1, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, - sym_number_string_literal, - ACTIONS(386), 1, - sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - STATE(39), 1, - sym__expr20, - STATE(152), 1, - sym__expr30, - STATE(106), 2, - sym__expr75, - sym__expr80, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [7582] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(372), 1, - anon_sym_LPAREN, - ACTIONS(376), 1, - anon_sym_TILDE, - ACTIONS(378), 1, - anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(149), 1, + STATE(122), 1, + sym__expr17, + STATE(140), 1, sym__expr30, - STATE(106), 2, + STATE(150), 1, + sym__expr20, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [7663] = 18, + [7299] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(119), 1, + ACTIONS(401), 1, + anon_sym_DASH, + ACTIONS(403), 1, anon_sym_TILDE, - ACTIONS(121), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(125), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(127), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(129), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(131), 1, + ACTIONS(415), 1, sym_underscore, - STATE(44), 1, + STATE(40), 1, + sym__expr20, + STATE(41), 1, sym__expr30, - STATE(13), 2, + STATE(33), 2, sym__expr75, sym__expr80, - STATE(391), 2, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(4), 9, + STATE(5), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -13261,140 +12975,142 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7742] = 18, + [7383] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(95), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(119), 1, + ACTIONS(87), 1, + anon_sym_DASH, + ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(121), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(125), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(127), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(129), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(131), 1, + ACTIONS(105), 1, sym_underscore, - STATE(42), 1, + STATE(40), 1, + sym__expr20, + STATE(140), 1, sym__expr30, - STATE(13), 2, + STATE(107), 2, sym__expr75, sym__expr80, - STATE(391), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(4), 9, - sym__expr90, - sym_function_application, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, - sym__expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7821] = 19, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [7469] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(370), 1, + ACTIONS(397), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(376), 1, + ACTIONS(403), 1, anon_sym_TILDE, - ACTIONS(378), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(415), 1, sym_underscore, - STATE(153), 1, + STATE(36), 1, sym__expr30, - STATE(106), 2, + STATE(33), 2, sym__expr75, sym__expr80, - STATE(390), 2, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(5), 9, + sym__expr90, + sym_function_application, sym_local_vars_declaration, sym__nontype_expr100, + sym__expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [7902] = 5, + [7547] = 5, ACTIONS(3), 1, sym_comment, - STATE(151), 1, + STATE(137), 1, aux_sym__expr20_repeat1, - ACTIONS(471), 4, + ACTIONS(461), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(308), 10, + ACTIONS(299), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13405,7 +13121,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(310), 25, + ACTIONS(301), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13431,136 +13147,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [7954] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(95), 1, - sym_identifier, - ACTIONS(99), 1, - anon_sym_LPAREN, - ACTIONS(119), 1, - anon_sym_TILDE, - ACTIONS(121), 1, - anon_sym_LBRACK, - ACTIONS(123), 1, - aux_sym_number_literal_token1, - ACTIONS(125), 1, - sym_string_literal, - ACTIONS(127), 1, - sym_number_string_literal, - ACTIONS(129), 1, - sym_slice_string_literal, - ACTIONS(131), 1, - sym_underscore, - STATE(36), 2, - sym__expr75, - sym__expr80, - STATE(391), 2, - sym__type_hint, - sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(4), 9, - sym__expr90, - sym_function_application, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - [8030] = 18, + [7599] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, - sym_identifier, - ACTIONS(372), 1, - anon_sym_LPAREN, - ACTIONS(376), 1, - anon_sym_TILDE, - ACTIONS(378), 1, - anon_sym_LBRACK, - ACTIONS(380), 1, - aux_sym_number_literal_token1, - ACTIONS(382), 1, - sym_string_literal, - ACTIONS(384), 1, - sym_number_string_literal, - ACTIONS(386), 1, - sym_slice_string_literal, - ACTIONS(388), 1, - sym_underscore, - STATE(125), 2, - sym__expr75, - sym__expr80, - STATE(390), 2, - sym__type_hint, - sym_function_type, - STATE(68), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(50), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [8108] = 5, + STATE(137), 1, + aux_sym__expr20_repeat1, + ACTIONS(464), 4, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(295), 10, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + ACTIONS(297), 25, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_RBRACK, + [7651] = 5, ACTIONS(3), 1, sym_comment, - STATE(150), 1, + STATE(138), 1, aux_sym__expr20_repeat1, - ACTIONS(471), 4, + ACTIONS(464), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(308), 10, + ACTIONS(289), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13571,7 +13215,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(310), 25, + ACTIONS(291), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13597,17 +13241,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8160] = 5, + [7703] = 5, ACTIONS(3), 1, sym_comment, - STATE(151), 1, + STATE(142), 1, aux_sym__expr20_repeat1, - ACTIONS(471), 4, + ACTIONS(464), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(297), 10, + ACTIONS(310), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13618,7 +13262,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(299), 25, + ACTIONS(312), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13644,17 +13288,78 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8212] = 5, + [7755] = 19, ACTIONS(3), 1, sym_comment, - STATE(151), 1, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, + anon_sym_LPAREN, + ACTIONS(89), 1, + anon_sym_TILDE, + ACTIONS(91), 1, + anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, + sym_underscore, + STATE(146), 1, + sym__expr30, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(417), 2, + sym__type_hint, + sym_function_type, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [7835] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(137), 1, aux_sym__expr20_repeat1, - ACTIONS(473), 4, + ACTIONS(464), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(301), 10, + ACTIONS(289), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13665,7 +13370,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(303), 25, + ACTIONS(291), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13691,57 +13396,189 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8264] = 5, + [7887] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, + sym_identifier, + ACTIONS(399), 1, + anon_sym_LPAREN, + ACTIONS(403), 1, + anon_sym_TILDE, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(407), 1, + aux_sym_number_literal_token1, + ACTIONS(409), 1, + sym_string_literal, + ACTIONS(411), 1, + sym_number_string_literal, + ACTIONS(413), 1, + sym_slice_string_literal, + ACTIONS(415), 1, + sym_underscore, + STATE(42), 1, + sym__expr30, + STATE(33), 2, + sym__expr75, + sym__expr80, + STATE(407), 2, + sym__type_hint, + sym_function_type, + STATE(22), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(5), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [7965] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(65), 1, + sym_identifier, + ACTIONS(69), 1, + anon_sym_LPAREN, + ACTIONS(89), 1, + anon_sym_TILDE, + ACTIONS(91), 1, + anon_sym_LBRACK, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, + sym_underscore, + STATE(139), 1, + sym__expr30, + STATE(107), 2, + sym__expr75, + sym__expr80, + STATE(417), 2, + sym__type_hint, + sym_function_type, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [8045] = 17, ACTIONS(3), 1, sym_comment, - STATE(146), 1, - aux_sym__expr20_repeat1, - ACTIONS(471), 4, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(287), 10, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - ACTIONS(289), 25, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [8316] = 3, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, + sym_identifier, + ACTIONS(399), 1, + anon_sym_LPAREN, + ACTIONS(403), 1, + anon_sym_TILDE, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(407), 1, + aux_sym_number_literal_token1, + ACTIONS(409), 1, + sym_string_literal, + ACTIONS(411), 1, + sym_number_string_literal, + ACTIONS(413), 1, + sym_slice_string_literal, + ACTIONS(415), 1, + sym_underscore, + STATE(35), 2, + sym__expr75, + sym__expr80, + STATE(407), 2, + sym__type_hint, + sym_function_type, + STATE(22), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(5), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [8120] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(301), 14, + ACTIONS(299), 14, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13756,7 +13593,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(303), 25, + ACTIONS(301), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13782,110 +13619,111 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8363] = 17, + [8167] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(370), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(372), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(378), 1, + ACTIONS(89), 1, + anon_sym_TILDE, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(380), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(382), 1, + ACTIONS(99), 1, sym_string_literal, - ACTIONS(384), 1, + ACTIONS(101), 1, sym_number_string_literal, - ACTIONS(386), 1, + ACTIONS(103), 1, sym_slice_string_literal, - ACTIONS(388), 1, + ACTIONS(105), 1, sym_underscore, - STATE(129), 1, + STATE(125), 2, + sym__expr75, sym__expr80, - STATE(390), 2, + STATE(417), 2, sym__type_hint, sym_function_type, - STATE(68), 3, + STATE(72), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(69), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(73), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(50), 6, + STATE(46), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [8437] = 16, + [8244] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(121), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(125), 1, + ACTIONS(409), 1, sym_string_literal, - ACTIONS(127), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(129), 1, + ACTIONS(413), 1, sym_slice_string_literal, - ACTIONS(131), 1, + ACTIONS(415), 1, sym_underscore, - STATE(37), 1, + STATE(34), 1, sym__expr80, - STATE(391), 2, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(4), 9, + STATE(5), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -13895,179 +13733,123 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [8509] = 18, + [8315] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(476), 1, - ts_builtin_sym_end, - ACTIONS(478), 1, + ACTIONS(65), 1, sym_identifier, - ACTIONS(481), 1, - anon_sym_POUNDinclude, - ACTIONS(484), 1, - anon_sym_SEMI, - ACTIONS(487), 1, - anon_sym_POUNDpragma, - ACTIONS(490), 1, - anon_sym_global, - ACTIONS(493), 1, - anon_sym_const, - ACTIONS(496), 1, + ACTIONS(69), 1, anon_sym_LPAREN, - ACTIONS(499), 1, - anon_sym_forall, - ACTIONS(502), 1, + ACTIONS(91), 1, anon_sym_LBRACK, - ACTIONS(508), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(511), 1, + ACTIONS(97), 1, + aux_sym_number_literal_token1, + ACTIONS(99), 1, + sym_string_literal, + ACTIONS(101), 1, + sym_number_string_literal, + ACTIONS(103), 1, + sym_slice_string_literal, + ACTIONS(105), 1, sym_underscore, - STATE(210), 1, - sym_type_parameters, - STATE(386), 2, + STATE(128), 1, + sym__expr80, + STATE(417), 2, sym__type_hint, sym_function_type, - ACTIONS(505), 6, + STATE(72), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(73), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(46), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(156), 8, - sym__top_level_item, - sym_import_directive, - sym_pragma_directive, - sym_global_var_declarations, - sym_constant_declarations, - sym_function_declaration, - sym_empty_statement, - aux_sym_source_file_repeat1, - [8583] = 5, + [8388] = 5, ACTIONS(3), 1, sym_comment, - STATE(160), 1, + STATE(151), 1, aux_sym__expr17_repeat1, - ACTIONS(514), 4, + ACTIONS(466), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(321), 6, + ACTIONS(323), 6, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, - anon_sym_LT_EQ, - ACTIONS(323), 25, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [8631] = 18, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(9), 1, - anon_sym_POUNDinclude, - ACTIONS(11), 1, - anon_sym_SEMI, - ACTIONS(13), 1, - anon_sym_POUNDpragma, - ACTIONS(15), 1, - anon_sym_global, - ACTIONS(17), 1, - anon_sym_const, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(21), 1, - anon_sym_forall, - ACTIONS(23), 1, - anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(516), 1, - ts_builtin_sym_end, - STATE(210), 1, - sym_type_parameters, - STATE(386), 2, - sym__type_hint, - sym_function_type, - ACTIONS(25), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(156), 8, - sym__top_level_item, - sym_import_directive, - sym_pragma_directive, - sym_global_var_declarations, - sym_constant_declarations, - sym_function_declaration, - sym_empty_statement, - aux_sym_source_file_repeat1, - [8705] = 5, + anon_sym_LT_EQ, + ACTIONS(325), 25, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_RBRACK, + [8436] = 5, ACTIONS(3), 1, sym_comment, - STATE(159), 1, + STATE(152), 1, aux_sym__expr17_repeat1, - ACTIONS(518), 4, + ACTIONS(466), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(293), 6, + ACTIONS(317), 6, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(295), 25, + ACTIONS(319), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -14093,24 +13875,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8753] = 5, + [8484] = 5, ACTIONS(3), 1, sym_comment, - STATE(159), 1, + STATE(152), 1, aux_sym__expr17_repeat1, - ACTIONS(514), 4, + ACTIONS(468), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(315), 6, + ACTIONS(306), 6, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(317), 25, + ACTIONS(308), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -14136,95 +13918,160 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8801] = 15, + [8532] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(521), 1, + ACTIONS(471), 1, + ts_builtin_sym_end, + ACTIONS(473), 1, sym_identifier, - ACTIONS(523), 1, + ACTIONS(476), 1, + anon_sym_POUNDinclude, + ACTIONS(479), 1, + anon_sym_SEMI, + ACTIONS(482), 1, + anon_sym_POUNDpragma, + ACTIONS(485), 1, + anon_sym_global, + ACTIONS(488), 1, + anon_sym_const, + ACTIONS(491), 1, anon_sym_LPAREN, - ACTIONS(525), 1, + ACTIONS(494), 1, + anon_sym_forall, + ACTIONS(497), 1, anon_sym_LBRACK, - ACTIONS(527), 1, - aux_sym_number_literal_token1, - ACTIONS(529), 1, - sym_string_literal, - ACTIONS(531), 1, - sym_number_string_literal, - ACTIONS(533), 1, - sym_slice_string_literal, - ACTIONS(535), 1, + ACTIONS(503), 1, + sym_var_type, + ACTIONS(506), 1, sym_underscore, - STATE(384), 2, + STATE(212), 1, + sym_type_parameters, + STATE(426), 2, sym__type_hint, sym_function_type, - STATE(80), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(500), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(79), 7, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [8868] = 15, + STATE(153), 8, + sym__top_level_item, + sym_import_directive, + sym_pragma_directive, + sym_global_var_declarations, + sym_constant_declarations, + sym_function_declaration, + sym_empty_statement, + aux_sym_source_file_repeat1, + [8605] = 18, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(9), 1, + anon_sym_POUNDinclude, + ACTIONS(11), 1, + anon_sym_SEMI, + ACTIONS(13), 1, + anon_sym_POUNDpragma, + ACTIONS(15), 1, + anon_sym_global, + ACTIONS(17), 1, + anon_sym_const, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(21), 1, + anon_sym_forall, + ACTIONS(23), 1, + anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(509), 1, + ts_builtin_sym_end, + STATE(212), 1, + sym_type_parameters, + STATE(426), 2, + sym__type_hint, + sym_function_type, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(287), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(153), 8, + sym__top_level_item, + sym_import_directive, + sym_pragma_directive, + sym_global_var_declarations, + sym_constant_declarations, + sym_function_declaration, + sym_empty_statement, + aux_sym_source_file_repeat1, + [8678] = 15, + ACTIONS(3), 1, + sym_comment, ACTIONS(95), 1, + sym_var_type, + ACTIONS(397), 1, sym_identifier, - ACTIONS(99), 1, + ACTIONS(399), 1, anon_sym_LPAREN, - ACTIONS(121), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(123), 1, + ACTIONS(407), 1, aux_sym_number_literal_token1, - ACTIONS(127), 1, + ACTIONS(411), 1, sym_number_string_literal, - ACTIONS(131), 1, + ACTIONS(415), 1, sym_underscore, - ACTIONS(537), 1, + ACTIONS(511), 1, sym_string_literal, - ACTIONS(539), 1, + ACTIONS(513), 1, sym_slice_string_literal, - STATE(391), 2, + STATE(407), 2, sym__type_hint, sym_function_type, - STATE(14), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(22), 4, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(31), 7, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(21), 7, sym_local_vars_declaration, sym__nontype_expr100, sym__expr100, @@ -14232,31 +14079,74 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(250), 7, + [8744] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(515), 1, + sym_identifier, + ACTIONS(517), 1, + anon_sym_LPAREN, + ACTIONS(519), 1, + anon_sym_LBRACK, + ACTIONS(521), 1, + aux_sym_number_literal_token1, + ACTIONS(523), 1, + sym_string_literal, + ACTIONS(525), 1, + sym_number_string_literal, + ACTIONS(527), 1, + sym_slice_string_literal, + ACTIONS(529), 1, + sym_underscore, + STATE(393), 2, + sym__type_hint, + sym_function_type, + STATE(82), 4, + sym_var_declaration, + sym_tensor_vars_declaration, + sym__multiple_vars_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [8935] = 5, + STATE(81), 7, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [8810] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(359), 3, + ACTIONS(351), 3, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, - ACTIONS(543), 3, + ACTIONS(533), 3, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(541), 4, + ACTIONS(531), 4, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, - ACTIONS(361), 21, + ACTIONS(353), 21, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -14278,21 +14168,124 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK, anon_sym_COLON, anon_sym_RBRACK, - [8978] = 3, + [8853] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(539), 1, + anon_sym_else, + ACTIONS(541), 2, + anon_sym_elseif, + anon_sym_elseifnot, + ACTIONS(537), 6, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_TILDE, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(535), 21, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [8895] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(545), 6, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_TILDE, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(543), 24, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_else, + anon_sym_elseif, + anon_sym_elseifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [8933] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(549), 6, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_TILDE, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(547), 24, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_else, + anon_sym_elseif, + anon_sym_elseifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [8971] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(547), 10, - anon_sym_COMMA, + ACTIONS(553), 6, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_RBRACE, - anon_sym_COLON, anon_sym_TILDE, anon_sym_LBRACK, - anon_sym_RBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(545), 21, + ACTIONS(551), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14314,22 +14307,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9017] = 5, + [9006] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(553), 1, - anon_sym_else, - ACTIONS(555), 2, - anon_sym_elseif, - anon_sym_elseifnot, - ACTIONS(551), 6, + ACTIONS(557), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(549), 21, + ACTIONS(555), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14351,26 +14339,23 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9059] = 3, + [9041] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(559), 6, + ACTIONS(561), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(557), 24, + ACTIONS(559), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, anon_sym_if, anon_sym_ifnot, - anon_sym_else, - anon_sym_elseif, - anon_sym_elseifnot, anon_sym_do, anon_sym_while, anon_sym_try, @@ -14386,26 +14371,23 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9097] = 3, + [9076] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(563), 6, + ACTIONS(565), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(561), 24, + ACTIONS(563), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, anon_sym_if, anon_sym_ifnot, - anon_sym_else, - anon_sym_elseif, - anon_sym_elseifnot, anon_sym_do, anon_sym_while, anon_sym_try, @@ -14421,17 +14403,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9135] = 3, + [9111] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(567), 6, + ACTIONS(569), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(565), 21, + ACTIONS(567), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14453,17 +14435,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9170] = 3, + [9146] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(571), 6, + ACTIONS(573), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(569), 21, + ACTIONS(571), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14485,11 +14467,9 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9205] = 4, + [9181] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(575), 1, - anon_sym_SEMI, ACTIONS(577), 6, anon_sym_LPAREN, anon_sym_RBRACE, @@ -14497,7 +14477,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(573), 20, + ACTIONS(575), 21, + anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, @@ -14518,7 +14499,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9242] = 3, + [9216] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(581), 6, @@ -14550,7 +14531,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9277] = 3, + [9251] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(585), 6, @@ -14582,7 +14563,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9312] = 3, + [9286] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(589), 6, @@ -14614,7 +14595,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9347] = 3, + [9321] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(593), 6, @@ -14646,17 +14627,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9382] = 3, + [9356] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(597), 6, + ACTIONS(447), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(595), 21, + ACTIONS(445), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14678,17 +14659,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9417] = 3, + [9391] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(601), 6, + ACTIONS(597), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(599), 21, + ACTIONS(595), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14710,537 +14691,842 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9452] = 3, + [9426] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(599), 1, + sym_identifier, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_RPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(607), 1, + sym_underscore, + STATE(301), 2, + sym__type_hint, + sym_function_type, + STATE(331), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9473] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(453), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + ACTIONS(457), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + ACTIONS(609), 17, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + [9506] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(613), 1, + anon_sym_RPAREN, + ACTIONS(615), 1, + sym_underscore, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9553] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(617), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9600] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(619), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9647] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(621), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9694] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(623), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9741] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(625), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9788] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, + anon_sym_LPAREN, + ACTIONS(605), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(627), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9835] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(605), 6, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, + ACTIONS(605), 1, anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(603), 21, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + ACTIONS(629), 1, + anon_sym_RPAREN, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [9487] = 3, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9882] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 6, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, + ACTIONS(605), 1, anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(607), 21, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(615), 1, + sym_underscore, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(414), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [9522] = 3, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9926] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(613), 6, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, + ACTIONS(605), 1, anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(611), 21, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(631), 1, + sym_underscore, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(370), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [9557] = 3, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [9970] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(617), 6, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(601), 1, anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, + ACTIONS(605), 1, anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(615), 21, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(633), 1, + sym_underscore, + STATE(433), 2, + sym__type_hint, + sym_function_type, + STATE(367), 3, + sym_var_declaration, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [9592] = 11, + STATE(257), 6, + sym__atomic_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [10014] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(601), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(605), 1, anon_sym_LBRACK, - ACTIONS(623), 1, - anon_sym_RBRACK, - STATE(390), 2, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(635), 1, + sym_underscore, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, + STATE(377), 3, sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + sym_nested_tensor_declaration, + sym_tuple_vars_declaration, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9641] = 11, + [10058] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(637), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, - anon_sym_LBRACK, - ACTIONS(625), 1, + ACTIONS(641), 1, anon_sym_RPAREN, - STATE(390), 2, + ACTIONS(643), 1, + anon_sym_LBRACK, + ACTIONS(645), 1, + sym_underscore, + STATE(306), 1, + sym_parameter_declaration, + STATE(311), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9690] = 11, + [10103] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(599), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(627), 1, + ACTIONS(647), 1, anon_sym_RBRACK, - STATE(390), 2, + ACTIONS(649), 1, + sym_underscore, + STATE(337), 1, + sym_var_declaration, + STATE(308), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9739] = 11, + [10148] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(629), 1, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(651), 1, anon_sym_RBRACK, - STATE(390), 2, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9788] = 11, + [10193] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(631), 1, - anon_sym_RPAREN, - STATE(390), 2, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(653), 1, + anon_sym_RBRACK, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9837] = 11, + [10238] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(633), 1, - anon_sym_RPAREN, - STATE(289), 2, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(655), 1, + anon_sym_RBRACK, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(326), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9886] = 11, + [10283] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(635), 1, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(657), 1, anon_sym_RBRACK, - STATE(290), 2, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(328), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9935] = 11, + [10328] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_RPAREN, - STATE(390), 2, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(659), 1, + anon_sym_RBRACK, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [9984] = 11, + [10373] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(611), 1, + sym_identifier, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(639), 1, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(661), 1, anon_sym_RBRACK, - STATE(390), 2, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10033] = 11, + [10418] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_RPAREN, - STATE(390), 2, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(663), 1, + sym_identifier, + STATE(402), 1, + sym_constant_declaration, + STATE(428), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10082] = 11, + [10460] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(549), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(547), 15, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, + anon_sym_until, + anon_sym_catch, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + sym_identifier, + sym_underscore, + [10488] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(619), 1, - anon_sym_LPAREN, - ACTIONS(621), 1, - anon_sym_LBRACK, - ACTIONS(643), 1, + ACTIONS(603), 1, anon_sym_RPAREN, - STATE(390), 2, + STATE(352), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -15248,37 +15534,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10131] = 11, + [10530] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(619), 1, - anon_sym_LPAREN, - ACTIONS(621), 1, - anon_sym_LBRACK, - ACTIONS(645), 1, + ACTIONS(647), 1, anon_sym_RBRACK, - STATE(390), 2, + STATE(353), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -15286,75 +15566,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10180] = 11, + [10572] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(647), 1, - anon_sym_RPAREN, - STATE(390), 2, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(665), 1, + sym_identifier, + STATE(363), 1, + sym_global_var_declaration, + STATE(422), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10229] = 11, + [10614] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(619), 1, - anon_sym_LPAREN, - ACTIONS(621), 1, - anon_sym_LBRACK, - ACTIONS(649), 1, - anon_sym_RBRACK, - STATE(390), 2, + ACTIONS(667), 1, + anon_sym_RPAREN, + STATE(378), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -15362,259 +15630,214 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10278] = 10, + [10656] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(619), 1, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(621), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - STATE(390), 2, + ACTIONS(649), 1, + sym_underscore, + ACTIONS(665), 1, + sym_identifier, + STATE(388), 1, + sym_global_var_declaration, + STATE(422), 2, sym__type_hint, sym_function_type, - STATE(306), 4, - sym_tuple_vars_declaration, - sym_tensor_vars_declaration, - sym_var_declaration, - sym__var_declaration_lhs, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10324] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(651), 1, - anon_sym_QMARK, - ACTIONS(459), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(461), 21, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_RPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_COLON, - anon_sym_RBRACK, - [10358] = 4, + [10698] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(465), 2, + ACTIONS(545), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(543), 15, anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(469), 4, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - ACTIONS(653), 17, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - [10391] = 11, + anon_sym_global, + anon_sym_const, + anon_sym_forall, + anon_sym_until, + anon_sym_catch, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + sym_identifier, + sym_underscore, + [10726] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_LBRACK, - ACTIONS(27), 1, + ACTIONS(95), 1, sym_var_type, - ACTIONS(655), 1, + ACTIONS(611), 1, sym_identifier, - ACTIONS(657), 1, - anon_sym_RPAREN, - ACTIONS(659), 1, + ACTIONS(639), 1, + anon_sym_LPAREN, + ACTIONS(643), 1, + anon_sym_LBRACK, + ACTIONS(649), 1, sym_underscore, - STATE(281), 1, - sym_parameter_declaration, - STATE(282), 2, + STATE(410), 1, + sym_var_declaration, + STATE(433), 2, sym__type_hint, sym_function_type, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10437] = 10, + [10768] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(19), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(661), 1, + ACTIONS(669), 1, sym_identifier, - ACTIONS(663), 1, + ACTIONS(671), 1, sym_underscore, - STATE(380), 1, + STATE(419), 1, sym_parameter_declaration, - STATE(282), 2, + STATE(311), 2, sym__type_hint, sym_function_type, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10480] = 10, + [10810] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(19), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, + ACTIONS(649), 1, sym_underscore, - ACTIONS(635), 1, - anon_sym_RBRACK, - STATE(310), 2, + ACTIONS(673), 1, + sym_identifier, + STATE(389), 1, + sym_parameter_declaration, + STATE(311), 2, sym__type_hint, sym_function_type, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10523] = 10, + [10852] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(19), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, + ACTIONS(649), 1, sym_underscore, - ACTIONS(665), 1, + ACTIONS(663), 1, sym_identifier, - STATE(382), 1, - sym_global_var_declaration, - STATE(387), 2, + STATE(327), 1, + sym_constant_declaration, + STATE(428), 2, sym__type_hint, sym_function_type, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10566] = 10, + [10894] = 10, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(23), 1, anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, - ACTIONS(661), 1, - sym_identifier, - ACTIONS(663), 1, + ACTIONS(29), 1, sym_underscore, - STATE(375), 1, - sym_parameter_declaration, - STATE(282), 2, + ACTIONS(675), 1, + anon_sym_RBRACK, + STATE(341), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15624,81 +15847,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10609] = 10, + [10936] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(19), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, - sym_underscore, - ACTIONS(667), 1, + ACTIONS(669), 1, sym_identifier, - STATE(370), 1, - sym_constant_declaration, - STATE(396), 2, + ACTIONS(671), 1, + sym_underscore, + STATE(416), 1, + sym_parameter_declaration, + STATE(311), 2, sym__type_hint, sym_function_type, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10652] = 10, + [10978] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(19), 1, + ACTIONS(95), 1, + sym_var_type, + ACTIONS(639), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(643), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, + ACTIONS(649), 1, sym_underscore, - ACTIONS(665), 1, + ACTIONS(673), 1, sym_identifier, - STATE(330), 1, - sym_global_var_declaration, - STATE(387), 2, + STATE(262), 2, sym__type_hint, sym_function_type, - ACTIONS(25), 6, + ACTIONS(93), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(257), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10695] = 10, + [11017] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -15711,9 +15929,7 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(633), 1, - anon_sym_RPAREN, - STATE(300), 2, + STATE(299), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15723,17 +15939,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10738] = 10, + [11056] = 9, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(23), 1, @@ -15742,11 +15959,7 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(667), 1, - sym_identifier, - STATE(336), 1, - sym_constant_declaration, - STATE(396), 2, + STATE(432), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15756,15 +15969,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10781] = 10, + [11095] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -15777,9 +15989,7 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, ACTIONS(29), 1, sym_underscore, - STATE(369), 1, - sym_parameter_declaration, - STATE(282), 2, + STATE(373), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15789,30 +15999,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, + STATE(287), 6, sym__atomic_type, - sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10824] = 3, + [11134] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(563), 5, + ACTIONS(677), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(561), 15, + ACTIONS(679), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, anon_sym_forall, - anon_sym_until, - anon_sym_catch, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -15822,115 +16029,89 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [10852] = 9, + [11160] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(19), 1, + ACTIONS(681), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, - ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, - sym_underscore, - STATE(271), 2, - sym__type_hint, - sym_function_type, - ACTIONS(25), 6, + ACTIONS(683), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [10892] = 9, + sym_var_type, + sym_identifier, + sym_underscore, + [11186] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(19), 1, + ACTIONS(685), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, - ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, - sym_underscore, - STATE(395), 2, - sym__type_hint, - sym_function_type, - ACTIONS(25), 6, + ACTIONS(687), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [10932] = 9, + sym_var_type, + sym_identifier, + sym_underscore, + [11212] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(19), 1, + ACTIONS(689), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, - ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, - sym_underscore, - STATE(347), 2, - sym__type_hint, - sym_function_type, - ACTIONS(25), 6, + ACTIONS(691), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(250), 7, - sym__atomic_type, - sym__parenthesized_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [10972] = 3, + sym_var_type, + sym_identifier, + sym_underscore, + [11238] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(559), 5, + ACTIONS(693), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(557), 15, + ACTIONS(695), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, anon_sym_forall, - anon_sym_until, - anon_sym_catch, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -15940,16 +16121,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11000] = 3, + [11264] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(669), 5, + ACTIONS(697), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(671), 13, + ACTIONS(699), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -15963,16 +16144,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11026] = 3, + [11290] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(673), 5, + ACTIONS(701), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(675), 13, + ACTIONS(703), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -15986,16 +16167,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11052] = 3, + [11316] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(677), 5, + ACTIONS(705), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(679), 13, + ACTIONS(707), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16009,16 +16190,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11078] = 3, + [11342] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(681), 5, + ACTIONS(709), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(683), 13, + ACTIONS(711), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16032,16 +16213,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11104] = 3, + [11368] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(685), 5, + ACTIONS(713), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(687), 13, + ACTIONS(715), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16055,16 +16236,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11130] = 3, + [11394] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(689), 5, + ACTIONS(717), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(691), 13, + ACTIONS(719), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16078,17 +16259,18 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11156] = 3, + [11420] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(693), 5, + ACTIONS(725), 1, + anon_sym_SEMI, + ACTIONS(721), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(695), 13, - anon_sym_SEMI, + ACTIONS(723), 12, anon_sym_global, anon_sym_const, anon_sym_forall, @@ -16101,16 +16283,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11182] = 3, + [11448] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(697), 5, + ACTIONS(727), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(699), 13, + ACTIONS(729), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16124,16 +16306,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11208] = 3, + [11474] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(701), 5, + ACTIONS(731), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(703), 13, + ACTIONS(733), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16147,16 +16329,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11234] = 3, + [11500] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(705), 5, + ACTIONS(553), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(707), 13, + ACTIONS(551), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16170,16 +16352,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11260] = 3, + [11526] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(709), 5, + ACTIONS(735), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(711), 13, + ACTIONS(737), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16193,18 +16375,17 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11286] = 4, + [11552] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(717), 1, - anon_sym_SEMI, - ACTIONS(713), 5, + ACTIONS(739), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(715), 12, + ACTIONS(741), 13, + anon_sym_SEMI, anon_sym_global, anon_sym_const, anon_sym_forall, @@ -16217,16 +16398,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11314] = 3, + [11578] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(719), 5, + ACTIONS(743), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(721), 13, + ACTIONS(745), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16240,16 +16421,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11340] = 3, + [11604] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(723), 5, + ACTIONS(747), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(725), 13, + ACTIONS(749), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16263,16 +16444,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11366] = 3, + [11630] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(589), 5, + ACTIONS(751), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(587), 13, + ACTIONS(753), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16286,16 +16467,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11392] = 3, + [11656] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(727), 5, + ACTIONS(755), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(729), 13, + ACTIONS(757), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16309,16 +16490,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11418] = 3, + [11682] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(731), 5, + ACTIONS(759), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(733), 13, + ACTIONS(761), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16332,16 +16513,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11444] = 3, + [11708] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(735), 5, + ACTIONS(763), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(737), 13, + ACTIONS(765), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16355,16 +16536,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11470] = 3, + [11734] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(739), 5, + ACTIONS(767), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(741), 13, + ACTIONS(769), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16378,16 +16559,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11496] = 3, + [11760] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(743), 5, + ACTIONS(771), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(745), 13, + ACTIONS(773), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16401,16 +16582,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11522] = 3, + [11786] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(747), 5, + ACTIONS(775), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(749), 13, + ACTIONS(777), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16424,20 +16605,38 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11548] = 3, + [11812] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(751), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, + ACTIONS(779), 1, + sym_impure, + ACTIONS(781), 1, + anon_sym_inline, + ACTIONS(783), 1, + anon_sym_inline_ref, + ACTIONS(785), 1, + anon_sym_method_id, + ACTIONS(787), 1, + anon_sym_asm, + ACTIONS(789), 1, + anon_sym_LBRACE, + STATE(229), 1, + sym_asm_function_body, + STATE(230), 1, + sym_block_statement, + STATE(275), 1, + sym_inline, + STATE(300), 1, + sym_specifiers_list, + STATE(347), 1, + sym_method_id, + [11849] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(793), 2, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(753), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, + ACTIONS(791), 9, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16447,20 +16646,13 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11574] = 3, + [11868] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(755), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, + ACTIONS(797), 2, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(757), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, + ACTIONS(795), 9, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16470,20 +16662,38 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11600] = 3, + [11887] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(759), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, + ACTIONS(779), 1, + sym_impure, + ACTIONS(781), 1, + anon_sym_inline, + ACTIONS(783), 1, + anon_sym_inline_ref, + ACTIONS(785), 1, + anon_sym_method_id, + ACTIONS(787), 1, + anon_sym_asm, + ACTIONS(789), 1, + anon_sym_LBRACE, + STATE(221), 1, + sym_asm_function_body, + STATE(222), 1, + sym_block_statement, + STATE(275), 1, + sym_inline, + STATE(302), 1, + sym_specifiers_list, + STATE(347), 1, + sym_method_id, + [11924] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(801), 2, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(761), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, + ACTIONS(799), 9, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16493,1924 +16703,2162 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11626] = 3, + [11943] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(781), 1, + anon_sym_inline, + ACTIONS(783), 1, + anon_sym_inline_ref, + ACTIONS(785), 1, + anon_sym_method_id, + ACTIONS(805), 1, + anon_sym_asm, + STATE(281), 1, + sym_inline, + STATE(336), 1, + sym_method_id, + ACTIONS(803), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + [11969] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(779), 1, + sym_impure, + ACTIONS(781), 1, + anon_sym_inline, + ACTIONS(783), 1, + anon_sym_inline_ref, + ACTIONS(785), 1, + anon_sym_method_id, + ACTIONS(807), 1, + anon_sym_SEMI, + STATE(275), 1, + sym_inline, + STATE(347), 1, + sym_method_id, + STATE(424), 1, + sym_specifiers_list, + [11997] = 4, + ACTIONS(809), 1, + anon_sym_SPACE, + ACTIONS(814), 1, + sym_comment, + STATE(247), 1, + aux_sym_import_directive_repeat1, + ACTIONS(812), 6, + sym_version_identifier, + anon_sym_version, + anon_sym_not_DASHversion, + anon_sym_allow_DASHpost_DASHmodification, + anon_sym_compute_DASHasm_DASHltr, + sym_string_literal, + [12015] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(779), 1, + sym_impure, + ACTIONS(781), 1, + anon_sym_inline, + ACTIONS(783), 1, + anon_sym_inline_ref, + ACTIONS(785), 1, + anon_sym_method_id, + ACTIONS(816), 1, + anon_sym_SEMI, + STATE(275), 1, + sym_inline, + STATE(347), 1, + sym_method_id, + STATE(434), 1, + sym_specifiers_list, + [12043] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(818), 1, + anon_sym_SEMI, + ACTIONS(823), 1, + anon_sym_inline, + ACTIONS(826), 1, + anon_sym_asm, + ACTIONS(828), 1, + anon_sym_LBRACE, + ACTIONS(820), 3, + sym_impure, + anon_sym_inline_ref, + anon_sym_method_id, + [12064] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(347), 2, + sym_identifier, + sym_underscore, + ACTIONS(175), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12079] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(830), 2, + sym_identifier, + sym_underscore, + ACTIONS(832), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12094] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(834), 2, + sym_identifier, + sym_underscore, + ACTIONS(836), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12109] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(838), 2, + sym_identifier, + sym_underscore, + ACTIONS(840), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12124] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(349), 2, + sym_identifier, + sym_underscore, + ACTIONS(177), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12139] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(343), 2, + sym_identifier, + sym_underscore, + ACTIONS(189), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12154] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(842), 1, + anon_sym_SEMI, + ACTIONS(847), 1, + anon_sym_inline, + ACTIONS(850), 1, + anon_sym_asm, + ACTIONS(852), 1, + anon_sym_LBRACE, + ACTIONS(844), 3, + sym_impure, + anon_sym_inline_ref, + anon_sym_method_id, + [12175] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_DASH_GT, + ACTIONS(854), 2, + sym_identifier, + sym_underscore, + ACTIONS(856), 4, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACK, + [12192] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(345), 2, + sym_identifier, + sym_underscore, + ACTIONS(201), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12207] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(860), 2, + sym_identifier, + sym_underscore, + ACTIONS(862), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12222] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(864), 2, + sym_identifier, + sym_underscore, + ACTIONS(866), 5, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12237] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(177), 1, + anon_sym_DASH_GT, + ACTIONS(868), 1, + anon_sym_COMMA, + ACTIONS(871), 1, + anon_sym_RPAREN, + STATE(333), 1, + aux_sym_parameter_list_relaxed_repeat1, + ACTIONS(349), 2, + sym_identifier, + sym_underscore, + [12257] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(763), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(765), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, + ACTIONS(874), 2, sym_identifier, sym_underscore, - [11652] = 3, + ACTIONS(876), 4, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACK, + [12271] = 5, + ACTIONS(814), 1, + sym_comment, + ACTIONS(878), 1, + anon_sym_SPACE, + STATE(247), 1, + aux_sym_import_directive_repeat1, + ACTIONS(880), 2, + anon_sym_version, + anon_sym_not_DASHversion, + ACTIONS(882), 2, + anon_sym_allow_DASHpost_DASHmodification, + anon_sym_compute_DASHasm_DASHltr, + [12289] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(767), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(769), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, + ACTIONS(175), 1, + anon_sym_DASH_GT, + ACTIONS(884), 1, + anon_sym_COMMA, + ACTIONS(887), 1, + anon_sym_RPAREN, + STATE(332), 1, + aux_sym_parameter_list_relaxed_repeat1, + ACTIONS(347), 2, sym_identifier, sym_underscore, - [11678] = 12, + [12309] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(771), 1, - sym_impure, - ACTIONS(773), 1, + ACTIONS(892), 2, anon_sym_inline, - ACTIONS(775), 1, + anon_sym_LBRACE, + ACTIONS(890), 4, + sym_impure, anon_sym_inline_ref, - ACTIONS(777), 1, anon_sym_method_id, - ACTIONS(779), 1, anon_sym_asm, - ACTIONS(781), 1, - anon_sym_LBRACE, - STATE(218), 1, - sym_asm_function_body, - STATE(221), 1, - sym_block_statement, - STATE(270), 1, - sym_inline, - STATE(294), 1, - sym_specifiers_list, - STATE(316), 1, - sym_method_id, - [11715] = 3, + [12323] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(785), 2, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(783), 9, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, + ACTIONS(175), 2, + anon_sym_DASH_GT, sym_identifier, - sym_underscore, - [11734] = 3, + ACTIONS(894), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + [12336] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(789), 2, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(787), 9, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, + ACTIONS(896), 1, + anon_sym_RPAREN, + ACTIONS(898), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(290), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12351] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(7), 1, sym_identifier, - sym_underscore, - [11753] = 3, + ACTIONS(900), 1, + anon_sym_DASH_GT, + ACTIONS(902), 1, + anon_sym_type, + STATE(321), 1, + sym_type_parameter, + STATE(394), 1, + sym_type_identifier, + [12370] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(793), 2, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(791), 9, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, + ACTIONS(201), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12381] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(904), 1, sym_identifier, - sym_underscore, - [11772] = 12, + ACTIONS(906), 1, + anon_sym_COMMA, + ACTIONS(908), 1, + anon_sym_LPAREN, + ACTIONS(910), 1, + anon_sym_RBRACK, + STATE(355), 1, + aux_sym_tensor_type_repeat1, + [12400] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(771), 1, - sym_impure, - ACTIONS(773), 1, - anon_sym_inline, - ACTIONS(775), 1, - anon_sym_inline_ref, - ACTIONS(777), 1, - anon_sym_method_id, - ACTIONS(779), 1, - anon_sym_asm, - ACTIONS(781), 1, - anon_sym_LBRACE, - STATE(228), 1, - sym_asm_function_body, - STATE(229), 1, - sym_block_statement, - STATE(270), 1, - sym_inline, - STATE(291), 1, - sym_specifiers_list, - STATE(316), 1, - sym_method_id, - [11809] = 9, + ACTIONS(840), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12411] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(771), 1, - sym_impure, - ACTIONS(773), 1, - anon_sym_inline, - ACTIONS(775), 1, - anon_sym_inline_ref, - ACTIONS(777), 1, - anon_sym_method_id, - ACTIONS(795), 1, - anon_sym_SEMI, - STATE(270), 1, - sym_inline, - STATE(316), 1, - sym_method_id, - STATE(393), 1, - sym_specifiers_list, - [11837] = 9, + ACTIONS(175), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12422] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(771), 1, - sym_impure, - ACTIONS(773), 1, - anon_sym_inline, - ACTIONS(775), 1, - anon_sym_inline_ref, - ACTIONS(777), 1, - anon_sym_method_id, - ACTIONS(797), 1, - anon_sym_SEMI, - STATE(270), 1, - sym_inline, - STATE(316), 1, - sym_method_id, - STATE(398), 1, - sym_specifiers_list, - [11865] = 4, - ACTIONS(799), 1, - anon_sym_SPACE, - ACTIONS(804), 1, + ACTIONS(177), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12433] = 4, + ACTIONS(3), 1, sym_comment, - STATE(246), 1, - aux_sym_import_directive_repeat1, - ACTIONS(802), 6, - sym_version_identifier, - anon_sym_version, - anon_sym_not_DASHversion, - anon_sym_allow_DASHpost_DASHmodification, - anon_sym_compute_DASHasm_DASHltr, - sym_string_literal, - [11883] = 8, + ACTIONS(912), 1, + anon_sym_RPAREN, + ACTIONS(898), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(290), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12448] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(773), 1, - anon_sym_inline, - ACTIONS(775), 1, - anon_sym_inline_ref, - ACTIONS(777), 1, + ACTIONS(785), 1, anon_sym_method_id, - ACTIONS(808), 1, + ACTIONS(805), 1, anon_sym_asm, - STATE(267), 1, - sym_inline, - STATE(299), 1, + STATE(336), 1, sym_method_id, - ACTIONS(806), 2, + ACTIONS(803), 2, anon_sym_SEMI, anon_sym_LBRACE, - [11909] = 6, + [12465] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(810), 1, - anon_sym_SEMI, - ACTIONS(815), 1, - anon_sym_inline, - ACTIONS(818), 1, - anon_sym_asm, - ACTIONS(820), 1, - anon_sym_LBRACE, - ACTIONS(812), 3, - sym_impure, - anon_sym_inline_ref, - anon_sym_method_id, - [11930] = 6, + ACTIONS(862), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12476] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(912), 1, + anon_sym_RPAREN, + ACTIONS(898), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(267), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12491] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(822), 1, + ACTIONS(914), 2, anon_sym_SEMI, - ACTIONS(827), 1, anon_sym_inline, - ACTIONS(830), 1, - anon_sym_asm, - ACTIONS(832), 1, - anon_sym_LBRACE, - ACTIONS(824), 3, + ACTIONS(916), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [11951] = 4, + [12504] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(838), 1, + ACTIONS(175), 2, anon_sym_DASH_GT, - ACTIONS(834), 2, sym_identifier, - sym_underscore, - ACTIONS(836), 3, + ACTIONS(918), 3, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_RBRACK, - [11967] = 3, + [12517] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(840), 2, - sym_identifier, - sym_underscore, - ACTIONS(842), 4, + ACTIONS(836), 5, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH_GT, anon_sym_RBRACK, - [11981] = 6, + sym_function_name, + [12528] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(69), 1, + ACTIONS(785), 1, + anon_sym_method_id, + ACTIONS(923), 1, + anon_sym_asm, + STATE(320), 1, + sym_method_id, + ACTIONS(921), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + [12545] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(866), 5, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_DASH_GT, - ACTIONS(844), 1, + anon_sym_RBRACK, + sym_function_name, + [12556] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(189), 5, anon_sym_COMMA, - ACTIONS(847), 1, anon_sym_RPAREN, - STATE(350), 1, - aux_sym_parameter_list_relaxed_repeat1, - ACTIONS(351), 2, - sym_identifier, - sym_underscore, - [12001] = 6, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12567] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(832), 5, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH_GT, + anon_sym_RBRACK, + sym_function_name, + [12578] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(925), 1, + anon_sym_RPAREN, + ACTIONS(898), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(274), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12593] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(71), 1, - anon_sym_DASH_GT, - ACTIONS(850), 1, + ACTIONS(927), 1, anon_sym_COMMA, - ACTIONS(853), 1, + ACTIONS(929), 1, anon_sym_RPAREN, - STATE(351), 1, - aux_sym_parameter_list_relaxed_repeat1, - ACTIONS(353), 2, + STATE(323), 1, + aux_sym_nested_tensor_declaration_repeat1, + ACTIONS(177), 2, + anon_sym_DASH_GT, sym_identifier, - sym_underscore, - [12021] = 3, + [12610] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(856), 2, - sym_identifier, - sym_underscore, - ACTIONS(858), 4, + ACTIONS(931), 1, + anon_sym_DASH_GT, + ACTIONS(856), 4, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_DASH_GT, anon_sym_RBRACK, - [12035] = 3, + sym_function_name, + [12623] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(351), 2, - sym_identifier, - sym_underscore, - ACTIONS(69), 4, + ACTIONS(933), 1, anon_sym_COMMA, + ACTIONS(935), 1, anon_sym_RPAREN, + STATE(368), 1, + aux_sym_nested_tensor_declaration_repeat1, + ACTIONS(177), 2, anon_sym_DASH_GT, - anon_sym_RBRACK, - [12049] = 3, + sym_identifier, + [12640] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(353), 2, - sym_identifier, - sym_underscore, - ACTIONS(71), 4, + ACTIONS(937), 1, anon_sym_COMMA, + ACTIONS(939), 1, anon_sym_RPAREN, + STATE(383), 1, + aux_sym_nested_tensor_declaration_repeat1, + ACTIONS(177), 2, anon_sym_DASH_GT, - anon_sym_RBRACK, - [12063] = 3, + sym_identifier, + [12657] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(860), 2, - sym_identifier, - sym_underscore, - ACTIONS(862), 4, - anon_sym_COMMA, + ACTIONS(941), 1, anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12077] = 3, + ACTIONS(943), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(290), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12672] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(355), 2, - sym_identifier, - sym_underscore, - ACTIONS(80), 4, + ACTIONS(946), 1, anon_sym_COMMA, + ACTIONS(948), 1, anon_sym_RPAREN, + STATE(379), 1, + aux_sym_nested_tensor_declaration_repeat1, + ACTIONS(177), 2, anon_sym_DASH_GT, - anon_sym_RBRACK, - [12091] = 5, - ACTIONS(804), 1, - sym_comment, - ACTIONS(864), 1, - anon_sym_SPACE, - STATE(246), 1, - aux_sym_import_directive_repeat1, - ACTIONS(866), 2, - anon_sym_version, - anon_sym_not_DASHversion, - ACTIONS(868), 2, - anon_sym_allow_DASHpost_DASHmodification, - anon_sym_compute_DASHasm_DASHltr, - [12109] = 3, + sym_identifier, + [12689] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(870), 2, + ACTIONS(904), 1, sym_identifier, - sym_underscore, - ACTIONS(872), 4, + ACTIONS(906), 1, anon_sym_COMMA, + ACTIONS(908), 1, + anon_sym_LPAREN, + ACTIONS(950), 1, anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12123] = 3, + STATE(354), 1, + aux_sym_tensor_type_repeat1, + [12708] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(357), 2, + ACTIONS(175), 1, + anon_sym_DASH_GT, + ACTIONS(347), 2, sym_identifier, sym_underscore, - ACTIONS(89), 4, + ACTIONS(952), 2, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12137] = 3, + [12723] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(874), 2, + ACTIONS(177), 1, + anon_sym_DASH_GT, + ACTIONS(349), 2, sym_identifier, sym_underscore, - ACTIONS(876), 4, + ACTIONS(955), 2, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12151] = 3, + [12738] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(880), 2, + ACTIONS(958), 2, + anon_sym_SEMI, anon_sym_inline, - anon_sym_LBRACE, - ACTIONS(878), 4, + ACTIONS(960), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - anon_sym_asm, - [12165] = 3, + [12751] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(882), 2, + ACTIONS(958), 2, anon_sym_SEMI, anon_sym_inline, - ACTIONS(884), 3, + ACTIONS(960), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [12178] = 3, + [12764] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(886), 2, + ACTIONS(962), 2, anon_sym_SEMI, anon_sym_inline, - ACTIONS(888), 3, + ACTIONS(964), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [12191] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(890), 1, - anon_sym_RPAREN, - ACTIONS(892), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(266), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12206] = 5, + [12777] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(777), 1, - anon_sym_method_id, - ACTIONS(897), 1, + ACTIONS(968), 1, + anon_sym_LPAREN, + ACTIONS(970), 1, anon_sym_asm, - STATE(340), 1, - sym_method_id, - ACTIONS(895), 2, + ACTIONS(966), 2, anon_sym_SEMI, anon_sym_LBRACE, - [12223] = 4, + [12791] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(899), 1, + ACTIONS(876), 4, + anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(901), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(266), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12238] = 6, + anon_sym_RBRACK, + sym_function_name, + [12801] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(787), 1, + anon_sym_asm, + ACTIONS(789), 1, + anon_sym_LBRACE, + STATE(237), 1, + sym_asm_function_body, + STATE(238), 1, + sym_block_statement, + [12817] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(904), 1, sym_identifier, - ACTIONS(903), 1, - anon_sym_DASH_GT, - ACTIONS(905), 1, - anon_sym_type, - STATE(339), 1, - sym_type_parameter, - STATE(365), 1, - sym_type_identifier, - [12257] = 5, + ACTIONS(906), 1, + anon_sym_COMMA, + ACTIONS(950), 1, + anon_sym_RPAREN, + STATE(354), 1, + aux_sym_tensor_type_repeat1, + [12833] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(777), 1, - anon_sym_method_id, - ACTIONS(808), 1, + ACTIONS(787), 1, anon_sym_asm, - STATE(299), 1, - sym_method_id, - ACTIONS(806), 2, - anon_sym_SEMI, + ACTIONS(789), 1, anon_sym_LBRACE, - [12274] = 3, + STATE(232), 1, + sym_asm_function_body, + STATE(233), 1, + sym_block_statement, + [12849] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(907), 2, + ACTIONS(177), 2, + anon_sym_DASH_GT, sym_identifier, - sym_underscore, - ACTIONS(909), 3, + ACTIONS(972), 2, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_RBRACK, - [12287] = 4, + [12861] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(911), 1, - anon_sym_RPAREN, - ACTIONS(901), 2, + ACTIONS(974), 1, + anon_sym_SEMI, + ACTIONS(976), 1, + anon_sym_COMMA, + ACTIONS(175), 2, + anon_sym_DASH_GT, + sym_identifier, + [12875] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + sym_string_literal, + STATE(427), 1, + sym_number_literal, + ACTIONS(101), 2, aux_sym_number_literal_token1, sym_number_string_literal, - STATE(268), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12302] = 4, + [12889] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(913), 1, + ACTIONS(980), 1, + anon_sym_COMMA, + ACTIONS(982), 1, anon_sym_RPAREN, - ACTIONS(901), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(278), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12317] = 4, + STATE(334), 1, + aux_sym_parameter_list_repeat1, + STATE(335), 1, + aux_sym_parameter_list_relaxed_repeat1, + [12905] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(69), 1, + ACTIONS(984), 1, + sym_identifier, + ACTIONS(986), 1, + anon_sym_RPAREN, + ACTIONS(988), 1, anon_sym_DASH_GT, - ACTIONS(351), 2, + STATE(314), 1, + aux_sym_asm_function_body_repeat1, + [12921] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(904), 1, sym_identifier, - sym_underscore, - ACTIONS(915), 2, + ACTIONS(906), 1, + anon_sym_COMMA, + ACTIONS(910), 1, + anon_sym_RBRACK, + STATE(355), 1, + aux_sym_tensor_type_repeat1, + [12937] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(902), 1, + anon_sym_type, + STATE(394), 1, + sym_type_identifier, + STATE(413), 1, + sym_type_parameter, + [12953] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(990), 1, anon_sym_COMMA, + STATE(310), 1, + aux_sym_tensor_type_repeat1, + ACTIONS(993), 2, anon_sym_RPAREN, - [12332] = 4, + anon_sym_RBRACK, + [12967] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(71), 1, - anon_sym_DASH_GT, - ACTIONS(353), 2, + ACTIONS(995), 2, sym_identifier, sym_underscore, - ACTIONS(918), 2, + ACTIONS(997), 2, anon_sym_COMMA, anon_sym_RPAREN, - [12347] = 3, + [12979] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(921), 2, - anon_sym_SEMI, - anon_sym_inline, - ACTIONS(923), 3, - sym_impure, - anon_sym_inline_ref, - anon_sym_method_id, - [12360] = 3, + ACTIONS(999), 1, + sym_identifier, + STATE(312), 1, + aux_sym_asm_function_body_repeat1, + ACTIONS(1002), 2, + anon_sym_RPAREN, + anon_sym_DASH_GT, + [12993] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(921), 2, + ACTIONS(1004), 2, anon_sym_SEMI, - anon_sym_inline, - ACTIONS(923), 3, - sym_impure, - anon_sym_inline_ref, + anon_sym_LBRACE, + ACTIONS(1006), 2, anon_sym_method_id, - [12373] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(911), 1, - anon_sym_RPAREN, - ACTIONS(901), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(266), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12388] = 4, + anon_sym_asm, + [13005] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(925), 1, - sym_string_literal, - STATE(401), 1, - sym_number_literal, - ACTIONS(384), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - [12402] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(927), 1, - sym_identifier, - STATE(280), 1, - aux_sym_asm_function_body_repeat1, - ACTIONS(930), 2, anon_sym_RPAREN, + ACTIONS(1008), 1, + sym_identifier, + ACTIONS(1010), 1, anon_sym_DASH_GT, - [12416] = 5, + STATE(312), 1, + aux_sym_asm_function_body_repeat1, + [13021] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(932), 1, + ACTIONS(1012), 1, anon_sym_COMMA, - ACTIONS(934), 1, + STATE(315), 1, + aux_sym_tensor_expression_repeat1, + ACTIONS(1015), 2, anon_sym_RPAREN, - STATE(297), 1, - aux_sym_parameter_list_relaxed_repeat1, - STATE(324), 1, - aux_sym_parameter_list_repeat1, - [12432] = 3, + anon_sym_RBRACK, + [13035] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(936), 2, - sym_identifier, - sym_underscore, - ACTIONS(938), 2, + ACTIONS(1017), 1, + anon_sym_SEMI, + ACTIONS(1019), 1, anon_sym_COMMA, - anon_sym_RPAREN, - [12444] = 4, + STATE(346), 1, + aux_sym_constant_declarations_repeat1, + [13048] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(940), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - STATE(283), 1, - aux_sym_tensor_type_repeat1, - ACTIONS(943), 2, + ACTIONS(1023), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - [12458] = 5, + STATE(348), 1, + aux_sym_tensor_expression_repeat1, + [13061] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(913), 1, + ACTIONS(1015), 3, + anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(945), 1, - sym_identifier, - ACTIONS(947), 1, - anon_sym_DASH_GT, - STATE(280), 1, - aux_sym_asm_function_body_repeat1, - [12474] = 5, + anon_sym_RBRACK, + [13070] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, - sym_identifier, - ACTIONS(951), 1, - anon_sym_RPAREN, - ACTIONS(953), 1, - anon_sym_DASH_GT, - STATE(284), 1, - aux_sym_asm_function_body_repeat1, - [12490] = 4, + ACTIONS(1025), 1, + anon_sym_LPAREN, + STATE(243), 1, + sym_parameter_list, + STATE(248), 1, + sym_parameter_list_relaxed, + [13083] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(955), 1, + ACTIONS(1029), 1, + anon_sym_asm, + ACTIONS(1027), 2, anon_sym_SEMI, - ACTIONS(957), 1, + anon_sym_LBRACE, + [13094] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1031), 1, anon_sym_COMMA, - ACTIONS(69), 2, + ACTIONS(1033), 1, anon_sym_DASH_GT, - sym_identifier, - [12504] = 4, + STATE(342), 1, + aux_sym_type_parameters_repeat1, + [13107] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(959), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - STATE(287), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(962), 2, - anon_sym_RPAREN, + ACTIONS(1035), 1, anon_sym_RBRACK, - [12518] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(905), 1, - anon_sym_type, - STATE(363), 1, - sym_type_parameter, - STATE(365), 1, - sym_type_identifier, - [12534] = 5, + STATE(349), 1, + aux_sym_tensor_expression_repeat1, + [13120] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(964), 1, - sym_identifier, - ACTIONS(966), 1, + ACTIONS(617), 1, + anon_sym_RPAREN, + ACTIONS(1037), 1, anon_sym_COMMA, - ACTIONS(968), 1, + STATE(325), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13133] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1039), 1, + anon_sym_SEMI, + ACTIONS(1041), 1, + anon_sym_COMMA, + STATE(357), 1, + aux_sym_global_var_declarations_repeat1, + [13146] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(972), 1, anon_sym_RPAREN, - STATE(343), 1, - aux_sym_tensor_type_repeat1, - [12550] = 5, + ACTIONS(1043), 1, + anon_sym_COMMA, + STATE(325), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13159] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(964), 1, - sym_identifier, - ACTIONS(966), 1, + ACTIONS(1046), 1, anon_sym_COMMA, - ACTIONS(970), 1, + ACTIONS(1049), 1, anon_sym_RBRACK, - STATE(307), 1, - aux_sym_tensor_type_repeat1, - [12566] = 5, + STATE(326), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13172] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(779), 1, - anon_sym_asm, - ACTIONS(781), 1, - anon_sym_LBRACE, - STATE(236), 1, - sym_asm_function_body, - STATE(237), 1, - sym_block_statement, - [12582] = 3, + ACTIONS(1019), 1, + anon_sym_COMMA, + ACTIONS(1051), 1, + anon_sym_SEMI, + STATE(316), 1, + aux_sym_constant_declarations_repeat1, + [13185] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(972), 2, + ACTIONS(1053), 1, anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(974), 2, - anon_sym_method_id, - anon_sym_asm, - [12594] = 4, + ACTIONS(1055), 1, + sym_string_literal, + STATE(329), 1, + aux_sym_asm_function_body_repeat3, + [13198] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(978), 1, - anon_sym_LPAREN, - ACTIONS(980), 1, - anon_sym_asm, - ACTIONS(976), 2, + ACTIONS(1057), 1, anon_sym_SEMI, - anon_sym_LBRACE, - [12608] = 5, + ACTIONS(1059), 1, + sym_string_literal, + STATE(329), 1, + aux_sym_asm_function_body_repeat3, + [13211] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(779), 1, - anon_sym_asm, - ACTIONS(781), 1, - anon_sym_LBRACE, - STATE(231), 1, - sym_asm_function_body, - STATE(232), 1, - sym_block_statement, - [12624] = 4, + ACTIONS(906), 1, + anon_sym_COMMA, + ACTIONS(1062), 1, + anon_sym_RPAREN, + STATE(310), 1, + aux_sym_tensor_type_repeat1, + [13224] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(982), 1, + ACTIONS(927), 1, anon_sym_COMMA, - STATE(295), 1, - aux_sym_tensor_expression_repeat1, - ACTIONS(985), 2, + ACTIONS(929), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - [12638] = 4, + STATE(323), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13237] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1064), 1, anon_sym_COMMA, - ACTIONS(989), 1, + ACTIONS(1066), 1, anon_sym_RPAREN, - STATE(344), 1, - aux_sym_tensor_expression_repeat1, - [12651] = 4, + STATE(381), 1, + aux_sym_parameter_list_relaxed_repeat1, + [13250] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(991), 1, + ACTIONS(1064), 1, anon_sym_COMMA, - ACTIONS(993), 1, + ACTIONS(1068), 1, anon_sym_RPAREN, - STATE(349), 1, + STATE(381), 1, aux_sym_parameter_list_relaxed_repeat1, - [12664] = 4, + [13263] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(995), 1, - anon_sym_LPAREN, - STATE(239), 1, - sym_parameter_list, - STATE(244), 1, - sym_parameter_list_relaxed, - [12677] = 3, + ACTIONS(1070), 1, + anon_sym_COMMA, + ACTIONS(1072), 1, + anon_sym_RPAREN, + STATE(382), 1, + aux_sym_parameter_list_repeat1, + [13276] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1064), 1, + anon_sym_COMMA, + ACTIONS(1074), 1, + anon_sym_RPAREN, + STATE(381), 1, + aux_sym_parameter_list_relaxed_repeat1, + [13289] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(897), 1, + ACTIONS(923), 1, anon_sym_asm, - ACTIONS(895), 2, + ACTIONS(921), 2, anon_sym_SEMI, anon_sym_LBRACE, - [12688] = 4, + [13300] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(433), 1, anon_sym_COMMA, - ACTIONS(968), 1, - anon_sym_RPAREN, - STATE(343), 1, - aux_sym_tensor_type_repeat1, - [12701] = 4, + ACTIONS(435), 1, + anon_sym_RBRACK, + STATE(356), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13313] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(997), 1, - anon_sym_SEMI, - ACTIONS(999), 1, + ACTIONS(1076), 1, + anon_sym_LPAREN, + ACTIONS(1078), 1, sym_string_literal, - STATE(303), 1, + STATE(340), 1, aux_sym_asm_function_body_repeat3, - [12714] = 4, + [13326] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(999), 1, - sym_string_literal, - ACTIONS(1001), 1, - anon_sym_SEMI, - STATE(303), 1, - aux_sym_asm_function_body_repeat3, - [12727] = 4, + ACTIONS(213), 3, + anon_sym_RPAREN, + aux_sym_number_literal_token1, + sym_number_string_literal, + [13335] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1003), 1, - anon_sym_SEMI, - ACTIONS(1005), 1, + ACTIONS(1055), 1, sym_string_literal, - STATE(303), 1, + ACTIONS(1080), 1, + anon_sym_SEMI, + STATE(329), 1, aux_sym_asm_function_body_repeat3, - [12740] = 4, + [13348] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(906), 1, anon_sym_COMMA, - ACTIONS(1008), 1, + ACTIONS(1082), 1, anon_sym_RBRACK, - STATE(320), 1, - aux_sym_tensor_expression_repeat1, - [12753] = 4, + STATE(344), 1, + aux_sym_tensor_type_repeat1, + [13361] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1010), 1, + ACTIONS(1031), 1, anon_sym_COMMA, - ACTIONS(1012), 1, + ACTIONS(1084), 1, anon_sym_DASH_GT, - STATE(311), 1, + STATE(380), 1, aux_sym_type_parameters_repeat1, - [12766] = 2, + [13374] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(962), 3, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_RBRACK, - [12775] = 4, + ACTIONS(1055), 1, + sym_string_literal, + ACTIONS(1086), 1, + anon_sym_SEMI, + STATE(329), 1, + aux_sym_asm_function_body_repeat3, + [13387] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(906), 1, anon_sym_COMMA, - ACTIONS(1014), 1, + ACTIONS(1088), 1, anon_sym_RBRACK, - STATE(283), 1, + STATE(310), 1, aux_sym_tensor_type_repeat1, - [12788] = 4, + [13400] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(995), 1, + ACTIONS(1025), 1, anon_sym_LPAREN, - STATE(243), 1, + STATE(240), 1, sym_parameter_list, - STATE(245), 1, + STATE(246), 1, sym_parameter_list_relaxed, - [12801] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1016), 1, - anon_sym_LPAREN, - ACTIONS(1018), 1, - sym_string_literal, - STATE(302), 1, - aux_sym_asm_function_body_repeat3, - [12814] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_COMMA, - ACTIONS(970), 1, - anon_sym_RBRACK, - STATE(307), 1, - aux_sym_tensor_type_repeat1, - [12827] = 4, + [13413] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1020), 1, + ACTIONS(1090), 1, + anon_sym_SEMI, + ACTIONS(1092), 1, anon_sym_COMMA, - ACTIONS(1023), 1, - anon_sym_DASH_GT, - STATE(311), 1, - aux_sym_type_parameters_repeat1, - [12840] = 3, + STATE(346), 1, + aux_sym_constant_declarations_repeat1, + [13426] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1027), 1, + ACTIONS(805), 1, anon_sym_asm, - ACTIONS(1025), 2, + ACTIONS(803), 2, anon_sym_SEMI, anon_sym_LBRACE, - [12851] = 4, + [13437] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1029), 1, - anon_sym_SEMI, - ACTIONS(1031), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - STATE(322), 1, - aux_sym_global_var_declarations_repeat1, - [12864] = 4, + ACTIONS(1095), 1, + anon_sym_RPAREN, + STATE(315), 1, + aux_sym_tensor_expression_repeat1, + [13450] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1033), 1, - anon_sym_RPAREN, - STATE(295), 1, + ACTIONS(1097), 1, + anon_sym_RBRACK, + STATE(315), 1, aux_sym_tensor_expression_repeat1, - [12877] = 4, + [13463] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(999), 1, + ACTIONS(1055), 1, sym_string_literal, - ACTIONS(1035), 1, + ACTIONS(1099), 1, anon_sym_SEMI, - STATE(303), 1, + STATE(329), 1, aux_sym_asm_function_body_repeat3, - [12890] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(808), 1, - anon_sym_asm, - ACTIONS(806), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [12901] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 1, - anon_sym_COMMA, - ACTIONS(1039), 1, - anon_sym_RPAREN, - STATE(287), 1, - aux_sym_tuple_vars_declaration_repeat1, - [12914] = 4, - ACTIONS(804), 1, + [13476] = 4, + ACTIONS(814), 1, sym_comment, - ACTIONS(864), 1, + ACTIONS(878), 1, anon_sym_SPACE, - ACTIONS(1041), 1, + ACTIONS(1101), 1, sym_version_identifier, - STATE(246), 1, + STATE(247), 1, aux_sym_import_directive_repeat1, - [12927] = 2, + [13489] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(277), 3, + ACTIONS(906), 1, + anon_sym_COMMA, + ACTIONS(950), 1, anon_sym_RPAREN, - aux_sym_number_literal_token1, - sym_number_string_literal, - [12936] = 4, + STATE(354), 1, + aux_sym_tensor_type_repeat1, + [13502] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(906), 1, anon_sym_COMMA, - ACTIONS(1043), 1, + ACTIONS(910), 1, anon_sym_RBRACK, - STATE(295), 1, - aux_sym_tensor_expression_repeat1, - [12949] = 4, + STATE(355), 1, + aux_sym_tensor_type_repeat1, + [13515] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(999), 1, - sym_string_literal, - ACTIONS(1045), 1, - anon_sym_SEMI, - STATE(303), 1, - aux_sym_asm_function_body_repeat3, - [12962] = 4, + ACTIONS(906), 1, + anon_sym_COMMA, + ACTIONS(1103), 1, + anon_sym_RPAREN, + STATE(310), 1, + aux_sym_tensor_type_repeat1, + [13528] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1047), 1, - anon_sym_SEMI, - ACTIONS(1049), 1, + ACTIONS(906), 1, anon_sym_COMMA, - STATE(322), 1, - aux_sym_global_var_declarations_repeat1, - [12975] = 4, + ACTIONS(1105), 1, + anon_sym_RBRACK, + STATE(310), 1, + aux_sym_tensor_type_repeat1, + [13541] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1052), 1, - anon_sym_COMMA, - ACTIONS(1054), 1, + ACTIONS(651), 1, anon_sym_RBRACK, - STATE(287), 1, + ACTIONS(1107), 1, + anon_sym_COMMA, + STATE(326), 1, aux_sym_tuple_vars_declaration_repeat1, - [12988] = 4, + [13554] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1056), 1, + ACTIONS(1109), 1, + anon_sym_SEMI, + ACTIONS(1111), 1, anon_sym_COMMA, - ACTIONS(1058), 1, - anon_sym_RPAREN, - STATE(353), 1, - aux_sym_parameter_list_repeat1, - [13001] = 4, - ACTIONS(804), 1, + STATE(357), 1, + aux_sym_global_var_declarations_repeat1, + [13567] = 3, + ACTIONS(3), 1, sym_comment, - ACTIONS(864), 1, + ACTIONS(1116), 1, + anon_sym_asm, + ACTIONS(1114), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + [13578] = 4, + ACTIONS(814), 1, + sym_comment, + ACTIONS(878), 1, anon_sym_SPACE, - ACTIONS(1060), 1, + ACTIONS(1118), 1, sym_string_literal, - STATE(246), 1, + STATE(247), 1, aux_sym_import_directive_repeat1, - [13014] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(415), 1, - anon_sym_COMMA, - ACTIONS(417), 1, - anon_sym_RPAREN, - STATE(317), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13027] = 4, + [13591] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1062), 1, + ACTIONS(1120), 1, anon_sym_RPAREN, - STATE(331), 1, + STATE(364), 1, aux_sym_tensor_expression_repeat1, - [13040] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(393), 1, - anon_sym_COMMA, - ACTIONS(395), 1, - anon_sym_RBRACK, - STATE(323), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13053] = 4, + [13604] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1064), 1, + ACTIONS(1122), 1, anon_sym_RBRACK, - STATE(333), 1, + STATE(365), 1, aux_sym_tensor_expression_repeat1, - [13066] = 4, + [13617] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1031), 1, - anon_sym_COMMA, - ACTIONS(1066), 1, + ACTIONS(1055), 1, + sym_string_literal, + ACTIONS(1124), 1, anon_sym_SEMI, - STATE(313), 1, - aux_sym_global_var_declarations_repeat1, - [13079] = 4, + STATE(329), 1, + aux_sym_asm_function_body_repeat3, + [13630] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1041), 1, anon_sym_COMMA, - ACTIONS(1068), 1, - anon_sym_RPAREN, - STATE(295), 1, - aux_sym_tensor_expression_repeat1, - [13092] = 4, + ACTIONS(1126), 1, + anon_sym_SEMI, + STATE(324), 1, + aux_sym_global_var_declarations_repeat1, + [13643] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1070), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1072), 1, + ACTIONS(1128), 1, anon_sym_RPAREN, - STATE(287), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13105] = 4, + STATE(315), 1, + aux_sym_tensor_expression_repeat1, + [13656] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1074), 1, + ACTIONS(1130), 1, anon_sym_RBRACK, - STATE(295), 1, + STATE(315), 1, aux_sym_tensor_expression_repeat1, - [13118] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1076), 1, - anon_sym_EQ, - ACTIONS(69), 2, - anon_sym_DASH_GT, - sym_identifier, - [13129] = 4, + [13669] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1078), 1, - anon_sym_COMMA, - ACTIONS(1080), 1, + ACTIONS(653), 1, anon_sym_RBRACK, - STATE(287), 1, + ACTIONS(1132), 1, + anon_sym_COMMA, + STATE(326), 1, aux_sym_tuple_vars_declaration_repeat1, - [13142] = 4, + [13682] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1082), 1, - anon_sym_SEMI, - ACTIONS(1084), 1, + ACTIONS(933), 1, anon_sym_COMMA, - STATE(354), 1, - aux_sym_constant_declarations_repeat1, - [13155] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(999), 1, - sym_string_literal, - ACTIONS(1086), 1, - anon_sym_SEMI, - STATE(303), 1, - aux_sym_asm_function_body_repeat3, - [13168] = 4, + ACTIONS(935), 1, + anon_sym_RPAREN, + STATE(368), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13695] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1088), 1, - anon_sym_SEMI, - ACTIONS(1090), 1, + ACTIONS(625), 1, + anon_sym_RPAREN, + ACTIONS(1134), 1, anon_sym_COMMA, - STATE(338), 1, - aux_sym_constant_declarations_repeat1, - [13181] = 4, + STATE(325), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13708] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1010), 1, - anon_sym_COMMA, - ACTIONS(1093), 1, + ACTIONS(1136), 1, + anon_sym_EQ, + ACTIONS(175), 2, anon_sym_DASH_GT, - STATE(305), 1, - aux_sym_type_parameters_repeat1, - [13194] = 3, + sym_identifier, + [13719] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1097), 1, - anon_sym_asm, - ACTIONS(1095), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [13205] = 2, + ACTIONS(937), 1, + anon_sym_COMMA, + ACTIONS(939), 1, + anon_sym_RPAREN, + STATE(383), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13732] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(985), 3, + ACTIONS(1021), 1, anon_sym_COMMA, + ACTIONS(1138), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - [13214] = 4, + STATE(374), 1, + aux_sym_tensor_expression_repeat1, + [13745] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1099), 1, + ACTIONS(1140), 1, anon_sym_RBRACK, - STATE(346), 1, + STATE(375), 1, aux_sym_tensor_expression_repeat1, - [13227] = 4, + [13758] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(993), 3, anon_sym_COMMA, - ACTIONS(1101), 1, anon_sym_RPAREN, - STATE(283), 1, - aux_sym_tensor_type_repeat1, - [13240] = 4, + anon_sym_RBRACK, + [13767] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1103), 1, + ACTIONS(1142), 1, anon_sym_RPAREN, - STATE(295), 1, + STATE(315), 1, aux_sym_tensor_expression_repeat1, - [13253] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1105), 1, - anon_sym_COMMA, - ACTIONS(1107), 1, - anon_sym_RPAREN, - STATE(287), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13266] = 4, + [13780] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1021), 1, anon_sym_COMMA, - ACTIONS(1109), 1, + ACTIONS(1144), 1, anon_sym_RBRACK, - STATE(295), 1, + STATE(315), 1, aux_sym_tensor_expression_repeat1, - [13279] = 2, + [13793] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(943), 3, - anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(655), 1, anon_sym_RBRACK, - [13288] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1111), 1, + ACTIONS(1146), 1, anon_sym_COMMA, - ACTIONS(1113), 1, - anon_sym_RBRACK, - STATE(287), 1, + STATE(326), 1, aux_sym_tuple_vars_declaration_repeat1, - [13301] = 4, + [13806] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1115), 1, + ACTIONS(946), 1, anon_sym_COMMA, - ACTIONS(1118), 1, + ACTIONS(948), 1, anon_sym_RPAREN, - STATE(349), 1, - aux_sym_parameter_list_relaxed_repeat1, - [13314] = 4, + STATE(379), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13819] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(991), 1, + ACTIONS(906), 1, anon_sym_COMMA, - ACTIONS(1120), 1, + ACTIONS(1148), 1, anon_sym_RPAREN, - STATE(349), 1, - aux_sym_parameter_list_relaxed_repeat1, - [13327] = 4, + STATE(330), 1, + aux_sym_tensor_type_repeat1, + [13832] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(991), 1, - anon_sym_COMMA, - ACTIONS(1122), 1, + ACTIONS(623), 1, anon_sym_RPAREN, - STATE(349), 1, - aux_sym_parameter_list_relaxed_repeat1, - [13340] = 4, + ACTIONS(1150), 1, + anon_sym_COMMA, + STATE(325), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13845] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(987), 1, + ACTIONS(1152), 1, anon_sym_COMMA, - ACTIONS(1124), 1, + ACTIONS(1155), 1, + anon_sym_DASH_GT, + STATE(380), 1, + aux_sym_type_parameters_repeat1, + [13858] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1157), 1, + anon_sym_COMMA, + ACTIONS(1160), 1, anon_sym_RPAREN, - STATE(314), 1, - aux_sym_tensor_expression_repeat1, - [13353] = 4, + STATE(381), 1, + aux_sym_parameter_list_relaxed_repeat1, + [13871] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1126), 1, + ACTIONS(1162), 1, anon_sym_COMMA, - ACTIONS(1129), 1, + ACTIONS(1165), 1, anon_sym_RPAREN, - STATE(353), 1, + STATE(382), 1, aux_sym_parameter_list_repeat1, - [13366] = 4, + [13884] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1084), 1, + ACTIONS(621), 1, + anon_sym_RPAREN, + ACTIONS(1167), 1, anon_sym_COMMA, - ACTIONS(1131), 1, - anon_sym_SEMI, - STATE(338), 1, - aux_sym_constant_declarations_repeat1, - [13379] = 3, + STATE(325), 1, + aux_sym_nested_tensor_declaration_repeat1, + [13897] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1133), 1, + ACTIONS(1169), 1, anon_sym_SEMI, - ACTIONS(1135), 1, + ACTIONS(1171), 1, anon_sym_COMMA, - [13389] = 3, + [13907] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1137), 1, - sym_identifier, - STATE(358), 1, - sym_type_identifier, - [13399] = 3, - ACTIONS(804), 1, - sym_comment, - ACTIONS(1139), 1, - anon_sym_SPACE, - STATE(325), 1, - aux_sym_import_directive_repeat1, - [13409] = 2, + ACTIONS(73), 1, + anon_sym_LBRACE, + STATE(165), 1, + sym_block_statement, + [13917] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1141), 2, + ACTIONS(1173), 2, anon_sym_COMMA, - anon_sym_DASH_GT, - [13417] = 3, - ACTIONS(804), 1, + anon_sym_RPAREN, + [13925] = 3, + ACTIONS(814), 1, sym_comment, - ACTIONS(1143), 1, + ACTIONS(1175), 1, anon_sym_SPACE, - STATE(259), 1, + STATE(359), 1, aux_sym_import_directive_repeat1, - [13427] = 3, + [13935] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(103), 1, - anon_sym_LBRACE, - STATE(178), 1, - sym_block_statement, - [13437] = 3, + ACTIONS(1109), 1, + anon_sym_SEMI, + ACTIONS(1177), 1, + anon_sym_COMMA, + [13945] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(103), 1, - anon_sym_LBRACE, - STATE(172), 1, - sym_block_statement, - [13447] = 2, + ACTIONS(1165), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [13953] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1145), 2, + ACTIONS(1179), 2, anon_sym_COMMA, anon_sym_RPAREN, - [13455] = 2, + [13961] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1023), 2, + ACTIONS(1181), 2, anon_sym_COMMA, - anon_sym_DASH_GT, - [13463] = 3, - ACTIONS(804), 1, + anon_sym_RPAREN, + [13969] = 3, + ACTIONS(814), 1, sym_comment, - ACTIONS(1147), 1, + ACTIONS(1183), 1, anon_sym_SPACE, - STATE(318), 1, + STATE(263), 1, aux_sym_import_directive_repeat1, - [13473] = 2, + [13979] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1185), 1, + sym_identifier, + ACTIONS(1187), 1, + anon_sym_LPAREN, + [13989] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1149), 2, + ACTIONS(1189), 2, anon_sym_COMMA, anon_sym_DASH_GT, - [13481] = 3, + [13997] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1151), 1, - anon_sym_SEMI, - ACTIONS(1153), 1, - anon_sym_COMMA, - [13491] = 3, + ACTIONS(1191), 1, + sym_string_literal, + STATE(328), 1, + aux_sym_asm_function_body_repeat3, + [14007] = 3, + ACTIONS(814), 1, + sym_comment, + ACTIONS(1193), 1, + anon_sym_SPACE, + STATE(351), 1, + aux_sym_import_directive_repeat1, + [14017] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1155), 1, + ACTIONS(1195), 1, sym_string_literal, - STATE(337), 1, + STATE(343), 1, aux_sym_asm_function_body_repeat3, - [13501] = 3, + [14027] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1157), 1, + ACTIONS(73), 1, + anon_sym_LBRACE, + STATE(168), 1, + sym_block_statement, + [14037] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1197), 1, anon_sym_SEMI, - ACTIONS(1159), 1, + ACTIONS(1199), 1, anon_sym_COMMA, - [13511] = 2, + [14047] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1129), 2, + ACTIONS(1201), 2, anon_sym_COMMA, - anon_sym_RPAREN, - [13519] = 3, + anon_sym_DASH_GT, + [14055] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1088), 1, + ACTIONS(73), 1, + anon_sym_LBRACE, + STATE(158), 1, + sym_block_statement, + [14065] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 1, anon_sym_SEMI, - ACTIONS(1161), 1, + ACTIONS(1203), 1, anon_sym_COMMA, - [13529] = 3, + [14075] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1163), 1, - sym_string_literal, - STATE(301), 1, - aux_sym_asm_function_body_repeat3, - [13539] = 3, + ACTIONS(1205), 1, + anon_sym_SEMI, + ACTIONS(1207), 1, + anon_sym_COMMA, + [14085] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(781), 1, + ACTIONS(789), 1, anon_sym_LBRACE, - STATE(389), 1, + STATE(429), 1, sym_block_statement, - [13549] = 3, + [14095] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(781), 1, + ACTIONS(73), 1, anon_sym_LBRACE, - STATE(379), 1, + STATE(166), 1, sym_block_statement, - [13559] = 3, + [14105] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(103), 1, + ACTIONS(789), 1, anon_sym_LBRACE, - STATE(165), 1, + STATE(411), 1, sym_block_statement, - [13569] = 2, + [14115] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1165), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [13577] = 3, + ACTIONS(1209), 1, + sym_identifier, + ACTIONS(1211), 1, + anon_sym_LPAREN, + [14125] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(103), 1, + ACTIONS(73), 1, anon_sym_LBRACE, - STATE(179), 1, + STATE(162), 1, sym_block_statement, - [13587] = 3, + [14135] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1167), 1, - anon_sym_SEMI, - ACTIONS(1169), 1, + ACTIONS(1213), 1, + sym_string_literal, + STATE(350), 1, + aux_sym_asm_function_body_repeat3, + [14145] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1049), 2, anon_sym_COMMA, - [13597] = 3, + anon_sym_RBRACK, + [14153] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1171), 1, + ACTIONS(1215), 1, + anon_sym_catch, + STATE(171), 1, + sym_catch_clause, + [14163] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 1, sym_string_literal, - STATE(315), 1, + STATE(362), 1, aux_sym_asm_function_body_repeat3, - [13607] = 3, + [14173] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1173), 1, - anon_sym_catch, - STATE(169), 1, - sym_catch_clause, - [13617] = 2, + ACTIONS(1155), 2, + anon_sym_COMMA, + anon_sym_DASH_GT, + [14181] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1175), 2, + ACTIONS(972), 2, anon_sym_COMMA, anon_sym_RPAREN, - [13625] = 3, + [14189] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1178), 1, - sym_string_literal, - STATE(321), 1, - aux_sym_asm_function_body_repeat3, - [13635] = 3, + ACTIONS(1219), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [14197] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1047), 1, - anon_sym_SEMI, - ACTIONS(1180), 1, + ACTIONS(1221), 2, anon_sym_COMMA, - [13645] = 3, + anon_sym_RPAREN, + [14205] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(103), 1, - anon_sym_LBRACE, - STATE(175), 1, - sym_block_statement, - [13655] = 2, + ACTIONS(904), 1, + sym_identifier, + ACTIONS(908), 1, + anon_sym_LPAREN, + [14215] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1182), 1, + ACTIONS(1223), 1, sym_identifier, - [13662] = 2, + STATE(400), 1, + sym_type_identifier, + [14225] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1184), 1, - sym_identifier, - [13669] = 2, + ACTIONS(1225), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [14233] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1186), 1, - sym_identifier, - [13676] = 2, + ACTIONS(1228), 1, + anon_sym_SEMI, + ACTIONS(1230), 1, + anon_sym_COMMA, + [14243] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1188), 1, + ACTIONS(1232), 1, + anon_sym_QMARK, + [14250] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1234), 1, sym_identifier, - [13683] = 2, + [14257] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1190), 1, - anon_sym_EQ, - [13690] = 2, + ACTIONS(1236), 1, + anon_sym_SEMI, + [14264] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1192), 1, - anon_sym_until, - [13697] = 2, + ACTIONS(1238), 1, + anon_sym_SEMI, + [14271] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(964), 1, + ACTIONS(1240), 1, sym_identifier, - [13704] = 2, + [14278] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1242), 1, + sym_function_name, + [14285] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1244), 1, + anon_sym_RPAREN, + [14292] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1194), 1, + ACTIONS(1246), 1, sym_identifier, - [13711] = 2, + [14299] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1196), 1, + ACTIONS(1248), 1, + anon_sym_until, + [14306] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1250), 1, anon_sym_COLON, - [13718] = 2, + [14313] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1198), 1, - anon_sym_SEMI, - [13725] = 2, + ACTIONS(1252), 1, + ts_builtin_sym_end, + [14320] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1200), 1, - anon_sym_SEMI, - [13732] = 2, + ACTIONS(1254), 1, + sym_function_name, + [14327] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1202), 1, + ACTIONS(904), 1, sym_identifier, - [13739] = 2, + [14334] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1204), 1, - sym_identifier, - [13746] = 2, + ACTIONS(1256), 1, + anon_sym_SEMI, + [14341] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1206), 1, + ACTIONS(1258), 1, anon_sym_COLON, - [13753] = 2, + [14348] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1208), 1, - anon_sym_SEMI, - [13760] = 2, + ACTIONS(1260), 1, + sym_identifier, + [14355] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1210), 1, - ts_builtin_sym_end, - [13767] = 2, + ACTIONS(1262), 1, + anon_sym_SEMI, + [14362] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1212), 1, - sym_identifier, - [13774] = 2, + ACTIONS(1264), 1, + anon_sym_EQ, + [14369] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1214), 1, - anon_sym_RPAREN, + ACTIONS(1266), 1, + anon_sym_QMARK, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(38)] = 0, - [SMALL_STATE(39)] = 72, - [SMALL_STATE(40)] = 140, - [SMALL_STATE(41)] = 212, - [SMALL_STATE(42)] = 284, - [SMALL_STATE(43)] = 356, - [SMALL_STATE(44)] = 428, - [SMALL_STATE(45)] = 495, - [SMALL_STATE(46)] = 564, - [SMALL_STATE(47)] = 633, - [SMALL_STATE(48)] = 702, - [SMALL_STATE(49)] = 771, - [SMALL_STATE(50)] = 840, - [SMALL_STATE(51)] = 909, - [SMALL_STATE(52)] = 972, - [SMALL_STATE(53)] = 1037, - [SMALL_STATE(54)] = 1100, - [SMALL_STATE(55)] = 1165, - [SMALL_STATE(56)] = 1225, - [SMALL_STATE(57)] = 1291, - [SMALL_STATE(58)] = 1351, - [SMALL_STATE(59)] = 1411, - [SMALL_STATE(60)] = 1471, - [SMALL_STATE(61)] = 1531, - [SMALL_STATE(62)] = 1591, - [SMALL_STATE(63)] = 1651, - [SMALL_STATE(64)] = 1711, - [SMALL_STATE(65)] = 1771, - [SMALL_STATE(66)] = 1831, - [SMALL_STATE(67)] = 1891, - [SMALL_STATE(68)] = 1951, - [SMALL_STATE(69)] = 2017, - [SMALL_STATE(70)] = 2077, - [SMALL_STATE(71)] = 2137, - [SMALL_STATE(72)] = 2197, - [SMALL_STATE(73)] = 2261, - [SMALL_STATE(74)] = 2325, - [SMALL_STATE(75)] = 2391, - [SMALL_STATE(76)] = 2455, - [SMALL_STATE(77)] = 2519, - [SMALL_STATE(78)] = 2583, - [SMALL_STATE(79)] = 2643, - [SMALL_STATE(80)] = 2701, - [SMALL_STATE(81)] = 2759, - [SMALL_STATE(82)] = 2823, - [SMALL_STATE(83)] = 2881, - [SMALL_STATE(84)] = 2939, - [SMALL_STATE(85)] = 2997, - [SMALL_STATE(86)] = 3055, - [SMALL_STATE(87)] = 3113, - [SMALL_STATE(88)] = 3171, - [SMALL_STATE(89)] = 3229, - [SMALL_STATE(90)] = 3287, - [SMALL_STATE(91)] = 3345, - [SMALL_STATE(92)] = 3403, - [SMALL_STATE(93)] = 3461, - [SMALL_STATE(94)] = 3519, - [SMALL_STATE(95)] = 3577, - [SMALL_STATE(96)] = 3683, - [SMALL_STATE(97)] = 3741, - [SMALL_STATE(98)] = 3805, - [SMALL_STATE(99)] = 3868, - [SMALL_STATE(100)] = 3931, - [SMALL_STATE(101)] = 4034, - [SMALL_STATE(102)] = 4137, - [SMALL_STATE(103)] = 4240, - [SMALL_STATE(104)] = 4343, - [SMALL_STATE(105)] = 4446, - [SMALL_STATE(106)] = 4549, - [SMALL_STATE(107)] = 4612, - [SMALL_STATE(108)] = 4669, - [SMALL_STATE(109)] = 4732, - [SMALL_STATE(110)] = 4795, - [SMALL_STATE(111)] = 4898, - [SMALL_STATE(112)] = 5001, - [SMALL_STATE(113)] = 5064, - [SMALL_STATE(114)] = 5127, - [SMALL_STATE(115)] = 5230, - [SMALL_STATE(116)] = 5333, - [SMALL_STATE(117)] = 5436, - [SMALL_STATE(118)] = 5499, - [SMALL_STATE(119)] = 5562, - [SMALL_STATE(120)] = 5665, - [SMALL_STATE(121)] = 5768, - [SMALL_STATE(122)] = 5871, - [SMALL_STATE(123)] = 5927, - [SMALL_STATE(124)] = 6027, - [SMALL_STATE(125)] = 6127, - [SMALL_STATE(126)] = 6183, - [SMALL_STATE(127)] = 6281, - [SMALL_STATE(128)] = 6381, - [SMALL_STATE(129)] = 6481, - [SMALL_STATE(130)] = 6537, - [SMALL_STATE(131)] = 6637, - [SMALL_STATE(132)] = 6737, - [SMALL_STATE(133)] = 6836, - [SMALL_STATE(134)] = 6933, - [SMALL_STATE(135)] = 7027, - [SMALL_STATE(136)] = 7123, - [SMALL_STATE(137)] = 7178, - [SMALL_STATE(138)] = 7266, - [SMALL_STATE(139)] = 7356, - [SMALL_STATE(140)] = 7410, - [SMALL_STATE(141)] = 7495, - [SMALL_STATE(142)] = 7582, - [SMALL_STATE(143)] = 7663, - [SMALL_STATE(144)] = 7742, - [SMALL_STATE(145)] = 7821, - [SMALL_STATE(146)] = 7902, - [SMALL_STATE(147)] = 7954, - [SMALL_STATE(148)] = 8030, - [SMALL_STATE(149)] = 8108, - [SMALL_STATE(150)] = 8160, - [SMALL_STATE(151)] = 8212, - [SMALL_STATE(152)] = 8264, - [SMALL_STATE(153)] = 8316, - [SMALL_STATE(154)] = 8363, - [SMALL_STATE(155)] = 8437, - [SMALL_STATE(156)] = 8509, - [SMALL_STATE(157)] = 8583, - [SMALL_STATE(158)] = 8631, - [SMALL_STATE(159)] = 8705, - [SMALL_STATE(160)] = 8753, - [SMALL_STATE(161)] = 8801, - [SMALL_STATE(162)] = 8868, - [SMALL_STATE(163)] = 8935, - [SMALL_STATE(164)] = 8978, - [SMALL_STATE(165)] = 9017, - [SMALL_STATE(166)] = 9059, - [SMALL_STATE(167)] = 9097, - [SMALL_STATE(168)] = 9135, - [SMALL_STATE(169)] = 9170, - [SMALL_STATE(170)] = 9205, - [SMALL_STATE(171)] = 9242, - [SMALL_STATE(172)] = 9277, - [SMALL_STATE(173)] = 9312, - [SMALL_STATE(174)] = 9347, - [SMALL_STATE(175)] = 9382, - [SMALL_STATE(176)] = 9417, - [SMALL_STATE(177)] = 9452, - [SMALL_STATE(178)] = 9487, - [SMALL_STATE(179)] = 9522, - [SMALL_STATE(180)] = 9557, - [SMALL_STATE(181)] = 9592, - [SMALL_STATE(182)] = 9641, - [SMALL_STATE(183)] = 9690, - [SMALL_STATE(184)] = 9739, - [SMALL_STATE(185)] = 9788, - [SMALL_STATE(186)] = 9837, - [SMALL_STATE(187)] = 9886, - [SMALL_STATE(188)] = 9935, - [SMALL_STATE(189)] = 9984, - [SMALL_STATE(190)] = 10033, - [SMALL_STATE(191)] = 10082, - [SMALL_STATE(192)] = 10131, - [SMALL_STATE(193)] = 10180, - [SMALL_STATE(194)] = 10229, - [SMALL_STATE(195)] = 10278, - [SMALL_STATE(196)] = 10324, - [SMALL_STATE(197)] = 10358, - [SMALL_STATE(198)] = 10391, - [SMALL_STATE(199)] = 10437, - [SMALL_STATE(200)] = 10480, - [SMALL_STATE(201)] = 10523, - [SMALL_STATE(202)] = 10566, - [SMALL_STATE(203)] = 10609, - [SMALL_STATE(204)] = 10652, - [SMALL_STATE(205)] = 10695, - [SMALL_STATE(206)] = 10738, - [SMALL_STATE(207)] = 10781, - [SMALL_STATE(208)] = 10824, - [SMALL_STATE(209)] = 10852, - [SMALL_STATE(210)] = 10892, - [SMALL_STATE(211)] = 10932, - [SMALL_STATE(212)] = 10972, - [SMALL_STATE(213)] = 11000, - [SMALL_STATE(214)] = 11026, - [SMALL_STATE(215)] = 11052, - [SMALL_STATE(216)] = 11078, - [SMALL_STATE(217)] = 11104, - [SMALL_STATE(218)] = 11130, - [SMALL_STATE(219)] = 11156, - [SMALL_STATE(220)] = 11182, - [SMALL_STATE(221)] = 11208, - [SMALL_STATE(222)] = 11234, - [SMALL_STATE(223)] = 11260, - [SMALL_STATE(224)] = 11286, - [SMALL_STATE(225)] = 11314, - [SMALL_STATE(226)] = 11340, - [SMALL_STATE(227)] = 11366, - [SMALL_STATE(228)] = 11392, - [SMALL_STATE(229)] = 11418, - [SMALL_STATE(230)] = 11444, - [SMALL_STATE(231)] = 11470, - [SMALL_STATE(232)] = 11496, - [SMALL_STATE(233)] = 11522, - [SMALL_STATE(234)] = 11548, - [SMALL_STATE(235)] = 11574, - [SMALL_STATE(236)] = 11600, - [SMALL_STATE(237)] = 11626, - [SMALL_STATE(238)] = 11652, - [SMALL_STATE(239)] = 11678, - [SMALL_STATE(240)] = 11715, - [SMALL_STATE(241)] = 11734, - [SMALL_STATE(242)] = 11753, - [SMALL_STATE(243)] = 11772, - [SMALL_STATE(244)] = 11809, - [SMALL_STATE(245)] = 11837, - [SMALL_STATE(246)] = 11865, - [SMALL_STATE(247)] = 11883, - [SMALL_STATE(248)] = 11909, - [SMALL_STATE(249)] = 11930, - [SMALL_STATE(250)] = 11951, - [SMALL_STATE(251)] = 11967, - [SMALL_STATE(252)] = 11981, - [SMALL_STATE(253)] = 12001, - [SMALL_STATE(254)] = 12021, - [SMALL_STATE(255)] = 12035, - [SMALL_STATE(256)] = 12049, - [SMALL_STATE(257)] = 12063, - [SMALL_STATE(258)] = 12077, - [SMALL_STATE(259)] = 12091, - [SMALL_STATE(260)] = 12109, - [SMALL_STATE(261)] = 12123, - [SMALL_STATE(262)] = 12137, - [SMALL_STATE(263)] = 12151, - [SMALL_STATE(264)] = 12165, - [SMALL_STATE(265)] = 12178, - [SMALL_STATE(266)] = 12191, - [SMALL_STATE(267)] = 12206, - [SMALL_STATE(268)] = 12223, - [SMALL_STATE(269)] = 12238, - [SMALL_STATE(270)] = 12257, - [SMALL_STATE(271)] = 12274, - [SMALL_STATE(272)] = 12287, - [SMALL_STATE(273)] = 12302, - [SMALL_STATE(274)] = 12317, - [SMALL_STATE(275)] = 12332, - [SMALL_STATE(276)] = 12347, - [SMALL_STATE(277)] = 12360, - [SMALL_STATE(278)] = 12373, - [SMALL_STATE(279)] = 12388, - [SMALL_STATE(280)] = 12402, - [SMALL_STATE(281)] = 12416, - [SMALL_STATE(282)] = 12432, - [SMALL_STATE(283)] = 12444, - [SMALL_STATE(284)] = 12458, - [SMALL_STATE(285)] = 12474, - [SMALL_STATE(286)] = 12490, - [SMALL_STATE(287)] = 12504, - [SMALL_STATE(288)] = 12518, - [SMALL_STATE(289)] = 12534, - [SMALL_STATE(290)] = 12550, - [SMALL_STATE(291)] = 12566, - [SMALL_STATE(292)] = 12582, - [SMALL_STATE(293)] = 12594, - [SMALL_STATE(294)] = 12608, - [SMALL_STATE(295)] = 12624, - [SMALL_STATE(296)] = 12638, - [SMALL_STATE(297)] = 12651, - [SMALL_STATE(298)] = 12664, - [SMALL_STATE(299)] = 12677, - [SMALL_STATE(300)] = 12688, - [SMALL_STATE(301)] = 12701, - [SMALL_STATE(302)] = 12714, - [SMALL_STATE(303)] = 12727, - [SMALL_STATE(304)] = 12740, - [SMALL_STATE(305)] = 12753, - [SMALL_STATE(306)] = 12766, - [SMALL_STATE(307)] = 12775, - [SMALL_STATE(308)] = 12788, - [SMALL_STATE(309)] = 12801, - [SMALL_STATE(310)] = 12814, - [SMALL_STATE(311)] = 12827, - [SMALL_STATE(312)] = 12840, - [SMALL_STATE(313)] = 12851, - [SMALL_STATE(314)] = 12864, - [SMALL_STATE(315)] = 12877, - [SMALL_STATE(316)] = 12890, - [SMALL_STATE(317)] = 12901, - [SMALL_STATE(318)] = 12914, - [SMALL_STATE(319)] = 12927, - [SMALL_STATE(320)] = 12936, - [SMALL_STATE(321)] = 12949, - [SMALL_STATE(322)] = 12962, - [SMALL_STATE(323)] = 12975, - [SMALL_STATE(324)] = 12988, - [SMALL_STATE(325)] = 13001, - [SMALL_STATE(326)] = 13014, - [SMALL_STATE(327)] = 13027, - [SMALL_STATE(328)] = 13040, - [SMALL_STATE(329)] = 13053, - [SMALL_STATE(330)] = 13066, - [SMALL_STATE(331)] = 13079, - [SMALL_STATE(332)] = 13092, - [SMALL_STATE(333)] = 13105, - [SMALL_STATE(334)] = 13118, - [SMALL_STATE(335)] = 13129, - [SMALL_STATE(336)] = 13142, - [SMALL_STATE(337)] = 13155, - [SMALL_STATE(338)] = 13168, - [SMALL_STATE(339)] = 13181, - [SMALL_STATE(340)] = 13194, - [SMALL_STATE(341)] = 13205, - [SMALL_STATE(342)] = 13214, - [SMALL_STATE(343)] = 13227, - [SMALL_STATE(344)] = 13240, - [SMALL_STATE(345)] = 13253, - [SMALL_STATE(346)] = 13266, - [SMALL_STATE(347)] = 13279, - [SMALL_STATE(348)] = 13288, - [SMALL_STATE(349)] = 13301, - [SMALL_STATE(350)] = 13314, - [SMALL_STATE(351)] = 13327, - [SMALL_STATE(352)] = 13340, - [SMALL_STATE(353)] = 13353, - [SMALL_STATE(354)] = 13366, - [SMALL_STATE(355)] = 13379, - [SMALL_STATE(356)] = 13389, - [SMALL_STATE(357)] = 13399, - [SMALL_STATE(358)] = 13409, - [SMALL_STATE(359)] = 13417, - [SMALL_STATE(360)] = 13427, - [SMALL_STATE(361)] = 13437, - [SMALL_STATE(362)] = 13447, - [SMALL_STATE(363)] = 13455, - [SMALL_STATE(364)] = 13463, - [SMALL_STATE(365)] = 13473, - [SMALL_STATE(366)] = 13481, - [SMALL_STATE(367)] = 13491, - [SMALL_STATE(368)] = 13501, - [SMALL_STATE(369)] = 13511, - [SMALL_STATE(370)] = 13519, - [SMALL_STATE(371)] = 13529, - [SMALL_STATE(372)] = 13539, - [SMALL_STATE(373)] = 13549, - [SMALL_STATE(374)] = 13559, - [SMALL_STATE(375)] = 13569, - [SMALL_STATE(376)] = 13577, - [SMALL_STATE(377)] = 13587, - [SMALL_STATE(378)] = 13597, - [SMALL_STATE(379)] = 13607, - [SMALL_STATE(380)] = 13617, - [SMALL_STATE(381)] = 13625, - [SMALL_STATE(382)] = 13635, - [SMALL_STATE(383)] = 13645, - [SMALL_STATE(384)] = 13655, - [SMALL_STATE(385)] = 13662, - [SMALL_STATE(386)] = 13669, - [SMALL_STATE(387)] = 13676, - [SMALL_STATE(388)] = 13683, - [SMALL_STATE(389)] = 13690, - [SMALL_STATE(390)] = 13697, - [SMALL_STATE(391)] = 13704, - [SMALL_STATE(392)] = 13711, - [SMALL_STATE(393)] = 13718, - [SMALL_STATE(394)] = 13725, - [SMALL_STATE(395)] = 13732, - [SMALL_STATE(396)] = 13739, - [SMALL_STATE(397)] = 13746, - [SMALL_STATE(398)] = 13753, - [SMALL_STATE(399)] = 13760, - [SMALL_STATE(400)] = 13767, - [SMALL_STATE(401)] = 13774, + [SMALL_STATE(36)] = 0, + [SMALL_STATE(37)] = 72, + [SMALL_STATE(38)] = 144, + [SMALL_STATE(39)] = 216, + [SMALL_STATE(40)] = 288, + [SMALL_STATE(41)] = 356, + [SMALL_STATE(42)] = 428, + [SMALL_STATE(43)] = 495, + [SMALL_STATE(44)] = 564, + [SMALL_STATE(45)] = 633, + [SMALL_STATE(46)] = 702, + [SMALL_STATE(47)] = 771, + [SMALL_STATE(48)] = 840, + [SMALL_STATE(49)] = 909, + [SMALL_STATE(50)] = 974, + [SMALL_STATE(51)] = 1039, + [SMALL_STATE(52)] = 1106, + [SMALL_STATE(53)] = 1173, + [SMALL_STATE(54)] = 1236, + [SMALL_STATE(55)] = 1299, + [SMALL_STATE(56)] = 1364, + [SMALL_STATE(57)] = 1429, + [SMALL_STATE(58)] = 1489, + [SMALL_STATE(59)] = 1553, + [SMALL_STATE(60)] = 1613, + [SMALL_STATE(61)] = 1673, + [SMALL_STATE(62)] = 1733, + [SMALL_STATE(63)] = 1799, + [SMALL_STATE(64)] = 1859, + [SMALL_STATE(65)] = 1919, + [SMALL_STATE(66)] = 1979, + [SMALL_STATE(67)] = 2039, + [SMALL_STATE(68)] = 2099, + [SMALL_STATE(69)] = 2165, + [SMALL_STATE(70)] = 2225, + [SMALL_STATE(71)] = 2285, + [SMALL_STATE(72)] = 2345, + [SMALL_STATE(73)] = 2411, + [SMALL_STATE(74)] = 2471, + [SMALL_STATE(75)] = 2531, + [SMALL_STATE(76)] = 2640, + [SMALL_STATE(77)] = 2746, + [SMALL_STATE(78)] = 2854, + [SMALL_STATE(79)] = 2912, + [SMALL_STATE(80)] = 3018, + [SMALL_STATE(81)] = 3126, + [SMALL_STATE(82)] = 3184, + [SMALL_STATE(83)] = 3242, + [SMALL_STATE(84)] = 3306, + [SMALL_STATE(85)] = 3370, + [SMALL_STATE(86)] = 3428, + [SMALL_STATE(87)] = 3486, + [SMALL_STATE(88)] = 3544, + [SMALL_STATE(89)] = 3602, + [SMALL_STATE(90)] = 3660, + [SMALL_STATE(91)] = 3718, + [SMALL_STATE(92)] = 3776, + [SMALL_STATE(93)] = 3834, + [SMALL_STATE(94)] = 3892, + [SMALL_STATE(95)] = 3950, + [SMALL_STATE(96)] = 4056, + [SMALL_STATE(97)] = 4162, + [SMALL_STATE(98)] = 4268, + [SMALL_STATE(99)] = 4376, + [SMALL_STATE(100)] = 4482, + [SMALL_STATE(101)] = 4588, + [SMALL_STATE(102)] = 4694, + [SMALL_STATE(103)] = 4800, + [SMALL_STATE(104)] = 4908, + [SMALL_STATE(105)] = 5014, + [SMALL_STATE(106)] = 5072, + [SMALL_STATE(107)] = 5175, + [SMALL_STATE(108)] = 5238, + [SMALL_STATE(109)] = 5341, + [SMALL_STATE(110)] = 5444, + [SMALL_STATE(111)] = 5545, + [SMALL_STATE(112)] = 5608, + [SMALL_STATE(113)] = 5709, + [SMALL_STATE(114)] = 5812, + [SMALL_STATE(115)] = 5915, + [SMALL_STATE(116)] = 5978, + [SMALL_STATE(117)] = 6037, + [SMALL_STATE(118)] = 6140, + [SMALL_STATE(119)] = 6203, + [SMALL_STATE(120)] = 6306, + [SMALL_STATE(121)] = 6369, + [SMALL_STATE(122)] = 6432, + [SMALL_STATE(123)] = 6489, + [SMALL_STATE(124)] = 6545, + [SMALL_STATE(125)] = 6645, + [SMALL_STATE(126)] = 6701, + [SMALL_STATE(127)] = 6757, + [SMALL_STATE(128)] = 6859, + [SMALL_STATE(129)] = 6915, + [SMALL_STATE(130)] = 7015, + [SMALL_STATE(131)] = 7069, + [SMALL_STATE(132)] = 7123, + [SMALL_STATE(133)] = 7210, + [SMALL_STATE(134)] = 7299, + [SMALL_STATE(135)] = 7383, + [SMALL_STATE(136)] = 7469, + [SMALL_STATE(137)] = 7547, + [SMALL_STATE(138)] = 7599, + [SMALL_STATE(139)] = 7651, + [SMALL_STATE(140)] = 7703, + [SMALL_STATE(141)] = 7755, + [SMALL_STATE(142)] = 7835, + [SMALL_STATE(143)] = 7887, + [SMALL_STATE(144)] = 7965, + [SMALL_STATE(145)] = 8045, + [SMALL_STATE(146)] = 8120, + [SMALL_STATE(147)] = 8167, + [SMALL_STATE(148)] = 8244, + [SMALL_STATE(149)] = 8315, + [SMALL_STATE(150)] = 8388, + [SMALL_STATE(151)] = 8436, + [SMALL_STATE(152)] = 8484, + [SMALL_STATE(153)] = 8532, + [SMALL_STATE(154)] = 8605, + [SMALL_STATE(155)] = 8678, + [SMALL_STATE(156)] = 8744, + [SMALL_STATE(157)] = 8810, + [SMALL_STATE(158)] = 8853, + [SMALL_STATE(159)] = 8895, + [SMALL_STATE(160)] = 8933, + [SMALL_STATE(161)] = 8971, + [SMALL_STATE(162)] = 9006, + [SMALL_STATE(163)] = 9041, + [SMALL_STATE(164)] = 9076, + [SMALL_STATE(165)] = 9111, + [SMALL_STATE(166)] = 9146, + [SMALL_STATE(167)] = 9181, + [SMALL_STATE(168)] = 9216, + [SMALL_STATE(169)] = 9251, + [SMALL_STATE(170)] = 9286, + [SMALL_STATE(171)] = 9321, + [SMALL_STATE(172)] = 9356, + [SMALL_STATE(173)] = 9391, + [SMALL_STATE(174)] = 9426, + [SMALL_STATE(175)] = 9473, + [SMALL_STATE(176)] = 9506, + [SMALL_STATE(177)] = 9553, + [SMALL_STATE(178)] = 9600, + [SMALL_STATE(179)] = 9647, + [SMALL_STATE(180)] = 9694, + [SMALL_STATE(181)] = 9741, + [SMALL_STATE(182)] = 9788, + [SMALL_STATE(183)] = 9835, + [SMALL_STATE(184)] = 9882, + [SMALL_STATE(185)] = 9926, + [SMALL_STATE(186)] = 9970, + [SMALL_STATE(187)] = 10014, + [SMALL_STATE(188)] = 10058, + [SMALL_STATE(189)] = 10103, + [SMALL_STATE(190)] = 10148, + [SMALL_STATE(191)] = 10193, + [SMALL_STATE(192)] = 10238, + [SMALL_STATE(193)] = 10283, + [SMALL_STATE(194)] = 10328, + [SMALL_STATE(195)] = 10373, + [SMALL_STATE(196)] = 10418, + [SMALL_STATE(197)] = 10460, + [SMALL_STATE(198)] = 10488, + [SMALL_STATE(199)] = 10530, + [SMALL_STATE(200)] = 10572, + [SMALL_STATE(201)] = 10614, + [SMALL_STATE(202)] = 10656, + [SMALL_STATE(203)] = 10698, + [SMALL_STATE(204)] = 10726, + [SMALL_STATE(205)] = 10768, + [SMALL_STATE(206)] = 10810, + [SMALL_STATE(207)] = 10852, + [SMALL_STATE(208)] = 10894, + [SMALL_STATE(209)] = 10936, + [SMALL_STATE(210)] = 10978, + [SMALL_STATE(211)] = 11017, + [SMALL_STATE(212)] = 11056, + [SMALL_STATE(213)] = 11095, + [SMALL_STATE(214)] = 11134, + [SMALL_STATE(215)] = 11160, + [SMALL_STATE(216)] = 11186, + [SMALL_STATE(217)] = 11212, + [SMALL_STATE(218)] = 11238, + [SMALL_STATE(219)] = 11264, + [SMALL_STATE(220)] = 11290, + [SMALL_STATE(221)] = 11316, + [SMALL_STATE(222)] = 11342, + [SMALL_STATE(223)] = 11368, + [SMALL_STATE(224)] = 11394, + [SMALL_STATE(225)] = 11420, + [SMALL_STATE(226)] = 11448, + [SMALL_STATE(227)] = 11474, + [SMALL_STATE(228)] = 11500, + [SMALL_STATE(229)] = 11526, + [SMALL_STATE(230)] = 11552, + [SMALL_STATE(231)] = 11578, + [SMALL_STATE(232)] = 11604, + [SMALL_STATE(233)] = 11630, + [SMALL_STATE(234)] = 11656, + [SMALL_STATE(235)] = 11682, + [SMALL_STATE(236)] = 11708, + [SMALL_STATE(237)] = 11734, + [SMALL_STATE(238)] = 11760, + [SMALL_STATE(239)] = 11786, + [SMALL_STATE(240)] = 11812, + [SMALL_STATE(241)] = 11849, + [SMALL_STATE(242)] = 11868, + [SMALL_STATE(243)] = 11887, + [SMALL_STATE(244)] = 11924, + [SMALL_STATE(245)] = 11943, + [SMALL_STATE(246)] = 11969, + [SMALL_STATE(247)] = 11997, + [SMALL_STATE(248)] = 12015, + [SMALL_STATE(249)] = 12043, + [SMALL_STATE(250)] = 12064, + [SMALL_STATE(251)] = 12079, + [SMALL_STATE(252)] = 12094, + [SMALL_STATE(253)] = 12109, + [SMALL_STATE(254)] = 12124, + [SMALL_STATE(255)] = 12139, + [SMALL_STATE(256)] = 12154, + [SMALL_STATE(257)] = 12175, + [SMALL_STATE(258)] = 12192, + [SMALL_STATE(259)] = 12207, + [SMALL_STATE(260)] = 12222, + [SMALL_STATE(261)] = 12237, + [SMALL_STATE(262)] = 12257, + [SMALL_STATE(263)] = 12271, + [SMALL_STATE(264)] = 12289, + [SMALL_STATE(265)] = 12309, + [SMALL_STATE(266)] = 12323, + [SMALL_STATE(267)] = 12336, + [SMALL_STATE(268)] = 12351, + [SMALL_STATE(269)] = 12370, + [SMALL_STATE(270)] = 12381, + [SMALL_STATE(271)] = 12400, + [SMALL_STATE(272)] = 12411, + [SMALL_STATE(273)] = 12422, + [SMALL_STATE(274)] = 12433, + [SMALL_STATE(275)] = 12448, + [SMALL_STATE(276)] = 12465, + [SMALL_STATE(277)] = 12476, + [SMALL_STATE(278)] = 12491, + [SMALL_STATE(279)] = 12504, + [SMALL_STATE(280)] = 12517, + [SMALL_STATE(281)] = 12528, + [SMALL_STATE(282)] = 12545, + [SMALL_STATE(283)] = 12556, + [SMALL_STATE(284)] = 12567, + [SMALL_STATE(285)] = 12578, + [SMALL_STATE(286)] = 12593, + [SMALL_STATE(287)] = 12610, + [SMALL_STATE(288)] = 12623, + [SMALL_STATE(289)] = 12640, + [SMALL_STATE(290)] = 12657, + [SMALL_STATE(291)] = 12672, + [SMALL_STATE(292)] = 12689, + [SMALL_STATE(293)] = 12708, + [SMALL_STATE(294)] = 12723, + [SMALL_STATE(295)] = 12738, + [SMALL_STATE(296)] = 12751, + [SMALL_STATE(297)] = 12764, + [SMALL_STATE(298)] = 12777, + [SMALL_STATE(299)] = 12791, + [SMALL_STATE(300)] = 12801, + [SMALL_STATE(301)] = 12817, + [SMALL_STATE(302)] = 12833, + [SMALL_STATE(303)] = 12849, + [SMALL_STATE(304)] = 12861, + [SMALL_STATE(305)] = 12875, + [SMALL_STATE(306)] = 12889, + [SMALL_STATE(307)] = 12905, + [SMALL_STATE(308)] = 12921, + [SMALL_STATE(309)] = 12937, + [SMALL_STATE(310)] = 12953, + [SMALL_STATE(311)] = 12967, + [SMALL_STATE(312)] = 12979, + [SMALL_STATE(313)] = 12993, + [SMALL_STATE(314)] = 13005, + [SMALL_STATE(315)] = 13021, + [SMALL_STATE(316)] = 13035, + [SMALL_STATE(317)] = 13048, + [SMALL_STATE(318)] = 13061, + [SMALL_STATE(319)] = 13070, + [SMALL_STATE(320)] = 13083, + [SMALL_STATE(321)] = 13094, + [SMALL_STATE(322)] = 13107, + [SMALL_STATE(323)] = 13120, + [SMALL_STATE(324)] = 13133, + [SMALL_STATE(325)] = 13146, + [SMALL_STATE(326)] = 13159, + [SMALL_STATE(327)] = 13172, + [SMALL_STATE(328)] = 13185, + [SMALL_STATE(329)] = 13198, + [SMALL_STATE(330)] = 13211, + [SMALL_STATE(331)] = 13224, + [SMALL_STATE(332)] = 13237, + [SMALL_STATE(333)] = 13250, + [SMALL_STATE(334)] = 13263, + [SMALL_STATE(335)] = 13276, + [SMALL_STATE(336)] = 13289, + [SMALL_STATE(337)] = 13300, + [SMALL_STATE(338)] = 13313, + [SMALL_STATE(339)] = 13326, + [SMALL_STATE(340)] = 13335, + [SMALL_STATE(341)] = 13348, + [SMALL_STATE(342)] = 13361, + [SMALL_STATE(343)] = 13374, + [SMALL_STATE(344)] = 13387, + [SMALL_STATE(345)] = 13400, + [SMALL_STATE(346)] = 13413, + [SMALL_STATE(347)] = 13426, + [SMALL_STATE(348)] = 13437, + [SMALL_STATE(349)] = 13450, + [SMALL_STATE(350)] = 13463, + [SMALL_STATE(351)] = 13476, + [SMALL_STATE(352)] = 13489, + [SMALL_STATE(353)] = 13502, + [SMALL_STATE(354)] = 13515, + [SMALL_STATE(355)] = 13528, + [SMALL_STATE(356)] = 13541, + [SMALL_STATE(357)] = 13554, + [SMALL_STATE(358)] = 13567, + [SMALL_STATE(359)] = 13578, + [SMALL_STATE(360)] = 13591, + [SMALL_STATE(361)] = 13604, + [SMALL_STATE(362)] = 13617, + [SMALL_STATE(363)] = 13630, + [SMALL_STATE(364)] = 13643, + [SMALL_STATE(365)] = 13656, + [SMALL_STATE(366)] = 13669, + [SMALL_STATE(367)] = 13682, + [SMALL_STATE(368)] = 13695, + [SMALL_STATE(369)] = 13708, + [SMALL_STATE(370)] = 13719, + [SMALL_STATE(371)] = 13732, + [SMALL_STATE(372)] = 13745, + [SMALL_STATE(373)] = 13758, + [SMALL_STATE(374)] = 13767, + [SMALL_STATE(375)] = 13780, + [SMALL_STATE(376)] = 13793, + [SMALL_STATE(377)] = 13806, + [SMALL_STATE(378)] = 13819, + [SMALL_STATE(379)] = 13832, + [SMALL_STATE(380)] = 13845, + [SMALL_STATE(381)] = 13858, + [SMALL_STATE(382)] = 13871, + [SMALL_STATE(383)] = 13884, + [SMALL_STATE(384)] = 13897, + [SMALL_STATE(385)] = 13907, + [SMALL_STATE(386)] = 13917, + [SMALL_STATE(387)] = 13925, + [SMALL_STATE(388)] = 13935, + [SMALL_STATE(389)] = 13945, + [SMALL_STATE(390)] = 13953, + [SMALL_STATE(391)] = 13961, + [SMALL_STATE(392)] = 13969, + [SMALL_STATE(393)] = 13979, + [SMALL_STATE(394)] = 13989, + [SMALL_STATE(395)] = 13997, + [SMALL_STATE(396)] = 14007, + [SMALL_STATE(397)] = 14017, + [SMALL_STATE(398)] = 14027, + [SMALL_STATE(399)] = 14037, + [SMALL_STATE(400)] = 14047, + [SMALL_STATE(401)] = 14055, + [SMALL_STATE(402)] = 14065, + [SMALL_STATE(403)] = 14075, + [SMALL_STATE(404)] = 14085, + [SMALL_STATE(405)] = 14095, + [SMALL_STATE(406)] = 14105, + [SMALL_STATE(407)] = 14115, + [SMALL_STATE(408)] = 14125, + [SMALL_STATE(409)] = 14135, + [SMALL_STATE(410)] = 14145, + [SMALL_STATE(411)] = 14153, + [SMALL_STATE(412)] = 14163, + [SMALL_STATE(413)] = 14173, + [SMALL_STATE(414)] = 14181, + [SMALL_STATE(415)] = 14189, + [SMALL_STATE(416)] = 14197, + [SMALL_STATE(417)] = 14205, + [SMALL_STATE(418)] = 14215, + [SMALL_STATE(419)] = 14225, + [SMALL_STATE(420)] = 14233, + [SMALL_STATE(421)] = 14243, + [SMALL_STATE(422)] = 14250, + [SMALL_STATE(423)] = 14257, + [SMALL_STATE(424)] = 14264, + [SMALL_STATE(425)] = 14271, + [SMALL_STATE(426)] = 14278, + [SMALL_STATE(427)] = 14285, + [SMALL_STATE(428)] = 14292, + [SMALL_STATE(429)] = 14299, + [SMALL_STATE(430)] = 14306, + [SMALL_STATE(431)] = 14313, + [SMALL_STATE(432)] = 14320, + [SMALL_STATE(433)] = 14327, + [SMALL_STATE(434)] = 14334, + [SMALL_STATE(435)] = 14341, + [SMALL_STATE(436)] = 14348, + [SMALL_STATE(437)] = 14355, + [SMALL_STATE(438)] = 14362, + [SMALL_STATE(439)] = 14369, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -18418,573 +18866,598 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(204), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(272), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(228), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(287), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(2), [34] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), - [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(114), + [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(101), [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_application, 2, 0, 19), [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_application, 2, 0, 19), - [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 1, 0, 0), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 1, 0, 0), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), - [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 2, 0, 0), - [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 2, 0, 0), + [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 2, 0, 0), + [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 2, 0, 0), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 1, 0, 0), + [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 1, 0, 0), [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), - [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(400), - [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(400), - [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__nontype_expr100, 1, 0, 0), - [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__nontype_expr100, 1, 0, 0), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), - [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), - [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 2, 0, 0), - [82] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), - [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), - [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), - [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 2, 0, 0), - [91] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_var_declaration, 2, 0, 7), - [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var_declaration, 2, 0, 7), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), - [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), - [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), - [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), - [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(373), - [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), - [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 1, 0, 0), - [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 1, 0, 0), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_local_vars_declaration, 1, 90, 12), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_local_vars_declaration, 1, 90, 12), - [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 2, 0, 0), - [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 2, 0, 0), - [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 3, 0, 27), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 3, 0, 27), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 27), - [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 27), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), - [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), - [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), - [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7), - [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(173), - [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(115), - [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(130), - [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(12), - [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), - [194] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(128), - [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(105), - [200] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(372), - [203] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(123), - [206] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(373), - [209] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(144), - [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(155), - [215] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(116), - [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(254), - [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(250), - [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(34), - [227] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4), - [230] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(34), - [233] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4), - [236] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(8), - [239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 4, 0, 36), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 4, 0, 36), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 27), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 27), - [247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 37), - [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 37), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 4, 0, 36), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 4, 0, 36), - [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 27), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 27), - [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), - [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_call, 3, 0, 38), - [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_call, 3, 0, 38), - [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 37), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 37), - [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 37), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 37), - [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 1, 0, 0), - [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 1, 0, 0), - [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 3, 0, 28), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 3, 0, 28), - [283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr75, 2, 0, 0), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr75, 2, 0, 0), - [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 1, 0, 0), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 1, 0, 0), - [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), - [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 3, 0, 0), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 3, 0, 0), - [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), - [305] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(143), - [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 2, 0, 0), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 2, 0, 0), - [312] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(140), - [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 2, 0, 0), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 2, 0, 0), - [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 1, 0, 0), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 1, 0, 0), - [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [329] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(49), - [332] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(103), + [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(436), + [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(436), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113), + [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(404), + [83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), + [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), + [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(54), + [110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(161), + [113] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(79), + [116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(109), + [119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(15), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), + [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(113), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(100), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(404), + [133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(117), + [136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(406), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(144), + [142] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(149), + [145] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(80), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(253), + [151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(257), + [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(71), + [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(46), + [160] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(71), + [163] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(46), + [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(53), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__nontype_expr100, 1, 0, 0), + [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__nontype_expr100, 1, 0, 0), + [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), + [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), + [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 2, 0, 0), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), + [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), + [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), + [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 2, 0, 0), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 45), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 45), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 1, 0, 0), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 1, 0, 0), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 2, 0, 0), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 2, 0, 0), + [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), + [227] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(145), + [230] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(145), + [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_call, 3, 0, 38), + [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_call, 3, 0, 38), + [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_local_vars_declaration, 1, 0, 12), + [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_local_vars_declaration, 1, 0, 12), + [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_var_declaration, 2, 0, 7), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var_declaration, 2, 0, 7), + [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 3, 0, 27), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 3, 0, 27), + [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 28), + [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 28), + [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 4, 0, 36), + [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 4, 0, 36), + [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 4, 0, 36), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 4, 0, 36), + [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), + [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 39), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 39), + [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 47), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 47), + [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 6, 0, 50), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 6, 0, 50), + [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 1, 0, 0), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 1, 0, 0), + [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr75, 2, 0, 0), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr75, 2, 0, 0), + [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 2, 0, 0), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 2, 0, 0), + [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 3, 0, 0), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 3, 0, 0), + [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), + [303] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(143), + [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 1, 0, 0), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 1, 0, 0), + [314] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(134), + [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 2, 0, 0), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 2, 0, 0), + [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 1, 0, 0), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 1, 0, 0), + [327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr100, 1, 0, 0), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr100, 1, 0, 0), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), [335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr100, 1, 0, 0), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr100, 1, 0, 0), - [341] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(385), - [344] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(385), - [347] = {.entry = {.count = 1, .reusable = false}}, SHIFT(385), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), - [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_identifier, 1, 0, 1), - [353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hole_type, 1, 0, 2), - [355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 2, 0, 0), - [357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 2, 0, 0), - [359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 1, 0, 0), - [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 1, 0, 0), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), - [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 3, 0, 0), - [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 3, 0, 0), - [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [419] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(148), - [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(148), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr13, 5, 0, 0), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr13, 5, 0, 0), - [459] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr13, 1, 0, 0), - [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr13, 1, 0, 0), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 1, 0, 0), - [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 1, 0, 0), - [471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [473] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(145), - [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), - [478] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(255), - [481] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(357), - [484] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(227), - [487] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(359), - [490] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(204), - [493] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(206), - [496] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(205), - [499] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(269), - [502] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(200), - [505] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(254), - [508] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(250), - [511] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(256), - [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), - [518] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(141), - [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), - [529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [545] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 3, 0, 0), - [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 3, 0, 0), - [549] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 2, 0, 41), - [551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 2, 0, 41), - [553] = {.entry = {.count = 1, .reusable = false}}, SHIFT(383), - [555] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [557] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), - [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), - [561] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 3, 0, 0), - [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 3, 0, 0), - [565] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 2, 0, 45), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 2, 0, 45), - [569] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 3, 0, 43), - [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 3, 0, 43), - [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1, 0, 0), - [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), - [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), - [579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_while_statement, 4, 0, 44), - [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_while_statement, 4, 0, 44), - [583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 3, 0, 48), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 3, 0, 48), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1, 0, 0), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1, 0, 0), - [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0), - [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 46), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 46), - [599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 47), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 47), - [603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 2, 0, 35), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 2, 0, 35), - [607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, 0, 40), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, 0, 40), - [611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 42), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, 0, 42), - [615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), - [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274), - [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(275), - [665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), - [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(334), - [669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 3, 0, 6), - [671] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 3, 0, 6), - [673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 3, 0, 0), - [675] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 3, 0, 0), - [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 4, 0, 10), - [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 4, 0, 10), - [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 5, 0, 0), - [683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 5, 0, 0), - [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 6, 0, 0), - [687] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 6, 0, 0), - [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 15), - [691] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 15), - [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 7, 0, 0), - [695] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 7, 0, 0), - [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 8, 0, 0), - [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 8, 0, 0), - [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 16), - [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 16), - [705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 17), - [707] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 17), - [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 31), - [711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 31), - [713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 3, 0, 4), - [715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 3, 0, 4), - [717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), - [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 3, 0, 5), - [721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 3, 0, 5), - [723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 3, 0, 6), - [725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 3, 0, 6), - [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 21), - [729] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 21), - [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 22), - [733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 22), - [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 23), - [737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 23), - [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 24), - [741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 24), - [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 25), - [745] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 25), - [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 26), - [749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 26), - [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 4, 0, 4), - [753] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 4, 0, 4), - [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 4, 0, 10), - [757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 4, 0, 10), - [759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 29), - [761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 29), - [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 30), - [765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 30), - [767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 5, 0, 18), - [769] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 5, 0, 18), - [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [773] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292), - [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), - [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [781] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), - [783] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 3, 0, 0), - [785] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 0), - [787] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 2, 0, 0), - [789] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 2, 0, 0), + [337] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(48), + [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(95), + [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 2, 0, 0), + [345] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 2, 0, 0), + [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_identifier, 1, 0, 1), + [349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hole_type, 1, 0, 2), + [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 1, 0, 0), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 1, 0, 0), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(425), + [362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(425), + [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [417] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), + [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [427] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr13, 1, 0, 0), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr13, 1, 0, 0), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_condition, 1, 0, 0), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 3, 0, 0), + [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 3, 0, 0), + [445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 3, 0, 0), + [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 3, 0, 0), + [449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ternary_expression, 5, 0, 46), + [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, 0, 46), + [453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 1, 0, 0), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 1, 0, 0), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [461] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(141), + [464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [468] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(135), + [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), + [473] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(272), + [476] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(387), + [479] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(228), + [482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(392), + [485] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(200), + [488] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(207), + [491] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(201), + [494] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(268), + [497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(208), + [500] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(271), + [503] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(287), + [506] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(273), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), + [511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), + [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 2, 0, 42), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 2, 0, 42), + [539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(408), + [541] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 3, 0, 0), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 3, 0, 0), + [547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), + [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), + [551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1, 0, 0), + [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1, 0, 0), + [555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 51), + [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 51), + [559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0), + [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0), + [563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 52), + [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 52), + [567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 3, 0, 53), + [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 3, 0, 53), + [571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 43), + [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, 0, 43), + [575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 2, 0, 35), + [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 2, 0, 35), + [579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, 0, 41), + [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, 0, 41), + [583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_while_statement, 4, 0, 48), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_while_statement, 4, 0, 48), + [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 2, 0, 49), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 2, 0, 49), + [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 3, 0, 44), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 3, 0, 44), + [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0), + [599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(279), + [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), + [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [615] = {.entry = {.count = 1, .reusable = false}}, SHIFT(303), + [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289), + [633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), + [635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(291), + [637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(264), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [645] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [649] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), + [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(369), + [665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), + [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(293), + [671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294), + [673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 3, 0, 6), + [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 3, 0, 6), + [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 3, 0, 0), + [683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 3, 0, 0), + [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 4, 0, 10), + [687] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 4, 0, 10), + [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 5, 0, 0), + [691] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 5, 0, 0), + [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 6, 0, 0), + [695] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 6, 0, 0), + [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 7, 0, 0), + [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 7, 0, 0), + [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 8, 0, 0), + [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 8, 0, 0), + [705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 15), + [707] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 15), + [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 16), + [711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 16), + [713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 17), + [715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 17), + [717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 5, 0, 18), + [719] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 5, 0, 18), + [721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 3, 0, 4), + [723] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 3, 0, 4), + [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), + [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 3, 0, 5), + [729] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 3, 0, 5), + [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 3, 0, 6), + [733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 3, 0, 6), + [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 21), + [737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 21), + [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 22), + [741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 22), + [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 23), + [745] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 23), + [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 24), + [749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 24), + [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 25), + [753] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 25), + [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 26), + [757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 26), + [759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 4, 0, 4), + [761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 4, 0, 4), + [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 4, 0, 10), + [765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 4, 0, 10), + [767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 29), + [769] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 29), + [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 30), + [773] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 30), + [775] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 31), + [777] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 31), + [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [781] = {.entry = {.count = 1, .reusable = false}}, SHIFT(313), + [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [789] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), [791] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 4, 0, 0), [793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 0), - [795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), - [797] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230), - [799] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), SHIFT_REPEAT(246), - [802] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), - [804] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [806] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 1, 0, 0), - [808] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 1, 0, 0), - [810] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 0), - [812] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), - [815] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), - [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), - [820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), - [822] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 2, 0, 0), - [824] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), - [827] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), - [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), - [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), - [834] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_hint, 1, 0, 0), - [836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_hint, 1, 0, 0), - [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 3, 0, 9), - [842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 3, 0, 9), - [844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(202), - [847] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(265), - [850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(202), - [853] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(265), - [856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primitive_type, 1, 0, 0), - [858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_type, 1, 0, 0), - [860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parenthesized_type, 3, 0, 0), - [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parenthesized_type, 3, 0, 0), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364), - [868] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), - [870] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 4, 0, 13), - [872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 4, 0, 13), - [874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 4, 0, 13), - [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 4, 0, 13), - [878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4, 0, 0), - [880] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4, 0, 0), - [882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), - [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), - [886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 8), - [888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 8), - [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), - [892] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), SHIFT_REPEAT(319), - [895] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 2, 0, 0), - [897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 2, 0, 0), - [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), - [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [905] = {.entry = {.count = 1, .reusable = false}}, SHIFT(356), - [907] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3, 0, 0), - [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, 0, 0), - [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), - [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [915] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 8), - [918] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 8), - [921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), - [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), - [925] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), - [927] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), SHIFT_REPEAT(280), - [930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), - [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [936] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), - [938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, 0, 14), - [940] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), SHIFT_REPEAT(211), - [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), - [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), - [955] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 1, 0, 3), - [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 1, 0, 3), - [959] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(195), - [962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), - [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [972] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inline, 1, 0, 0), - [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inline, 1, 0, 0), - [976] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 1, 0, 0), - [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 1, 0, 0), - [982] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(127), - [985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), - [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [997] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), - [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [1001] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), - [1003] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), - [1005] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), SHIFT_REPEAT(303), - [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [1010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), - [1012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [1020] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(288), - [1023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), - [1025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 4, 0, 39), - [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 4, 0, 39), - [1029] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), - [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [1035] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), - [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [1039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [1041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(238), - [1043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [1045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), - [1047] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), - [1049] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(201), - [1052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [1054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [1056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), - [1060] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), - [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [1066] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213), - [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [1082] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), - [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [1086] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), - [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), - [1090] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(203), - [1093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [1095] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 3, 0, 0), - [1097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 3, 0, 0), - [1099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [1101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [1107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [1109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [1111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [1113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [1115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), SHIFT_REPEAT(202), - [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), - [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [1126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(207), - [1129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), - [1131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), - [1133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 2, 0, 7), - [1135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 2, 0, 7), - [1137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [1139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [1141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, 0, 8), - [1143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [1145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, 0, 7), - [1147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), - [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, 0, 3), - [1151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 3, 0, 11), - [1153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 3, 0, 11), - [1155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [1157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), - [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), - [1161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), - [1163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [1165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), - [1167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 4, 0, 20), - [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 4, 0, 20), - [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [1173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [1175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), - [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), - [1180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), - [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [1192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [1194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [1196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [1198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233), - [1200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174), - [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), - [1206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [1208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), - [1210] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 2, 0, 0), + [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 2, 0, 0), + [799] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 3, 0, 0), + [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 0), + [803] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 1, 0, 0), + [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 1, 0, 0), + [807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(231), + [809] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), SHIFT_REPEAT(247), + [812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), + [814] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [818] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 2, 0, 0), + [820] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), + [823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), + [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), + [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), + [830] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 4, 0, 13), + [832] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 4, 0, 13), + [834] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 4, 0, 13), + [836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 4, 0, 13), + [838] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primitive_type, 1, 0, 0), + [840] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_type, 1, 0, 0), + [842] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 0), + [844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), + [847] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), + [850] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), + [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), + [854] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_hint, 1, 0, 0), + [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_hint, 1, 0, 0), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 3, 0, 8), + [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 3, 0, 8), + [864] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 3, 0, 8), + [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 3, 0, 8), + [868] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(209), + [871] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(278), + [874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3, 0, 0), + [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, 0, 0), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [880] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), + [882] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), + [884] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(209), + [887] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(278), + [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4, 0, 0), + [892] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4, 0, 0), + [894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var_declaration, 1, 0, 3), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [902] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), + [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 9), + [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 9), + [918] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_var_declaration, 1, 0, 3), REDUCE(sym_type_identifier, 1, 0, 1), + [921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 2, 0, 0), + [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 2, 0, 0), + [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), + [943] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), SHIFT_REPEAT(339), + [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [952] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 9), + [955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 9), + [958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), + [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), + [962] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), + [964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), + [966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 1, 0, 0), + [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 1, 0, 0), + [972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_nested_tensor_declaration_repeat1, 2, 0, 0), + [974] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 1, 0, 3), + [976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 1, 0, 3), + [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), + [980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [990] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), SHIFT_REPEAT(213), + [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), + [995] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390), + [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, 0, 14), + [999] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), SHIFT_REPEAT(312), + [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), + [1004] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inline, 1, 0, 0), + [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inline, 1, 0, 0), + [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [1010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [1012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(108), + [1015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), + [1017] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), + [1019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1027] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 3, 0, 0), + [1029] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 3, 0, 0), + [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [1039] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), + [1041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [1043] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_nested_tensor_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(184), + [1046] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(204), + [1049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), + [1051] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), + [1053] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218), + [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [1057] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), + [1059] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), SHIFT_REPEAT(329), + [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [1080] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), + [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1086] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [1090] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), + [1092] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(196), + [1095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [1097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [1099] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), + [1101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), + [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [1107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [1109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), + [1111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(202), + [1114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 4, 0, 40), + [1116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 4, 0, 40), + [1118] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), + [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [1124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), + [1126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), + [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [1152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(309), + [1155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), + [1157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), SHIFT_REPEAT(209), + [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), + [1162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(206), + [1165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), + [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [1169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 4, 0, 20), + [1171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 4, 0, 20), + [1173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_tensor_declaration, 3, 0, 28), + [1175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [1177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), + [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, 0, 7), + [1181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_tensor_declaration, 4, 0, 37), + [1183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [1185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [1187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [1189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, 0, 3), + [1191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [1193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [1195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [1197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 2, 0, 7), + [1199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 2, 0, 7), + [1201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, 0, 9), + [1203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), + [1205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), + [1207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), + [1209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [1211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [1213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), + [1215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [1217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [1219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_tensor_declaration, 5, 0, 45), + [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), + [1223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [1225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), + [1228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 3, 0, 11), + [1230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 3, 0, 11), + [1232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [1234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [1236] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), + [1238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239), + [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [1242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [1244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [1246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), + [1248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [1250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [1252] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [1256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), + [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [1262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), + [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [1266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), }; #ifdef __cplusplus From 3b9aef52297a5d98d193c8988dbfe379269d9a39 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 04/32] Support for tensor expression declarations --- server/src/languages/func/psi/Reference.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server/src/languages/func/psi/Reference.ts b/server/src/languages/func/psi/Reference.ts index 4bca660c..1ad036a3 100644 --- a/server/src/languages/func/psi/Reference.ts +++ b/server/src/languages/func/psi/Reference.ts @@ -329,6 +329,20 @@ export class Reference { } } } + if (firstChild?.type === "tensor_expression") { + // (int foo, cell bar) = (42, someCall()) + for (let childDeclaration of firstChild.descendantsOfType("local_vars_declaration")) { + if (!childDeclaration) { + continue; + } + const lhs = childDeclaration.childForFieldName("lhs") + if (lhs) { + if (!this.processVariableDeclaration(lhs, proc, file, state)) { + return false + } + } + } + } if (firstChild?.type === "typed_tuple") { // [_, int a, int b] = [1, 2]; @@ -355,7 +369,7 @@ export class Reference { if (!proc.execute(new VarDeclaration(lhs, file), state)) return false } - if (lhs.type === "tuple_vars_declaration" || lhs.type === "tensor_vars_declaration") { + if (lhs.type === "tuple_vars_declaration" || lhs.type === "tensor_vars_declaration" || lhs.type === "nested_tensor_declaration") { const vars = lhs.childrenForFieldName("vars") for (const variable of vars) { if (!variable) continue From 0ca8dbaf21a80218677fb127e33edcfd1a6a5d14 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:05 +0300 Subject: [PATCH 05/32] Extended parent and sibling search utils --- server/src/psi/utils.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/server/src/psi/utils.ts b/server/src/psi/utils.ts index 997c8fbd..0b878970 100644 --- a/server/src/psi/utils.ts +++ b/server/src/psi/utils.ts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT // Copyright © 2025 TON Core -import type {Node as SyntaxNode} from "web-tree-sitter" +import type { Node as SyntaxNode } from "web-tree-sitter" export function parentOfType(node: SyntaxNode, ...types: readonly string[]): SyntaxNode | null { let parent = node.parent @@ -13,6 +13,29 @@ export function parentOfType(node: SyntaxNode, ...types: readonly string[]): Syn return null } +export function parentOfTypeWithCb(node: SyntaxNode, cb: (parent: SyntaxNode, branch: SyntaxNode) => T, ...types: readonly string[]): T | null { + let parent = node.parent; + let prevNode = node; + + for (let i = 0; i < 100; i++) { + if (parent === null) return null + if (types.includes(parent.type)) return cb(parent, prevNode) + prevNode = parent; + parent = parent.parent + } + + return null +} +export function closestNamedSibling(node: SyntaxNode, direction: 'prev' | 'next', cb: (sibling: SyntaxNode) => boolean): SyntaxNode | null { + let curSibling = direction == 'prev' ? node.previousNamedSibling : node.nextNamedSibling; + while (curSibling) { + if (cb(curSibling)) { + return curSibling; + } + curSibling = direction == 'prev' ? curSibling.previousNamedSibling : curSibling.nextNamedSibling; + } + return null; +} export function measureTime(label: string, fn: () => T): T { const startTime = performance.now() From 213432f59e57ca27cb47c6384469ef3d9162b488 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:05 +0300 Subject: [PATCH 06/32] Basic impure inspection --- .../func/inspections/UnusedImpure.ts | 113 ++++++++++++++++++ server/src/languages/func/psi/Decls.ts | 4 + 2 files changed, 117 insertions(+) create mode 100644 server/src/languages/func/inspections/UnusedImpure.ts diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts new file mode 100644 index 00000000..3bfff29a --- /dev/null +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -0,0 +1,113 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2025 TON Core + +import * as lsp from "vscode-languageserver" + +import type { FuncFile } from "@server/languages/func/psi/FuncFile" +import { Node } from 'web-tree-sitter' +import { UnusedInspection } from "./UnusedInspection" +import { Inspection, InspectionIds } from "./Inspection" +import { RecursiveVisitor } from "@server/visitor/visitor"; +import { Func } from "@server/languages/func/psi/Decls"; +import { convertTy, typeOf } from "@server/languages/func/types/infer"; +import { asLspRange } from "@server/utils/position" +import { closestNamedSibling, parentOfType, parentOfTypeWithCb } from "@server/psi/utils" +import { Referent } from "@server/languages/func/psi/Referent" + + +export class UnusedImpureInspection extends UnusedInspection implements Inspection { + public readonly id: "unused-impure" = InspectionIds.UNUSED_IMPURE; + + protected checkFile(file: FuncFile, diagnostics: lsp.Diagnostic[]): void { + const impureMap: Map = new Map(); + // Populate impure functions map + file.getFunctions().forEach(f => { + if (!f.isImpure) { + impureMap.set(f.name(true), f); + } + }); + RecursiveVisitor.visit(file.rootNode, (node): boolean => { + if (node.type == "function_application") { + const funcIdentifier = node.children.find(n => n?.type === "identifier") + if (funcIdentifier) { + const droppableDef = impureMap.get(funcIdentifier.text); + if (droppableDef && this.checkCallWillDrop(node, droppableDef, file)) { + const range = asLspRange(node); + diagnostics.push({ + severity: lsp.DiagnosticSeverity.Error, + range, + message: "This call will be dropped due to lack of impure specifier!", + source: "func" + }) + } + } + } + return true; + }) + } + + private checkCallWillDrop(node: Node, definition: Func, file: FuncFile) { + const returnExp = definition.returnType(); + if (returnExp !== null) { + // If return type of a function is empty tensor - check no more. + if (returnExp.node.text == '()') { + return true; + } + } + const expressionParent = parentOfTypeWithCb<{ parent: Node, origin: Node }>(node, + (parent, origin) => { + return { parent, origin } + }, + "expression_statement", + "return_statement", + "function_application", + "method_call", + "if_statement", + "while_statement", + "do_while_statement", + "repeat_statement" + ); + // If call is in the block_statement of any kind, it will be a child of expression_statement + // Otherwise it is in condition block of if/while/do while + // Or in arguments clause of other function_application/method_call + if (!expressionParent || expressionParent.parent.type !== "expression_statement") { + return false; + } + + // We are in the expression expression_statement + // Closest previous sibling got to be lvalue expression + // (identifier/tensor_expression/tuple_expression) + const lValue = closestNamedSibling(expressionParent.origin, 'prev', (sibling) => sibling.type !== "comment"); + // If no lvalue, non-impure call will drop + if (!lValue) { + return true; + } + // If no identifiers referenced in lvalue, means those are whole type and will be dropped + const affectedIdentifiers = lValue.descendantsOfType("identifier"); + + for (let refValue of affectedIdentifiers) { + if (!refValue) { + continue; + } + const references = new Referent(refValue, file).findReferences({}) // we need at least one reference + // Has to be referenced in call, conditional or return statement; + for (let ref of references) { + const parent = parentOfType(ref.node, + "expression_statement", // But don't go above expression_statement + "function_application", + "method_call", + "if_statement", + "while_statement", + "do_while_statement", + "repeat_statement" + ) + if (parent && parent.type !== "expression_statement") { + return false; + } + } + } + + return true; + } +} + diff --git a/server/src/languages/func/psi/Decls.ts b/server/src/languages/func/psi/Decls.ts index bed353c0..e0b058c0 100644 --- a/server/src/languages/func/psi/Decls.ts +++ b/server/src/languages/func/psi/Decls.ts @@ -105,6 +105,10 @@ export class FunctionBase extends NamedNode { const methodId = specifiers?.children.find(it => it?.type === "method_id") ?? null return methodId !== null } + public get isImpure(): boolean { + const specifiers = this.node.childForFieldName("specifiers"); + return Boolean(specifiers?.children.find(it => it?.type === "impure")); + } public get hasExplicitMethodId(): boolean { // check for From d94a6579a70ed47154366e869d5d094610d6b4dc Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:05 +0300 Subject: [PATCH 07/32] Basic bind resolution --- .../src/languages/func/psi/BindingResolver.ts | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 server/src/languages/func/psi/BindingResolver.ts diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts new file mode 100644 index 00000000..b6186c52 --- /dev/null +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -0,0 +1,208 @@ +import type { Node as SyntaxNode } from "web-tree-sitter"; +import { FuncFile } from "./FuncFile"; +import { Func } from "@server/languages/func/psi/Decls"; + +type Binding = { + identifier: SyntaxNode, + producer_exp: SyntaxNode[] +} + +type BindingResult = { + lhs: SyntaxNode[], + rhs: SyntaxNode[], + bindings: Map +} + +export class FunCBindingResolver { + + + protected funcMap: Map; + protected bindings: Map; + constructor(file: FuncFile) { + this.bindings = new Map(); + this.funcMap = new Map(); + + file.getFunctions().forEach((f => { + this.funcMap.set(f.name(), f); + })) + } + + resolve(expression: SyntaxNode): BindingResult { + + let lhs: SyntaxNode[] = []; + let rhs: SyntaxNode[] = []; + let equalsFound = false; + + for (let curChild of expression.children) { + if (!curChild) { + continue; + } + + if (curChild.text == '=') { + equalsFound = true; + if (lhs.length == 0) { + throw RangeError("Equals encountered before first lhs identifier"); + } + } + if (curChild.isNamed) { + if (equalsFound) { + rhs.push(curChild); + } else { + lhs.push(curChild); + } + } + } + + let bindRes: BindingResult = { + lhs, + rhs, + bindings: new Map() + } + if (!equalsFound || lhs[0].type == "underscore") { + return bindRes; + } + if (lhs.length > 1) { + // Do we even need dat? + throw new RangeError("TODO multi lhs bindings"); + } + + const pattern = lhs[0] + this.walkPattern(pattern, rhs[0]); + + // Copy the map for the output + for (let [k, v] of this.bindings.entries()) { + bindRes.bindings.set(k, v); + } + // Free up the map + this.bindings.clear(); + return bindRes; + } + + private walkPattern(pattern: SyntaxNode, value: SyntaxNode) { + if (!pattern || pattern.type == "underscore") { + return + } + + switch (pattern.type) { + case "identifier": + this.bindIdentifier(pattern, value); + break; + case "local_vars_declaration": + const curLhs = pattern.childForFieldName("lhs"); + if (!curLhs) { + throw new Error("No lhs in var declaration") + } + this.walkPattern(curLhs, value); + break; + case "var_declaration": + this.bindIdentifier(pattern.childForFieldName("name")!, value); + break; + case "tensor_vars_declaration": + case "tensor_expression": + this.bindTensor(pattern, value); + break; + } + } + + private bindIdentifier(target: SyntaxNode, value: SyntaxNode) { + this.bindings.set(target.text, { + identifier: target, + producer_exp: [value] + }); + } + + private bindTensor(target: SyntaxNode, value: SyntaxNode) { + const curValueType = value.type; + if (curValueType == "function_application") { + this.bindToFunctionCall(target, value); + } else if (curValueType == "tensor_expression") { + + for (let i = 0; i < target.namedChildCount; i++) { + const nextTarget = target.namedChildren[i]; + if (!nextTarget) { + continue; + } + const nextValue = value.namedChildren[i]; + if (!nextValue) { + throw new Error("Undefined value"); + } + this.walkPattern(nextTarget, nextValue); + } + } else { + throw new TypeError(`Type ${curValueType} is not yet supported!`); + } + /* + switch (value.type) { + case "function_application": + break; + case "tensor_expression": + this.walkPattern(target, value); + break; + default: + throw new Error(`Failed to bind tensor to ${value.type} ${target} ${value}`) + } + */ + } + + private bindToFunctionCall(target: SyntaxNode, value: SyntaxNode) { + const funcIdentifier = value.childForFieldName("callee"); + if (!funcIdentifier) { + throw new Error(`Calle not found: ${value}`) + } + const funcName = funcIdentifier.text; + const funcDecl = this.funcMap.get(funcName); + if (!funcDecl) { + throw new Error(`Failed to find function declaration ${funcName}`) + } + const retType = funcDecl.returnType(); + if (!retType) { + throw new Error(`Function ${funcName} without return type. Grammar failure?`) + } + this.bindToReturnType(target, value, retType.node); + + } + private bindToReturnType(target: SyntaxNode, callNode: SyntaxNode, retType: SyntaxNode) { + const targetFiltered = target.type == "tensor_vars_declaration" ? target.childrenForFieldName("vars").filter(v => v?.isNamed) : target.namedChildren; + + if (targetFiltered.length != retType.namedChildCount) { + throw new Error(`Return type arity error ${target} ${retType}`); + } + + for (let i = 0; i < targetFiltered.length; i++) { + const pattern = targetFiltered[i]; + const bindRhs = retType.namedChildren[i]; + + if (pattern == null || pattern.type == "underscore") { + continue; + } + if (!bindRhs) { + throw new Error(`Type node can't be null`) + } + + const bindType = bindRhs.type; + const patternType = pattern.type; + + switch (patternType) { + case "tuple_expression": + if (bindType != "tuple_type_expression") { + throw new Error(`Can't map ${patternType} to ${bindType}`) + } + this.bindToReturnType(pattern, callNode, bindRhs); + break; + case "tensor_var_declaration": + case "tensor_expression": + if (bindType !== "tensor_type") { + throw new Error(`Cant map ${patternType} to ${bindType}`) + } + this.bindToReturnType(pattern, callNode, bindRhs); + break; + case "var_declaration": + this.bindIdentifier(pattern.childForFieldName("name")!, callNode); + break; + case "identifier": + this.bindIdentifier(pattern, callNode); + break; + } + } + } +} From ed728a0d02336d0d038212d8a1803011a14e33cc Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 08/32] Method call support for binding resolver --- .../src/languages/func/psi/BindingResolver.ts | 223 +++++++++++++----- 1 file changed, 165 insertions(+), 58 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index b6186c52..b616abf4 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -1,6 +1,8 @@ import type { Node as SyntaxNode } from "web-tree-sitter"; import { FuncFile } from "./FuncFile"; import { Func } from "@server/languages/func/psi/Decls"; +import { Expression } from "./FuncNode"; +import { closestNamedSibling } from "@server/psi/utils"; type Binding = { identifier: SyntaxNode, @@ -8,6 +10,7 @@ type Binding = { } type BindingResult = { + expression: Expression lhs: SyntaxNode[], rhs: SyntaxNode[], bindings: Map @@ -18,7 +21,8 @@ export class FunCBindingResolver { protected funcMap: Map; protected bindings: Map; - constructor(file: FuncFile) { + + constructor(readonly file: FuncFile) { this.bindings = new Map(); this.funcMap = new Map(); @@ -45,6 +49,16 @@ export class FunCBindingResolver { } } if (curChild.isNamed) { + // If modirying method call + /* + if (curChild.type == "method_call" && curChild.children[0]?.text == "~") { + const firstArg = closestNamedSibling(curChild, 'prev', (sibling => sibling.type == "identifier")) + if (firstArg) { + // Not really lhs, but semantically it is + lhs.push(firstArg) + } + } + */ if (equalsFound) { rhs.push(curChild); } else { @@ -54,6 +68,7 @@ export class FunCBindingResolver { } let bindRes: BindingResult = { + expression: new Expression(expression, this.file), lhs, rhs, bindings: new Map() @@ -67,7 +82,7 @@ export class FunCBindingResolver { } const pattern = lhs[0] - this.walkPattern(pattern, rhs[0]); + this.walkPattern(pattern, rhs); // Copy the map for the output for (let [k, v] of this.bindings.entries()) { @@ -78,72 +93,147 @@ export class FunCBindingResolver { return bindRes; } - private walkPattern(pattern: SyntaxNode, value: SyntaxNode) { + private walkPattern(pattern: SyntaxNode, value: SyntaxNode[]) { if (!pattern || pattern.type == "underscore") { return } - switch (pattern.type) { - case "identifier": - this.bindIdentifier(pattern, value); - break; - case "local_vars_declaration": - const curLhs = pattern.childForFieldName("lhs"); - if (!curLhs) { - throw new Error("No lhs in var declaration") - } - this.walkPattern(curLhs, value); - break; - case "var_declaration": - this.bindIdentifier(pattern.childForFieldName("name")!, value); - break; - case "tensor_vars_declaration": - case "tensor_expression": - this.bindTensor(pattern, value); - break; + try { + switch (pattern.type) { + case "identifier": + this.bindIdentifier(pattern, value); + break; + case "local_vars_declaration": + const curLhs = pattern.childForFieldName("lhs"); + if (!curLhs) { + throw new Error("No lhs in var declaration") + } + this.walkPattern(curLhs, value); + break; + case "var_declaration": + this.bindIdentifier(pattern.childForFieldName("name")!, value); + break; + case "tensor_vars_declaration": + case "tensor_expression": + case "tuple_expression": + case "parenthesized_expression": + case "nested_tensor_declaration": + case "tuple_vars_declaration": + this.bindCollection(pattern, value); + break; + } + } catch (e) { + console.error(`Failed to waks pattern ${e} ${pattern}, ${value}`) } } - private bindIdentifier(target: SyntaxNode, value: SyntaxNode) { + private bindIdentifier(target: SyntaxNode, value: SyntaxNode[], checkMethodRhs: boolean = true) { + if (checkMethodRhs) { + value.forEach(curNode => { + if (curNode.type == "method_call") { + this.bindToMethodCall(target, curNode); + } else { + // In case calls are in tensor expressions + curNode.descendantsOfType("method_call").forEach(methodCall => { + if (methodCall) { + this.bindToMethodCall(target, methodCall); + } + }) + } + }) + } this.bindings.set(target.text, { identifier: target, - producer_exp: [value] + producer_exp: value }); } - private bindTensor(target: SyntaxNode, value: SyntaxNode) { - const curValueType = value.type; - if (curValueType == "function_application") { - this.bindToFunctionCall(target, value); - } else if (curValueType == "tensor_expression") { - - for (let i = 0; i < target.namedChildCount; i++) { - const nextTarget = target.namedChildren[i]; - if (!nextTarget) { - continue; + private bindCollection(target: SyntaxNode, value: SyntaxNode[]) { + if (value.length >= 2) { + value.forEach((curNode) => { + if (curNode.type == "method_call") { + this.bindToMethodCall(target, curNode); } - const nextValue = value.namedChildren[i]; - if (!nextValue) { - throw new Error("Undefined value"); + }) + } else if (value.length == 1) { + const curValue = value[0]; + const curValueType = curValue.type; + if (curValueType == "function_application") { + this.bindToFunctionCall(target, curValue); + } else if (curValueType == "tensor_expression" || curValueType == "tuple_expression") { + + for (let i = 0; i < target.namedChildCount; i++) { + const nextTarget = target.namedChildren[i]; + if (!nextTarget) { + continue; + } + const nextValue = curValue.namedChildren[i]; + if (!nextValue) { + throw new Error(`Undefined next value ${curValue}`); + } + this.walkPattern(nextTarget, [nextValue]); } - this.walkPattern(nextTarget, nextValue); + } else { + throw new TypeError(`Type ${curValueType} is not yet supported!`); } - } else { - throw new TypeError(`Type ${curValueType} is not yet supported!`); - } - /* - switch (value.type) { - case "function_application": - break; - case "tensor_expression": - this.walkPattern(target, value); - break; - default: - throw new Error(`Failed to bind tensor to ${value.type} ${target} ${value}`) - } - */ + } } + private bindToMethodCall(target: SyntaxNode, value: SyntaxNode) { + const isModifying = value.children[0]?.text == "~"; + const methodName = value.childForFieldName("method_name")!.text; + let methodDecl = this.funcMap.get(methodName); + if (!methodDecl) { + // Thre could be method with ~ prefix being part of the name + if (isModifying && methodName[0] !== "~") { + methodDecl = this.funcMap.get("~" + methodName); + } + } + if (!methodDecl) { + throw new Error(`Failed to get method declaration ${methodName}`) + } + const retType = methodDecl.returnType(); + + if (!retType) { + throw new Error(`Method ${methodName} has no return type`) + } + if (retType.node.type !== "tensor_type") { + throw new TypeError(`Expected tensor_type for modifying method return type got ${retType.node.type}`) + } + + // For non-modofiying method bind as normal function call; + let bindScope = retType.node; + + if (isModifying) { + const firstArg = closestNamedSibling(value, 'prev', (sybl => sybl.type == "identifier")); + if (!firstArg) { + throw new Error(`First arg not found for modifying method call ${value}`) + } + this.bindIdentifier(firstArg, [value], false); + // Next tensor type + let retTensor: SyntaxNode | undefined; + const childrenCount = bindScope.namedChildCount; + // First is bound to the first method arg already + for (let i = 1; i < childrenCount; i++) { + const curChild = bindScope.namedChild(i); + if (curChild?.type == "tensor_type") { + retTensor = curChild; + break; + } + } + if (!retTensor) { + throw new Error(`Return tensor not defined for method ${methodDecl}`) + } + // If sub tensor is empty, we can return at this point + if (retTensor.namedChildCount == 0) { + return; + } + // Otherwise bind to the sub-tensor + bindScope = retTensor; + } + + this.bindToReturnType(target, value, bindScope, false) + } private bindToFunctionCall(target: SyntaxNode, value: SyntaxNode) { const funcIdentifier = value.childForFieldName("callee"); if (!funcIdentifier) { @@ -161,8 +251,20 @@ export class FunCBindingResolver { this.bindToReturnType(target, value, retType.node); } - private bindToReturnType(target: SyntaxNode, callNode: SyntaxNode, retType: SyntaxNode) { - const targetFiltered = target.type == "tensor_vars_declaration" ? target.childrenForFieldName("vars").filter(v => v?.isNamed) : target.namedChildren; + private bindToReturnType(target: SyntaxNode, callNode: SyntaxNode, retType: SyntaxNode, checkMethodRhs: boolean = true) { + const targetType = target.type; + let targetFiltered: (SyntaxNode | null)[]; + // Hacky,but drop types + if (targetType == "tensor_vars_declaration") { + targetFiltered = target.childrenForFieldName("vars").filter(v => v?.isNamed); + } else if (targetType == "var_declaration" || targetType == "identifier") { + // Name is only part of var declaration + const identifierNode = target.childForFieldName("name") ?? target; + this.bindIdentifier(identifierNode, [callNode], checkMethodRhs); + return; + } else { + targetFiltered = target.namedChildren; + } if (targetFiltered.length != retType.namedChildCount) { throw new Error(`Return type arity error ${target} ${retType}`); @@ -183,24 +285,29 @@ export class FunCBindingResolver { const patternType = pattern.type; switch (patternType) { + case "tuple_vars_declaration": case "tuple_expression": - if (bindType != "tuple_type_expression") { + if (bindType != "tuple_type") { throw new Error(`Can't map ${patternType} to ${bindType}`) } - this.bindToReturnType(pattern, callNode, bindRhs); + this.bindToReturnType(pattern, callNode, bindRhs, checkMethodRhs); + break; + case "local_vars_declaration": + this.bindToReturnType(pattern.childForFieldName("lhs")!, callNode, bindRhs, checkMethodRhs); break; case "tensor_var_declaration": + case "nested_tensor_declaration": case "tensor_expression": if (bindType !== "tensor_type") { throw new Error(`Cant map ${patternType} to ${bindType}`) } - this.bindToReturnType(pattern, callNode, bindRhs); + this.bindToReturnType(pattern, callNode, bindRhs, checkMethodRhs); break; case "var_declaration": - this.bindIdentifier(pattern.childForFieldName("name")!, callNode); + this.bindIdentifier(pattern.childForFieldName("name")!, [callNode], checkMethodRhs); break; case "identifier": - this.bindIdentifier(pattern, callNode); + this.bindIdentifier(pattern, [callNode], checkMethodRhs); break; } } From ec909b5f2ca0a4f2f417581f798c1c0928d8566d Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 09/32] Make use of binding resolver --- .../func/inspections/UnusedImpure.ts | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index 3bfff29a..623796d1 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -9,10 +9,10 @@ import { UnusedInspection } from "./UnusedInspection" import { Inspection, InspectionIds } from "./Inspection" import { RecursiveVisitor } from "@server/visitor/visitor"; import { Func } from "@server/languages/func/psi/Decls"; -import { convertTy, typeOf } from "@server/languages/func/types/infer"; import { asLspRange } from "@server/utils/position" import { closestNamedSibling, parentOfType, parentOfTypeWithCb } from "@server/psi/utils" import { Referent } from "@server/languages/func/psi/Referent" +import { FunCBindingResolver } from "../psi/BindingResolver" export class UnusedImpureInspection extends UnusedInspection implements Inspection { @@ -26,27 +26,40 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti impureMap.set(f.name(true), f); } }); + const bindResolver = new FunCBindingResolver(file); RecursiveVisitor.visit(file.rootNode, (node): boolean => { + let droppableDef: Func | undefined; + if (node.type == "function_application") { - const funcIdentifier = node.children.find(n => n?.type === "identifier") + const funcIdentifier = node.childForFieldName("callee"); + if (funcIdentifier) { + droppableDef = impureMap.get(funcIdentifier.text); + } + } else if (node.type == "method_call") { + const funcIdentifier = node.childForFieldName("method_name"); if (funcIdentifier) { - const droppableDef = impureMap.get(funcIdentifier.text); - if (droppableDef && this.checkCallWillDrop(node, droppableDef, file)) { - const range = asLspRange(node); - diagnostics.push({ - severity: lsp.DiagnosticSeverity.Error, - range, - message: "This call will be dropped due to lack of impure specifier!", - source: "func" - }) + const methodName = funcIdentifier.text; + droppableDef = impureMap.get(methodName); + if (!droppableDef) { + droppableDef = impureMap.get("~" + methodName); } } } + + if (droppableDef && this.checkCallWillDrop(node, droppableDef, file, bindResolver)) { + const range = asLspRange(node); + diagnostics.push({ + severity: lsp.DiagnosticSeverity.Error, + range, + message: "This call will be dropped due to lack of impure specifier!", + source: "func" + }) + } return true; }) } - private checkCallWillDrop(node: Node, definition: Func, file: FuncFile) { + private checkCallWillDrop(node: Node, definition: Func, file: FuncFile, bindResolver: FunCBindingResolver) { const returnExp = definition.returnType(); if (returnExp !== null) { // If return type of a function is empty tensor - check no more. @@ -65,31 +78,33 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "if_statement", "while_statement", "do_while_statement", - "repeat_statement" + "repeat_statement", + "return_statement" ); // If call is in the block_statement of any kind, it will be a child of expression_statement // Otherwise it is in condition block of if/while/do while // Or in arguments clause of other function_application/method_call if (!expressionParent || expressionParent.parent.type !== "expression_statement") { + // If expression is in condition or return statement it will not be dropped return false; } // We are in the expression expression_statement // Closest previous sibling got to be lvalue expression // (identifier/tensor_expression/tuple_expression) - const lValue = closestNamedSibling(expressionParent.origin, 'prev', (sibling) => sibling.type !== "comment"); + const resolvedBinding = bindResolver.resolve(expressionParent.parent); // If no lvalue, non-impure call will drop - if (!lValue) { + if (resolvedBinding.bindings.size == 0) { return true; } // If no identifiers referenced in lvalue, means those are whole type and will be dropped - const affectedIdentifiers = lValue.descendantsOfType("identifier"); + // const affectedIdentifiers = resolvedBinding.bindings.values() - for (let refValue of affectedIdentifiers) { + for (let refValue of resolvedBinding.bindings.values()) { if (!refValue) { continue; } - const references = new Referent(refValue, file).findReferences({}) // we need at least one reference + const references = new Referent(refValue.identifier, file).findReferences({}) // we need at least one reference // Has to be referenced in call, conditional or return statement; for (let ref of references) { const parent = parentOfType(ref.node, @@ -99,7 +114,8 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "if_statement", "while_statement", "do_while_statement", - "repeat_statement" + "repeat_statement", + "return_statement" ) if (parent && parent.type !== "expression_statement") { return false; From cacc8183cb95b9eb97a5468519ed2d2b98fdc489 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 10/32] LHS only bindings for modifying methods --- .../src/languages/func/psi/BindingResolver.ts | 106 ++++++++++++------ 1 file changed, 72 insertions(+), 34 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index b616abf4..2fab8d39 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -3,6 +3,7 @@ import { FuncFile } from "./FuncFile"; import { Func } from "@server/languages/func/psi/Decls"; import { Expression } from "./FuncNode"; import { closestNamedSibling } from "@server/psi/utils"; +import { FUNC_PARSED_FILES_CACHE } from "@server/files"; type Binding = { identifier: SyntaxNode, @@ -21,14 +22,37 @@ export class FunCBindingResolver { protected funcMap: Map; protected bindings: Map; + protected assignmentOps: Set; constructor(readonly file: FuncFile) { this.bindings = new Map(); this.funcMap = new Map(); + this.assignmentOps = new Set([ + "=", + "+=", + "-=", + "*=", + "/=", + "~/=", + "^/=", + "%=", + "~%=", + "^%=", + "<<=", + ">>=", + "~>>=", + "^>>=", + "&=", + "|=", + "^=", + ]); - file.getFunctions().forEach((f => { - this.funcMap.set(f.name(), f); - })) + + FUNC_PARSED_FILES_CACHE.forEach(parsedFile => { + parsedFile.getFunctions().forEach(f => { + this.funcMap.set(f.name(), f); + }) + }); } resolve(expression: SyntaxNode): BindingResult { @@ -42,23 +66,13 @@ export class FunCBindingResolver { continue; } - if (curChild.text == '=') { + if (this.assignmentOps.has(curChild.text)) { equalsFound = true; if (lhs.length == 0) { throw RangeError("Equals encountered before first lhs identifier"); } } if (curChild.isNamed) { - // If modirying method call - /* - if (curChild.type == "method_call" && curChild.children[0]?.text == "~") { - const firstArg = closestNamedSibling(curChild, 'prev', (sibling => sibling.type == "identifier")) - if (firstArg) { - // Not really lhs, but semantically it is - lhs.push(firstArg) - } - } - */ if (equalsFound) { rhs.push(curChild); } else { @@ -73,16 +87,22 @@ export class FunCBindingResolver { rhs, bindings: new Map() } - if (!equalsFound || lhs[0].type == "underscore") { + if (lhs[0].type == "underscore") { return bindRes; } - if (lhs.length > 1) { + if (lhs.length > 1 && rhs.length > 0) { // Do we even need dat? throw new RangeError("TODO multi lhs bindings"); } const pattern = lhs[0] - this.walkPattern(pattern, rhs); + if (rhs.length > 0) { + this.walkPattern(pattern, rhs); + } else { + // Without rhs there still may be method calls on left. + // ds~skip_bits(32); ;; Stuff like that + this.bindModifyingCalls(lhs); + } // Copy the map for the output for (let [k, v] of this.bindings.entries()) { @@ -93,7 +113,7 @@ export class FunCBindingResolver { return bindRes; } - private walkPattern(pattern: SyntaxNode, value: SyntaxNode[]) { + protected walkPattern(pattern: SyntaxNode, value: SyntaxNode[]) { if (!pattern || pattern.type == "underscore") { return } @@ -127,20 +147,32 @@ export class FunCBindingResolver { } } - private bindIdentifier(target: SyntaxNode, value: SyntaxNode[], checkMethodRhs: boolean = true) { - if (checkMethodRhs) { - value.forEach(curNode => { - if (curNode.type == "method_call") { - this.bindToMethodCall(target, curNode); - } else { - // In case calls are in tensor expressions - curNode.descendantsOfType("method_call").forEach(methodCall => { - if (methodCall) { - this.bindToMethodCall(target, methodCall); - } - }) + protected bindModifyingCalls(value: SyntaxNode[]) { + value.forEach(curNode => { + if (curNode.type == "method_call") { + // Only modifying calls + if (curNode.children[0]?.text == "~") { + const identifier = curNode.previousNamedSibling; + if (identifier && identifier.type == "identifier") { + this.bindToMethodCall(identifier, curNode); + } } - }) + } else { + // In case calls are in tensor expressions + curNode.descendantsOfType("method_call").forEach(methodCall => { + if (methodCall && methodCall.children[0]?.text == "~") { + const identifier = curNode.previousNamedSibling; + if (identifier && identifier.type == "identifier") { + this.bindToMethodCall(identifier, curNode); + } + } + }) + } + }) + } + protected bindIdentifier(target: SyntaxNode, value: SyntaxNode[], checkMethodRhs: boolean = true) { + if (checkMethodRhs) { + this.bindModifyingCalls(value); } this.bindings.set(target.text, { identifier: target, @@ -197,19 +229,25 @@ export class FunCBindingResolver { if (!retType) { throw new Error(`Method ${methodName} has no return type`) } - if (retType.node.type !== "tensor_type") { - throw new TypeError(`Expected tensor_type for modifying method return type got ${retType.node.type}`) - } // For non-modofiying method bind as normal function call; let bindScope = retType.node; if (isModifying) { + if (retType.node.type !== "tensor_type") { + throw new TypeError(`Expected tensor_type for modifying method return type got ${retType.node.type}`) + } + const firstArg = closestNamedSibling(value, 'prev', (sybl => sybl.type == "identifier")); if (!firstArg) { throw new Error(`First arg not found for modifying method call ${value}`) } this.bindIdentifier(firstArg, [value], false); + // If firstArg is same as target, we're done here. + if (firstArg.id == target.id) { + return; + } + // Next tensor type let retTensor: SyntaxNode | undefined; const childrenCount = bindScope.namedChildCount; From 794764d592f49f2537c412da0109d243f7158ec0 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 11/32] Global file search and results caching --- .../func/inspections/UnusedImpure.ts | 176 ++++++++++++++---- 1 file changed, 139 insertions(+), 37 deletions(-) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index 623796d1..1a599e57 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -13,40 +13,105 @@ import { asLspRange } from "@server/utils/position" import { closestNamedSibling, parentOfType, parentOfTypeWithCb } from "@server/psi/utils" import { Referent } from "@server/languages/func/psi/Referent" import { FunCBindingResolver } from "../psi/BindingResolver" +import { FUNC_PARSED_FILES_CACHE } from "@server/files" export class UnusedImpureInspection extends UnusedInspection implements Inspection { public readonly id: "unused-impure" = InspectionIds.UNUSED_IMPURE; + private impureMap: Map; + private dropableMap: Map; + private resultsCache: Map; + private impureBuiltins: Set; + + constructor() { + super(); + this.resultsCache = new Map(); + this.impureMap = new Map(); + this.dropableMap = new Map(); + this.impureBuiltins = new Set([ + "throw", + "throw_if", + "throw_unless", + "throw_arg", + "throw_arg_op", + "throw_arg_unless", + "~dump", + "~strdump" + ]); + } + + private getCallDef(call: Node, mode: 'dropable' | 'impure' = 'dropable') { + let callDef: Func | undefined; + const lookupMap = mode == 'dropable' ? this.dropableMap : this.impureMap; + const callType = call.type; + if (callType == "function_application") { + const funcIdentifier = call.childForFieldName("callee"); + if (funcIdentifier) { + callDef = lookupMap.get(funcIdentifier.text); + } + } else if (callType == "method_call") { + const funcIdentifier = call.childForFieldName("method_name"); + if (funcIdentifier) { + const methodName = funcIdentifier.text; + callDef = lookupMap.get(methodName); + if (!callDef) { + callDef = lookupMap.get("~" + methodName); + } + } + } else { + throw new Error(`Unsupported call type ${call}`) + } + + return callDef; + } + private isImpureBuiltIn(call: Node) { + switch (call.type) { + case "function_application": + return this.impureBuiltins.has(call.childForFieldName("callee")!.text); + case "method_call": + return this.impureBuiltins.has(call.childForFieldName("method_name")!.text); + } + return false; + } + + private isCall(call: Node) { + return call.type == "function_application" || call.type == "method_call"; + } + + private setCache(node: Node, result: boolean) { + const cacheKey = [node.startPosition.row, node.startPosition.column, node.endPosition.row, node.endPosition.column].join(':'); + this.resultsCache.set(cacheKey, result); + } + private getCache(node: Node) { + const cacheKey = [node.startPosition.row, node.startPosition.column, node.endPosition.row, node.endPosition.column].join(':'); + return this.resultsCache.get(cacheKey); + } + protected checkFile(file: FuncFile, diagnostics: lsp.Diagnostic[]): void { - const impureMap: Map = new Map(); // Populate impure functions map - file.getFunctions().forEach(f => { - if (!f.isImpure) { - impureMap.set(f.name(true), f); - } - }); + FUNC_PARSED_FILES_CACHE.forEach(parsedFile => { + parsedFile.getFunctions().forEach(f => { + if (f.isImpure) { + this.impureMap.set(f.name(true), f); + } else { + this.dropableMap.set(f.name(true), f); + } + }); + }) const bindResolver = new FunCBindingResolver(file); RecursiveVisitor.visit(file.rootNode, (node): boolean => { - let droppableDef: Func | undefined; - - if (node.type == "function_application") { - const funcIdentifier = node.childForFieldName("callee"); - if (funcIdentifier) { - droppableDef = impureMap.get(funcIdentifier.text); - } - } else if (node.type == "method_call") { - const funcIdentifier = node.childForFieldName("method_name"); - if (funcIdentifier) { - const methodName = funcIdentifier.text; - droppableDef = impureMap.get(methodName); - if (!droppableDef) { - droppableDef = impureMap.get("~" + methodName); - } - } + if (!this.isCall(node)) { + return true; } - - if (droppableDef && this.checkCallWillDrop(node, droppableDef, file, bindResolver)) { + let willDrop = false; + // Skip impure builtins calls + if (this.isImpureBuiltIn(node)) { + return true; + } + // const droppableDef = this.getCallDef(node) + if (this.checkCallWillDrop(node, file, bindResolver)) { + willDrop = true; const range = asLspRange(node); diagnostics.push({ severity: lsp.DiagnosticSeverity.Error, @@ -55,11 +120,26 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti source: "func" }) } + this.setCache(node, willDrop); return true; }) } - private checkCallWillDrop(node: Node, definition: Func, file: FuncFile, bindResolver: FunCBindingResolver) { + private checkCallWillDrop(node: Node, file: FuncFile, bindResolver: FunCBindingResolver) { + const cachedRes = this.getCache(node); + if (cachedRes !== undefined) { + return cachedRes; + } + + const definition = this.getCallDef(node, 'dropable') + + if (!definition) { + // If no dropable def found, check that impure is implicit just in case + const willDrop = !(this.getCallDef(node, 'impure') || this.isImpureBuiltIn(node)) + this.setCache(node, willDrop); + return willDrop; + } + const returnExp = definition.returnType(); if (returnExp !== null) { // If return type of a function is empty tensor - check no more. @@ -81,17 +161,24 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "repeat_statement", "return_statement" ); + if (!expressionParent) { + // Could happen in incomplete code + return false; + } + const parentType = expressionParent.parent.type; // If call is in the block_statement of any kind, it will be a child of expression_statement // Otherwise it is in condition block of if/while/do while // Or in arguments clause of other function_application/method_call - if (!expressionParent || expressionParent.parent.type !== "expression_statement") { + if (parentType !== "expression_statement") { + if (parentType == "function_application" || parentType == "method_call") { + return this.checkCallWillDrop(expressionParent.parent, file, bindResolver) + } // If expression is in condition or return statement it will not be dropped return false; } // We are in the expression expression_statement - // Closest previous sibling got to be lvalue expression - // (identifier/tensor_expression/tuple_expression) + // Bind the values from the expression const resolvedBinding = bindResolver.resolve(expressionParent.parent); // If no lvalue, non-impure call will drop if (resolvedBinding.bindings.size == 0) { @@ -100,12 +187,12 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti // If no identifiers referenced in lvalue, means those are whole type and will be dropped // const affectedIdentifiers = resolvedBinding.bindings.values() - for (let refValue of resolvedBinding.bindings.values()) { - if (!refValue) { - continue; - } - const references = new Referent(refValue.identifier, file).findReferences({}) // we need at least one reference - // Has to be referenced in call, conditional or return statement; + for (let boundValue of resolvedBinding.bindings.values()) { + // Find references to the bound variables from below the current expression. + const references = new Referent(boundValue.identifier, file).findReferences({ limit: Infinity }).filter( + ref => ref.node.startIndex >= expressionParent.parent.endIndex + ); + // Has to be referenced in non impure call, conditional or return statement to not drop for (let ref of references) { const parent = parentOfType(ref.node, "expression_statement", // But don't go above expression_statement @@ -117,12 +204,27 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "repeat_statement", "return_statement" ) - if (parent && parent.type !== "expression_statement") { - return false; + if (!parent) { + continue; + } + if (parent.type !== "expression_statement") { + let willDrop = false; + if (this.isCall(parent)) { + willDrop = this.checkCallWillDrop(parent, file, bindResolver) + this.setCache(parent, willDrop); + } + return willDrop; + } + // Check reference in method call + const refSibling = closestNamedSibling(ref.node, 'next', (sibl => sibl.type == "method_call")) + if (refSibling) { + // If this is a droppable call, go to next ref, else expression is not droppable + if (!this.checkCallWillDrop(refSibling, file, bindResolver)) { + return false; + } } } } - return true; } } From 7e708b3b7d7567a3f04d263159356c7ad7311a0e Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 12/32] Add diagnostics code --- server/src/languages/func/inspections/UnusedImpure.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index 1a599e57..03e750e3 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -115,6 +115,7 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti const range = asLspRange(node); diagnostics.push({ severity: lsp.DiagnosticSeverity.Error, + code: 'unused-impure', range, message: "This call will be dropped due to lack of impure specifier!", source: "func" From 1a90440fad72f2e8e9c5e0091238fd64c5fb4015 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:08:06 +0300 Subject: [PATCH 13/32] Add impure inspection into inspection chain --- package.json | 3 ++- .../languages/func/inspections/Inspection.ts | 1 + server/src/languages/func/inspections/index.ts | 17 ++++++++++------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 07a42080..ac863ed9 100644 --- a/package.json +++ b/package.json @@ -652,7 +652,8 @@ "unused-parameter", "unused-type-parameter", "unused-variable", - "unused-import" + "unused-import", + "unused-impure" ] }, "default": [], diff --git a/server/src/languages/func/inspections/Inspection.ts b/server/src/languages/func/inspections/Inspection.ts index 4df63b45..77baf4fd 100644 --- a/server/src/languages/func/inspections/Inspection.ts +++ b/server/src/languages/func/inspections/Inspection.ts @@ -9,6 +9,7 @@ export const InspectionIds = { UNUSED_TYPE_PARAMETER: "unused-type-parameter", UNUSED_VARIABLE: "unused-variable", UNUSED_IMPORT: "unused-import", + UNUSED_IMPURE: "unused-impure", } as const export type InspectionId = (typeof InspectionIds)[keyof typeof InspectionIds] diff --git a/server/src/languages/func/inspections/index.ts b/server/src/languages/func/inspections/index.ts index 87ee79a2..4412ab67 100644 --- a/server/src/languages/func/inspections/index.ts +++ b/server/src/languages/func/inspections/index.ts @@ -1,12 +1,13 @@ import * as lsp from "vscode-languageserver" -import {connection} from "@server/connection" -import {getDocumentSettings} from "@server/settings/settings" -import {FuncFile} from "@server/languages/func/psi/FuncFile" -import {UnusedParameterInspection} from "@server/languages/func/inspections/UnusedParameterInspection" -import {UnusedVariableInspection} from "@server/languages/func/inspections/UnusedVariableInspection" -import {UnusedImportInspection} from "@server/languages/func/inspections/UnusedImportInspection" -import {UnusedTypeParameterInspection} from "@server/languages/func/inspections/UnusedTypeParameterInspection" +import { connection } from "@server/connection" +import { getDocumentSettings } from "@server/settings/settings" +import { FuncFile } from "@server/languages/func/psi/FuncFile" +import { UnusedParameterInspection } from "@server/languages/func/inspections/UnusedParameterInspection" +import { UnusedVariableInspection } from "@server/languages/func/inspections/UnusedVariableInspection" +import { UnusedImportInspection } from "@server/languages/func/inspections/UnusedImportInspection" +import { UnusedTypeParameterInspection } from "@server/languages/func/inspections/UnusedTypeParameterInspection" +import { UnusedImpureInspection } from "./UnusedImpure" export async function runFuncInspections( uri: string, @@ -18,11 +19,13 @@ export async function runFuncInspections( new UnusedTypeParameterInspection(), new UnusedVariableInspection(), new UnusedImportInspection(), + new UnusedImpureInspection(), ] const settings = await getDocumentSettings(uri) const diagnostics: lsp.Diagnostic[] = [] + for (const inspection of inspections) { if (settings.func.inspections.disabled.includes(inspection.id)) { continue From e9ff132ad7e7704ba11fc6f46b3156c527e12c88 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 17:36:55 +0300 Subject: [PATCH 14/32] Import BindResolver via @server --- server/src/languages/func/inspections/UnusedImpure.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index 03e750e3..af9396cf 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -12,7 +12,7 @@ import { Func } from "@server/languages/func/psi/Decls"; import { asLspRange } from "@server/utils/position" import { closestNamedSibling, parentOfType, parentOfTypeWithCb } from "@server/psi/utils" import { Referent } from "@server/languages/func/psi/Referent" -import { FunCBindingResolver } from "../psi/BindingResolver" +import { FunCBindingResolver } from "@server/languages/func/psi/BindingResolver"; import { FUNC_PARSED_FILES_CACHE } from "@server/files" From a642a97dce741d3954f9c3f5be2d89cfe2571909 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 19:09:26 +0300 Subject: [PATCH 15/32] Lint --- .../func/inspections/UnusedImpure.ts | 231 +++++++------ .../src/languages/func/inspections/index.ts | 18 +- .../src/languages/func/psi/BindingResolver.ts | 322 ++++++++++-------- server/src/languages/func/psi/Decls.ts | 4 +- server/src/languages/func/psi/Reference.ts | 12 +- server/src/psi/utils.ts | 29 +- 6 files changed, 348 insertions(+), 268 deletions(-) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index af9396cf..bda53825 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -3,32 +3,34 @@ import * as lsp from "vscode-languageserver" -import type { FuncFile } from "@server/languages/func/psi/FuncFile" -import { Node } from 'web-tree-sitter' -import { UnusedInspection } from "./UnusedInspection" -import { Inspection, InspectionIds } from "./Inspection" -import { RecursiveVisitor } from "@server/visitor/visitor"; -import { Func } from "@server/languages/func/psi/Decls"; -import { asLspRange } from "@server/utils/position" -import { closestNamedSibling, parentOfType, parentOfTypeWithCb } from "@server/psi/utils" -import { Referent } from "@server/languages/func/psi/Referent" -import { FunCBindingResolver } from "@server/languages/func/psi/BindingResolver"; -import { FUNC_PARSED_FILES_CACHE } from "@server/files" +import {Node} from "web-tree-sitter" +import type {FuncFile} from "@server/languages/func/psi/FuncFile" + +import {RecursiveVisitor} from "@server/visitor/visitor" +import {Func} from "@server/languages/func/psi/Decls" +import {asLspRange} from "@server/utils/position" +import {closestNamedSibling, parentOfType, parentOfTypeWithCb} from "@server/psi/utils" +import {Referent} from "@server/languages/func/psi/Referent" +import {FunCBindingResolver} from "@server/languages/func/psi/BindingResolver" +import {FUNC_PARSED_FILES_CACHE} from "@server/files" + +import {UnusedInspection} from "./UnusedInspection" +import {Inspection, InspectionIds} from "./Inspection" export class UnusedImpureInspection extends UnusedInspection implements Inspection { - public readonly id: "unused-impure" = InspectionIds.UNUSED_IMPURE; - - private impureMap: Map; - private dropableMap: Map; - private resultsCache: Map; - private impureBuiltins: Set; - - constructor() { - super(); - this.resultsCache = new Map(); - this.impureMap = new Map(); - this.dropableMap = new Map(); + public readonly id: "unused-impure" = InspectionIds.UNUSED_IMPURE + + private readonly impureMap: Map + private readonly dropableMap: Map + private readonly resultsCache: Map + private readonly impureBuiltins: Set + + public constructor() { + super() + this.resultsCache = new Map() + this.impureMap = new Map() + this.dropableMap = new Map() this.impureBuiltins = new Set([ "throw", "throw_if", @@ -37,55 +39,73 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "throw_arg_op", "throw_arg_unless", "~dump", - "~strdump" - ]); + "~strdump", + ]) } - private getCallDef(call: Node, mode: 'dropable' | 'impure' = 'dropable') { - let callDef: Func | undefined; - const lookupMap = mode == 'dropable' ? this.dropableMap : this.impureMap; - const callType = call.type; + private getCallDef(call: Node, mode: "dropable" | "impure" = "dropable"): Func | undefined { + let callDef: Func | undefined + const lookupMap = mode == "dropable" ? this.dropableMap : this.impureMap + const callType = call.type if (callType == "function_application") { - const funcIdentifier = call.childForFieldName("callee"); + const funcIdentifier = call.childForFieldName("callee") if (funcIdentifier) { - callDef = lookupMap.get(funcIdentifier.text); + callDef = lookupMap.get(funcIdentifier.text) } } else if (callType == "method_call") { - const funcIdentifier = call.childForFieldName("method_name"); + const funcIdentifier = call.childForFieldName("method_name") if (funcIdentifier) { - const methodName = funcIdentifier.text; - callDef = lookupMap.get(methodName); - if (!callDef) { - callDef = lookupMap.get("~" + methodName); - } + const methodName = funcIdentifier.text + callDef = lookupMap.get(methodName) + callDef ??= lookupMap.get("~" + methodName) } } else { - throw new Error(`Unsupported call type ${call}`) + throw new Error(`Unsupported call type ${call.toString()}`) } - return callDef; + return callDef } - private isImpureBuiltIn(call: Node) { + private isImpureBuiltIn(call: Node): boolean { + let calleeName: Node | null switch (call.type) { - case "function_application": - return this.impureBuiltins.has(call.childForFieldName("callee")!.text); - case "method_call": - return this.impureBuiltins.has(call.childForFieldName("method_name")!.text); + case "function_application": { + calleeName = call.childForFieldName("callee") + if (calleeName) { + return this.impureBuiltins.has(calleeName.text) + } + break + } + case "method_call": { + calleeName = call.childForFieldName("method_name") + if (calleeName) { + return this.impureBuiltins.has(calleeName.text) + } + } } - return false; + return false } - private isCall(call: Node) { - return call.type == "function_application" || call.type == "method_call"; + private isCall(call: Node): boolean { + return call.type == "function_application" || call.type == "method_call" } - private setCache(node: Node, result: boolean) { - const cacheKey = [node.startPosition.row, node.startPosition.column, node.endPosition.row, node.endPosition.column].join(':'); - this.resultsCache.set(cacheKey, result); + private setCache(node: Node, result: boolean): void { + const cacheKey = [ + node.startPosition.row, + node.startPosition.column, + node.endPosition.row, + node.endPosition.column, + ].join(":") + this.resultsCache.set(cacheKey, result) } - private getCache(node: Node) { - const cacheKey = [node.startPosition.row, node.startPosition.column, node.endPosition.row, node.endPosition.column].join(':'); - return this.resultsCache.get(cacheKey); + private getCache(node: Node): boolean | undefined { + const cacheKey = [ + node.startPosition.row, + node.startPosition.column, + node.endPosition.row, + node.endPosition.column, + ].join(":") + return this.resultsCache.get(cacheKey) } protected checkFile(file: FuncFile, diagnostics: lsp.Diagnostic[]): void { @@ -93,64 +113,69 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti FUNC_PARSED_FILES_CACHE.forEach(parsedFile => { parsedFile.getFunctions().forEach(f => { if (f.isImpure) { - this.impureMap.set(f.name(true), f); + this.impureMap.set(f.name(true), f) } else { - this.dropableMap.set(f.name(true), f); + this.dropableMap.set(f.name(true), f) } - }); + }) }) - const bindResolver = new FunCBindingResolver(file); + const bindResolver = new FunCBindingResolver(file) RecursiveVisitor.visit(file.rootNode, (node): boolean => { if (!this.isCall(node)) { - return true; + return true } - let willDrop = false; + let willDrop = false // Skip impure builtins calls if (this.isImpureBuiltIn(node)) { - return true; + return true } // const droppableDef = this.getCallDef(node) if (this.checkCallWillDrop(node, file, bindResolver)) { - willDrop = true; - const range = asLspRange(node); + willDrop = true + const range = asLspRange(node) diagnostics.push({ severity: lsp.DiagnosticSeverity.Error, - code: 'unused-impure', + code: "unused-impure", range, message: "This call will be dropped due to lack of impure specifier!", - source: "func" + source: "func", }) } - this.setCache(node, willDrop); - return true; + this.setCache(node, willDrop) + return true }) } - private checkCallWillDrop(node: Node, file: FuncFile, bindResolver: FunCBindingResolver) { - const cachedRes = this.getCache(node); + private checkCallWillDrop( + node: Node, + file: FuncFile, + bindResolver: FunCBindingResolver, + ): boolean { + const cachedRes = this.getCache(node) if (cachedRes !== undefined) { - return cachedRes; + return cachedRes } - const definition = this.getCallDef(node, 'dropable') + const definition = this.getCallDef(node, "dropable") if (!definition) { // If no dropable def found, check that impure is implicit just in case - const willDrop = !(this.getCallDef(node, 'impure') || this.isImpureBuiltIn(node)) - this.setCache(node, willDrop); - return willDrop; + const willDrop = !(this.getCallDef(node, "impure") ?? this.isImpureBuiltIn(node)) + this.setCache(node, willDrop) + return willDrop } - const returnExp = definition.returnType(); + const returnExp = definition.returnType() if (returnExp !== null) { // If return type of a function is empty tensor - check no more. - if (returnExp.node.text == '()') { - return true; + if (returnExp.node.text == "()") { + return true } } - const expressionParent = parentOfTypeWithCb<{ parent: Node, origin: Node }>(node, + const expressionParent = parentOfTypeWithCb<{parent: Node; origin: Node}>( + node, (parent, origin) => { - return { parent, origin } + return {parent, origin} }, "expression_statement", "return_statement", @@ -160,13 +185,13 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "while_statement", "do_while_statement", "repeat_statement", - "return_statement" - ); + "return_statement", + ) if (!expressionParent) { // Could happen in incomplete code - return false; + return false } - const parentType = expressionParent.parent.type; + const parentType = expressionParent.parent.type // If call is in the block_statement of any kind, it will be a child of expression_statement // Otherwise it is in condition block of if/while/do while // Or in arguments clause of other function_application/method_call @@ -175,27 +200,28 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti return this.checkCallWillDrop(expressionParent.parent, file, bindResolver) } // If expression is in condition or return statement it will not be dropped - return false; + return false } // We are in the expression expression_statement // Bind the values from the expression - const resolvedBinding = bindResolver.resolve(expressionParent.parent); + const resolvedBinding = bindResolver.resolve(expressionParent.parent) // If no lvalue, non-impure call will drop - if (resolvedBinding.bindings.size == 0) { - return true; + if (resolvedBinding.bindings.size === 0) { + return true } // If no identifiers referenced in lvalue, means those are whole type and will be dropped // const affectedIdentifiers = resolvedBinding.bindings.values() - for (let boundValue of resolvedBinding.bindings.values()) { + for (const boundValue of resolvedBinding.bindings.values()) { // Find references to the bound variables from below the current expression. - const references = new Referent(boundValue.identifier, file).findReferences({ limit: Infinity }).filter( - ref => ref.node.startIndex >= expressionParent.parent.endIndex - ); + const references = new Referent(boundValue.identifier, file) + .findReferences({limit: Infinity}) + .filter(ref => ref.node.startIndex >= expressionParent.parent.endIndex) // Has to be referenced in non impure call, conditional or return statement to not drop - for (let ref of references) { - const parent = parentOfType(ref.node, + for (const ref of references) { + const parent = parentOfType( + ref.node, "expression_statement", // But don't go above expression_statement "function_application", "method_call", @@ -203,30 +229,33 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti "while_statement", "do_while_statement", "repeat_statement", - "return_statement" + "return_statement", ) if (!parent) { - continue; + continue } if (parent.type !== "expression_statement") { - let willDrop = false; + let willDrop = false if (this.isCall(parent)) { willDrop = this.checkCallWillDrop(parent, file, bindResolver) - this.setCache(parent, willDrop); + this.setCache(parent, willDrop) } - return willDrop; + return willDrop } // Check reference in method call - const refSibling = closestNamedSibling(ref.node, 'next', (sibl => sibl.type == "method_call")) + const refSibling = closestNamedSibling( + ref.node, + "next", + sibl => sibl.type == "method_call", + ) if (refSibling) { // If this is a droppable call, go to next ref, else expression is not droppable if (!this.checkCallWillDrop(refSibling, file, bindResolver)) { - return false; + return false } } } } - return true; + return true } } - diff --git a/server/src/languages/func/inspections/index.ts b/server/src/languages/func/inspections/index.ts index 4412ab67..de5cb676 100644 --- a/server/src/languages/func/inspections/index.ts +++ b/server/src/languages/func/inspections/index.ts @@ -1,13 +1,14 @@ import * as lsp from "vscode-languageserver" -import { connection } from "@server/connection" -import { getDocumentSettings } from "@server/settings/settings" -import { FuncFile } from "@server/languages/func/psi/FuncFile" -import { UnusedParameterInspection } from "@server/languages/func/inspections/UnusedParameterInspection" -import { UnusedVariableInspection } from "@server/languages/func/inspections/UnusedVariableInspection" -import { UnusedImportInspection } from "@server/languages/func/inspections/UnusedImportInspection" -import { UnusedTypeParameterInspection } from "@server/languages/func/inspections/UnusedTypeParameterInspection" -import { UnusedImpureInspection } from "./UnusedImpure" +import {connection} from "@server/connection" +import {getDocumentSettings} from "@server/settings/settings" +import {FuncFile} from "@server/languages/func/psi/FuncFile" +import {UnusedParameterInspection} from "@server/languages/func/inspections/UnusedParameterInspection" +import {UnusedVariableInspection} from "@server/languages/func/inspections/UnusedVariableInspection" +import {UnusedImportInspection} from "@server/languages/func/inspections/UnusedImportInspection" +import {UnusedTypeParameterInspection} from "@server/languages/func/inspections/UnusedTypeParameterInspection" + +import {UnusedImpureInspection} from "./UnusedImpure" export async function runFuncInspections( uri: string, @@ -25,7 +26,6 @@ export async function runFuncInspections( const settings = await getDocumentSettings(uri) const diagnostics: lsp.Diagnostic[] = [] - for (const inspection of inspections) { if (settings.func.inspections.disabled.includes(inspection.id)) { continue diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index 2fab8d39..01e4a892 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -1,32 +1,33 @@ -import type { Node as SyntaxNode } from "web-tree-sitter"; -import { FuncFile } from "./FuncFile"; -import { Func } from "@server/languages/func/psi/Decls"; -import { Expression } from "./FuncNode"; -import { closestNamedSibling } from "@server/psi/utils"; -import { FUNC_PARSED_FILES_CACHE } from "@server/files"; +import type {Node as SyntaxNode} from "web-tree-sitter" -type Binding = { - identifier: SyntaxNode, +import {Func} from "@server/languages/func/psi/Decls" + +import {closestNamedSibling} from "@server/psi/utils" +import {FUNC_PARSED_FILES_CACHE} from "@server/files" + +import {Expression} from "./FuncNode" +import {FuncFile} from "./FuncFile" + +interface Binding { + identifier: SyntaxNode producer_exp: SyntaxNode[] } -type BindingResult = { +interface BindingResult { expression: Expression - lhs: SyntaxNode[], - rhs: SyntaxNode[], + lhs: SyntaxNode[] + rhs: SyntaxNode[] bindings: Map } export class FunCBindingResolver { + protected funcMap: Map + protected bindings: Map + protected assignmentOps: Set - - protected funcMap: Map; - protected bindings: Map; - protected assignmentOps: Set; - - constructor(readonly file: FuncFile) { - this.bindings = new Map(); - this.funcMap = new Map(); + public constructor(protected readonly file: FuncFile) { + this.bindings = new Map() + this.funcMap = new Map() this.assignmentOps = new Set([ "=", "+=", @@ -45,308 +46,343 @@ export class FunCBindingResolver { "&=", "|=", "^=", - ]); - + ]) FUNC_PARSED_FILES_CACHE.forEach(parsedFile => { parsedFile.getFunctions().forEach(f => { - this.funcMap.set(f.name(), f); + this.funcMap.set(f.name(), f) }) - }); + }) } - resolve(expression: SyntaxNode): BindingResult { + public resolve(expression: SyntaxNode): BindingResult { + const lhs: SyntaxNode[] = [] + const rhs: SyntaxNode[] = [] + let equalsFound = false - let lhs: SyntaxNode[] = []; - let rhs: SyntaxNode[] = []; - let equalsFound = false; - - for (let curChild of expression.children) { + for (const curChild of expression.children) { if (!curChild) { - continue; + continue } if (this.assignmentOps.has(curChild.text)) { - equalsFound = true; - if (lhs.length == 0) { - throw RangeError("Equals encountered before first lhs identifier"); + equalsFound = true + if (lhs.length === 0) { + throw new RangeError("Equals encountered before first lhs identifier") } } if (curChild.isNamed) { if (equalsFound) { - rhs.push(curChild); + rhs.push(curChild) } else { - lhs.push(curChild); + lhs.push(curChild) } } } - let bindRes: BindingResult = { + const bindRes: BindingResult = { expression: new Expression(expression, this.file), lhs, rhs, - bindings: new Map() + bindings: new Map(), } if (lhs[0].type == "underscore") { - return bindRes; + return bindRes } if (lhs.length > 1 && rhs.length > 0) { // Do we even need dat? - throw new RangeError("TODO multi lhs bindings"); + throw new RangeError("TODO multi lhs bindings") } const pattern = lhs[0] if (rhs.length > 0) { - this.walkPattern(pattern, rhs); + this.walkPattern(pattern, rhs) } else { // Without rhs there still may be method calls on left. // ds~skip_bits(32); ;; Stuff like that - this.bindModifyingCalls(lhs); + this.bindModifyingCalls(lhs) } // Copy the map for the output - for (let [k, v] of this.bindings.entries()) { - bindRes.bindings.set(k, v); + for (const [k, v] of this.bindings.entries()) { + bindRes.bindings.set(k, v) } // Free up the map - this.bindings.clear(); - return bindRes; + this.bindings.clear() + return bindRes } - protected walkPattern(pattern: SyntaxNode, value: SyntaxNode[]) { - if (!pattern || pattern.type == "underscore") { + protected walkPattern(pattern: SyntaxNode, value: SyntaxNode[]): void { + if (pattern.type == "underscore") { return } try { switch (pattern.type) { - case "identifier": - this.bindIdentifier(pattern, value); - break; - case "local_vars_declaration": - const curLhs = pattern.childForFieldName("lhs"); + case "identifier": { + this.bindIdentifier(pattern, value) + break + } + case "local_vars_declaration": { + const curLhs = pattern.childForFieldName("lhs") if (!curLhs) { throw new Error("No lhs in var declaration") } - this.walkPattern(curLhs, value); - break; - case "var_declaration": - this.bindIdentifier(pattern.childForFieldName("name")!, value); - break; + this.walkPattern(curLhs, value) + break + } + case "var_declaration": { + const idName = pattern.childForFieldName("name") + if (idName) { + this.bindIdentifier(idName, value) + } + break + } case "tensor_vars_declaration": case "tensor_expression": case "tuple_expression": case "parenthesized_expression": case "nested_tensor_declaration": - case "tuple_vars_declaration": - this.bindCollection(pattern, value); - break; + case "tuple_vars_declaration": { + this.bindCollection(pattern, value) + break + } } - } catch (e) { - console.error(`Failed to waks pattern ${e} ${pattern}, ${value}`) + } catch (error) { + console.error( + `Failed to waks pattern ${error} ${pattern.toString()}, ${value.join("")}`, + ) } } - protected bindModifyingCalls(value: SyntaxNode[]) { + protected bindModifyingCalls(value: SyntaxNode[]): void { value.forEach(curNode => { if (curNode.type == "method_call") { // Only modifying calls if (curNode.children[0]?.text == "~") { - const identifier = curNode.previousNamedSibling; + const identifier = curNode.previousNamedSibling if (identifier && identifier.type == "identifier") { - this.bindToMethodCall(identifier, curNode); + this.bindToMethodCall(identifier, curNode) } } } else { // In case calls are in tensor expressions curNode.descendantsOfType("method_call").forEach(methodCall => { if (methodCall && methodCall.children[0]?.text == "~") { - const identifier = curNode.previousNamedSibling; + const identifier = curNode.previousNamedSibling if (identifier && identifier.type == "identifier") { - this.bindToMethodCall(identifier, curNode); + this.bindToMethodCall(identifier, curNode) } } }) } }) } - protected bindIdentifier(target: SyntaxNode, value: SyntaxNode[], checkMethodRhs: boolean = true) { + protected bindIdentifier( + target: SyntaxNode, + value: SyntaxNode[], + checkMethodRhs: boolean = true, + ): void { if (checkMethodRhs) { - this.bindModifyingCalls(value); + this.bindModifyingCalls(value) } this.bindings.set(target.text, { identifier: target, - producer_exp: value - }); + producer_exp: value, + }) } - private bindCollection(target: SyntaxNode, value: SyntaxNode[]) { + private bindCollection(target: SyntaxNode, value: SyntaxNode[]): void { if (value.length >= 2) { - value.forEach((curNode) => { + value.forEach(curNode => { if (curNode.type == "method_call") { - this.bindToMethodCall(target, curNode); + this.bindToMethodCall(target, curNode) } }) } else if (value.length == 1) { - const curValue = value[0]; - const curValueType = curValue.type; + const curValue = value[0] + const curValueType = curValue.type if (curValueType == "function_application") { - this.bindToFunctionCall(target, curValue); + this.bindToFunctionCall(target, curValue) } else if (curValueType == "tensor_expression" || curValueType == "tuple_expression") { - for (let i = 0; i < target.namedChildCount; i++) { - const nextTarget = target.namedChildren[i]; + const nextTarget = target.namedChildren[i] if (!nextTarget) { - continue; + continue } - const nextValue = curValue.namedChildren[i]; + const nextValue = curValue.namedChildren[i] if (!nextValue) { - throw new Error(`Undefined next value ${curValue}`); + throw new Error(`Undefined next value ${curValue.toString()}`) } - this.walkPattern(nextTarget, [nextValue]); + this.walkPattern(nextTarget, [nextValue]) } } else { - throw new TypeError(`Type ${curValueType} is not yet supported!`); + throw new TypeError(`Type ${curValueType} is not yet supported!`) } } } - private bindToMethodCall(target: SyntaxNode, value: SyntaxNode) { - const isModifying = value.children[0]?.text == "~"; - const methodName = value.childForFieldName("method_name")!.text; - let methodDecl = this.funcMap.get(methodName); + private bindToMethodCall(target: SyntaxNode, value: SyntaxNode): void { + const isModifying = value.children[0]?.text == "~" + const methodName = value.childForFieldName("method_name")?.text + if (!methodName) { + throw new Error(`Failed to find method name for ${value.toString()}`) + } + let methodDecl = this.funcMap.get(methodName) if (!methodDecl) { // Thre could be method with ~ prefix being part of the name - if (isModifying && methodName[0] !== "~") { - methodDecl = this.funcMap.get("~" + methodName); + if (isModifying && !methodName.startsWith("~")) { + methodDecl = this.funcMap.get("~" + methodName) } } if (!methodDecl) { throw new Error(`Failed to get method declaration ${methodName}`) } - const retType = methodDecl.returnType(); + const retType = methodDecl.returnType() if (!retType) { throw new Error(`Method ${methodName} has no return type`) } // For non-modofiying method bind as normal function call; - let bindScope = retType.node; + let bindScope = retType.node if (isModifying) { if (retType.node.type !== "tensor_type") { - throw new TypeError(`Expected tensor_type for modifying method return type got ${retType.node.type}`) + throw new TypeError( + `Expected tensor_type for modifying method return type got ${retType.node.type}`, + ) } - const firstArg = closestNamedSibling(value, 'prev', (sybl => sybl.type == "identifier")); + const firstArg = closestNamedSibling(value, "prev", sybl => sybl.type == "identifier") if (!firstArg) { - throw new Error(`First arg not found for modifying method call ${value}`) + throw new Error(`First arg not found for modifying method call ${value.toString()}`) } - this.bindIdentifier(firstArg, [value], false); + this.bindIdentifier(firstArg, [value], false) // If firstArg is same as target, we're done here. if (firstArg.id == target.id) { - return; + return } // Next tensor type - let retTensor: SyntaxNode | undefined; - const childrenCount = bindScope.namedChildCount; + let retTensor: SyntaxNode | undefined + const childrenCount = bindScope.namedChildCount // First is bound to the first method arg already for (let i = 1; i < childrenCount; i++) { - const curChild = bindScope.namedChild(i); + const curChild = bindScope.namedChild(i) if (curChild?.type == "tensor_type") { - retTensor = curChild; - break; + retTensor = curChild + break } } if (!retTensor) { - throw new Error(`Return tensor not defined for method ${methodDecl}`) + throw new Error( + `Return tensor not defined for method ${methodDecl.node.toString()}`, + ) } // If sub tensor is empty, we can return at this point if (retTensor.namedChildCount == 0) { - return; + return } // Otherwise bind to the sub-tensor - bindScope = retTensor; + bindScope = retTensor } this.bindToReturnType(target, value, bindScope, false) } - private bindToFunctionCall(target: SyntaxNode, value: SyntaxNode) { - const funcIdentifier = value.childForFieldName("callee"); + private bindToFunctionCall(target: SyntaxNode, value: SyntaxNode): void { + const funcIdentifier = value.childForFieldName("callee") if (!funcIdentifier) { - throw new Error(`Calle not found: ${value}`) + throw new Error(`Calle not found: ${value.toString()}`) } - const funcName = funcIdentifier.text; - const funcDecl = this.funcMap.get(funcName); + const funcName = funcIdentifier.text + const funcDecl = this.funcMap.get(funcName) if (!funcDecl) { throw new Error(`Failed to find function declaration ${funcName}`) } - const retType = funcDecl.returnType(); + const retType = funcDecl.returnType() if (!retType) { throw new Error(`Function ${funcName} without return type. Grammar failure?`) } - this.bindToReturnType(target, value, retType.node); - + this.bindToReturnType(target, value, retType.node) } - private bindToReturnType(target: SyntaxNode, callNode: SyntaxNode, retType: SyntaxNode, checkMethodRhs: boolean = true) { - const targetType = target.type; - let targetFiltered: (SyntaxNode | null)[]; + private bindToReturnType( + target: SyntaxNode, + callNode: SyntaxNode, + retType: SyntaxNode, + checkMethodRhs: boolean = true, + ): void { + const targetType = target.type + let targetFiltered: (SyntaxNode | null)[] // Hacky,but drop types if (targetType == "tensor_vars_declaration") { - targetFiltered = target.childrenForFieldName("vars").filter(v => v?.isNamed); + targetFiltered = target.childrenForFieldName("vars").filter(v => v?.isNamed) } else if (targetType == "var_declaration" || targetType == "identifier") { // Name is only part of var declaration - const identifierNode = target.childForFieldName("name") ?? target; - this.bindIdentifier(identifierNode, [callNode], checkMethodRhs); - return; + const identifierNode = target.childForFieldName("name") ?? target + this.bindIdentifier(identifierNode, [callNode], checkMethodRhs) + return } else { - targetFiltered = target.namedChildren; + targetFiltered = target.namedChildren } if (targetFiltered.length != retType.namedChildCount) { - throw new Error(`Return type arity error ${target} ${retType}`); + throw new Error(`Return type arity error ${target.toString()} ${retType.toString()}`) } - for (let i = 0; i < targetFiltered.length; i++) { - const pattern = targetFiltered[i]; - const bindRhs = retType.namedChildren[i]; + for (const [i, pattern] of targetFiltered.entries()) { + const bindRhs = retType.namedChildren[i] if (pattern == null || pattern.type == "underscore") { - continue; + continue } if (!bindRhs) { throw new Error(`Type node can't be null`) } - const bindType = bindRhs.type; - const patternType = pattern.type; + const bindType = bindRhs.type + const patternType = pattern.type switch (patternType) { case "tuple_vars_declaration": - case "tuple_expression": + case "tuple_expression": { if (bindType != "tuple_type") { throw new Error(`Can't map ${patternType} to ${bindType}`) } - this.bindToReturnType(pattern, callNode, bindRhs, checkMethodRhs); - break; - case "local_vars_declaration": - this.bindToReturnType(pattern.childForFieldName("lhs")!, callNode, bindRhs, checkMethodRhs); - break; + this.bindToReturnType(pattern, callNode, bindRhs, checkMethodRhs) + break + } + case "local_vars_declaration": { + const lhs = pattern.childForFieldName("lhs") + if (!lhs) { + throw new Error(`No lhs in local_vars_declaration. Broken grammar`) + } + this.bindToReturnType(lhs, callNode, bindRhs, checkMethodRhs) + break + } case "tensor_var_declaration": case "nested_tensor_declaration": - case "tensor_expression": + case "tensor_expression": { if (bindType !== "tensor_type") { throw new Error(`Cant map ${patternType} to ${bindType}`) } - this.bindToReturnType(pattern, callNode, bindRhs, checkMethodRhs); - break; - case "var_declaration": - this.bindIdentifier(pattern.childForFieldName("name")!, [callNode], checkMethodRhs); - break; - case "identifier": - this.bindIdentifier(pattern, [callNode], checkMethodRhs); - break; + this.bindToReturnType(pattern, callNode, bindRhs, checkMethodRhs) + break + } + case "var_declaration": { + const varName = pattern.childForFieldName("name") + if (!varName) { + throw new Error( + `No variable name in var_declaration. Broken grammar ${pattern.toString()}`, + ) + } + this.bindIdentifier(varName, [callNode], checkMethodRhs) + break + } + case "identifier": { + this.bindIdentifier(pattern, [callNode], checkMethodRhs) + break + } } } } diff --git a/server/src/languages/func/psi/Decls.ts b/server/src/languages/func/psi/Decls.ts index e0b058c0..8354827c 100644 --- a/server/src/languages/func/psi/Decls.ts +++ b/server/src/languages/func/psi/Decls.ts @@ -106,8 +106,8 @@ export class FunctionBase extends NamedNode { return methodId !== null } public get isImpure(): boolean { - const specifiers = this.node.childForFieldName("specifiers"); - return Boolean(specifiers?.children.find(it => it?.type === "impure")); + const specifiers = this.node.childForFieldName("specifiers") + return Boolean(specifiers?.children.find(it => it?.type === "impure")) } public get hasExplicitMethodId(): boolean { diff --git a/server/src/languages/func/psi/Reference.ts b/server/src/languages/func/psi/Reference.ts index 1ad036a3..0efcc4ff 100644 --- a/server/src/languages/func/psi/Reference.ts +++ b/server/src/languages/func/psi/Reference.ts @@ -331,9 +331,11 @@ export class Reference { } if (firstChild?.type === "tensor_expression") { // (int foo, cell bar) = (42, someCall()) - for (let childDeclaration of firstChild.descendantsOfType("local_vars_declaration")) { + for (const childDeclaration of firstChild.descendantsOfType( + "local_vars_declaration", + )) { if (!childDeclaration) { - continue; + continue } const lhs = childDeclaration.childForFieldName("lhs") if (lhs) { @@ -369,7 +371,11 @@ export class Reference { if (!proc.execute(new VarDeclaration(lhs, file), state)) return false } - if (lhs.type === "tuple_vars_declaration" || lhs.type === "tensor_vars_declaration" || lhs.type === "nested_tensor_declaration") { + if ( + lhs.type === "tuple_vars_declaration" || + lhs.type === "tensor_vars_declaration" || + lhs.type === "nested_tensor_declaration" + ) { const vars = lhs.childrenForFieldName("vars") for (const variable of vars) { if (!variable) continue diff --git a/server/src/psi/utils.ts b/server/src/psi/utils.ts index 0b878970..99f93724 100644 --- a/server/src/psi/utils.ts +++ b/server/src/psi/utils.ts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT // Copyright © 2025 TON Core -import type { Node as SyntaxNode } from "web-tree-sitter" +import type {Node as SyntaxNode} from "web-tree-sitter" export function parentOfType(node: SyntaxNode, ...types: readonly string[]): SyntaxNode | null { let parent = node.parent @@ -13,28 +13,37 @@ export function parentOfType(node: SyntaxNode, ...types: readonly string[]): Syn return null } -export function parentOfTypeWithCb(node: SyntaxNode, cb: (parent: SyntaxNode, branch: SyntaxNode) => T, ...types: readonly string[]): T | null { - let parent = node.parent; - let prevNode = node; +export function parentOfTypeWithCb( + node: SyntaxNode, + cb: (parent: SyntaxNode, branch: SyntaxNode) => T, + ...types: readonly string[] +): T | null { + let parent = node.parent + let prevNode = node for (let i = 0; i < 100; i++) { if (parent === null) return null if (types.includes(parent.type)) return cb(parent, prevNode) - prevNode = parent; + prevNode = parent parent = parent.parent } return null } -export function closestNamedSibling(node: SyntaxNode, direction: 'prev' | 'next', cb: (sibling: SyntaxNode) => boolean): SyntaxNode | null { - let curSibling = direction == 'prev' ? node.previousNamedSibling : node.nextNamedSibling; +export function closestNamedSibling( + node: SyntaxNode, + direction: "prev" | "next", + cb: (sibling: SyntaxNode) => boolean, +): SyntaxNode | null { + let curSibling = direction == "prev" ? node.previousNamedSibling : node.nextNamedSibling while (curSibling) { if (cb(curSibling)) { - return curSibling; + return curSibling } - curSibling = direction == 'prev' ? curSibling.previousNamedSibling : curSibling.nextNamedSibling; + curSibling = + direction == "prev" ? curSibling.previousNamedSibling : curSibling.nextNamedSibling } - return null; + return null } export function measureTime(label: string, fn: () => T): T { From c9bba4653c6393fc8ad6b7f416b64496a1d1ce53 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 3 Nov 2025 21:09:53 +0300 Subject: [PATCH 16/32] Lint readonly type fields --- server/src/languages/func/psi/BindingResolver.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index 01e4a892..ac71ca50 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -9,15 +9,15 @@ import {Expression} from "./FuncNode" import {FuncFile} from "./FuncFile" interface Binding { - identifier: SyntaxNode - producer_exp: SyntaxNode[] + readonly identifier: SyntaxNode + readonly producer_exp: SyntaxNode[] } interface BindingResult { - expression: Expression - lhs: SyntaxNode[] - rhs: SyntaxNode[] - bindings: Map + readonly expression: Expression + readonly lhs: SyntaxNode[] + readonly rhs: SyntaxNode[] + readonly bindings: Map } export class FunCBindingResolver { From f9faa3b789daebb2f3de86a83cbf8b2c736adc8c Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Thu, 6 Nov 2025 19:19:52 +0300 Subject: [PATCH 17/32] [Fix] bind tensor_vars_declaration node with var childnren only --- server/src/languages/func/psi/BindingResolver.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index ac71ca50..ee876970 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -205,8 +205,16 @@ export class FunCBindingResolver { if (curValueType == "function_application") { this.bindToFunctionCall(target, curValue) } else if (curValueType == "tensor_expression" || curValueType == "tuple_expression") { - for (let i = 0; i < target.namedChildCount; i++) { - const nextTarget = target.namedChildren[i] + const filteredTarget = + target.type == "tensor_vars_declaration" + ? target.childrenForFieldName("vars").filter(c => c?.isNamed) + : target.namedChildren + if (filteredTarget.length != curValue.namedChildCount) { + throw new Error( + `Arity error binding ${target.toString()} to ${curValue.toString()}`, + ) + } + for (const [i, nextTarget] of filteredTarget.entries()) { if (!nextTarget) { continue } From a89e19da55437b16278499d9321fed073413a66f Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Thu, 6 Nov 2025 19:20:21 +0300 Subject: [PATCH 18/32] [Fix] Check bound values in call-specific manner --- server/src/languages/func/inspections/UnusedImpure.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index bda53825..f862182b 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -214,6 +214,10 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti // const affectedIdentifiers = resolvedBinding.bindings.values() for (const boundValue of resolvedBinding.bindings.values()) { + // Bound is expression wide. Process only call specific parts of bind. + if (!boundValue.producer_exp.some(n => n.id == node.id)) { + continue + } // Find references to the bound variables from below the current expression. const references = new Referent(boundValue.identifier, file) .findReferences({limit: Infinity}) From 14b23329e862d6f5fe05bd74b7242a246333acb5 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Fri, 7 Nov 2025 12:29:18 +0300 Subject: [PATCH 19/32] tuple_expression->typed_tuple --- server/src/languages/func/psi/BindingResolver.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index ee876970..0b2c08d8 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -140,7 +140,7 @@ export class FunCBindingResolver { } case "tensor_vars_declaration": case "tensor_expression": - case "tuple_expression": + case "typed_tuple": case "parenthesized_expression": case "nested_tensor_declaration": case "tuple_vars_declaration": { @@ -204,9 +204,10 @@ export class FunCBindingResolver { const curValueType = curValue.type if (curValueType == "function_application") { this.bindToFunctionCall(target, curValue) - } else if (curValueType == "tensor_expression" || curValueType == "tuple_expression") { + } else if (curValueType == "tensor_expression" || curValueType == "typed_tuple") { const filteredTarget = - target.type == "tensor_vars_declaration" + target.type == "tensor_vars_declaration" || + target.type === "tuple_vars_declaration" ? target.childrenForFieldName("vars").filter(c => c?.isNamed) : target.namedChildren if (filteredTarget.length != curValue.namedChildCount) { From e26b04fa99818061d69fb21c69639b4978ad3cb7 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Fri, 7 Nov 2025 15:27:58 +0300 Subject: [PATCH 20/32] Nested tuple declarations --- .../func/tree-sitter-func/grammar.js | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/server/src/languages/func/tree-sitter-func/grammar.js b/server/src/languages/func/tree-sitter-func/grammar.js index f331c305..ea056e3e 100644 --- a/server/src/languages/func/tree-sitter-func/grammar.js +++ b/server/src/languages/func/tree-sitter-func/grammar.js @@ -333,7 +333,7 @@ const FUNC_GRAMMAR = { prec( 101, seq( - field("type", $._type_hint), // e.g. `var` + field("type", $.var_type), // e.g. `var` "(", field( "vars", @@ -357,7 +357,24 @@ const FUNC_GRAMMAR = { //local_vars_declaration: $ => prec.dynamic(90, field("lhs", $._var_declaration_lhs)), tuple_vars_declaration: $ => - prec(101, seq("[", field("vars", commaSep1Trailing($.var_declaration)), "]")), + prec( + 101, + seq( + field("type", optional($.var_type)), + "[", + field( + "vars", + commaSep1Trailing( + choice( + $.var_declaration, + $.nested_tensor_declaration, + $.tuple_vars_declaration, + ), + ), + ), + "]", + ), + ), // tensor_vars_declaration: $ => // prec(100, seq("(", field("vars", commaSep1Trailing($._var_declaration_lhs)), optional(","), ")")), // var_declaration: $ => seq(field("type", $._type_hint), field("name", $.identifier)), From c34f2f011861a237831de68c16bea01b6e2eb050 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Fri, 7 Nov 2025 20:53:40 +0300 Subject: [PATCH 21/32] Put expressions in tuple and tensor in named node --- server/src/languages/func/tree-sitter-func/grammar.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/languages/func/tree-sitter-func/grammar.js b/server/src/languages/func/tree-sitter-func/grammar.js index ea056e3e..84d0f394 100644 --- a/server/src/languages/func/tree-sitter-func/grammar.js +++ b/server/src/languages/func/tree-sitter-func/grammar.js @@ -416,10 +416,12 @@ const FUNC_GRAMMAR = { _expr100: $ => prec(100, choice($._nontype_expr100)), + // We need named not here, otherwise all children will be glued into expressions fileds individually + grouped_expression: $ => $._expression, parenthesized_expression: $ => seq("(", $._expression, ")"), tensor_expression: $ => - choice(seq("(", ")"), seq("(", field("expressions", commaSep2($._expression)), ")")), - typed_tuple: $ => seq("[", field("expressions", commaSep($._expression)), "]"), + choice(seq("(", ")"), seq("(", field("expressions", commaSep2($.grouped_expression)), ")")), + typed_tuple: $ => seq("[", field("expressions", commaSep($.grouped_expression)), "]"), // ---------------------------------------------------------- // type system From 356a222cb3a1522cc7ce7923747b264654ab636f Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Fri, 7 Nov 2025 20:56:42 +0300 Subject: [PATCH 22/32] Recursive reference check Now deep value reference is supported. ``` var a = bar(); int b = 100; int c = foo(a); return c; ``` bar will not be considered dropped call --- .../func/inspections/UnusedImpure.ts | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index f862182b..f8a509e1 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -146,32 +146,11 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti }) } - private checkCallWillDrop( + private checkRecursiveReference( node: Node, file: FuncFile, bindResolver: FunCBindingResolver, ): boolean { - const cachedRes = this.getCache(node) - if (cachedRes !== undefined) { - return cachedRes - } - - const definition = this.getCallDef(node, "dropable") - - if (!definition) { - // If no dropable def found, check that impure is implicit just in case - const willDrop = !(this.getCallDef(node, "impure") ?? this.isImpureBuiltIn(node)) - this.setCache(node, willDrop) - return willDrop - } - - const returnExp = definition.returnType() - if (returnExp !== null) { - // If return type of a function is empty tensor - check no more. - if (returnExp.node.text == "()") { - return true - } - } const expressionParent = parentOfTypeWithCb<{parent: Node; origin: Node}>( node, (parent, origin) => { @@ -221,7 +200,7 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti // Find references to the bound variables from below the current expression. const references = new Referent(boundValue.identifier, file) .findReferences({limit: Infinity}) - .filter(ref => ref.node.startIndex >= expressionParent.parent.endIndex) + .filter(ref => ref.node.startIndex >= node.endIndex) // Has to be referenced in non impure call, conditional or return statement to not drop for (const ref of references) { const parent = parentOfType( @@ -257,9 +236,44 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti if (!this.checkCallWillDrop(refSibling, file, bindResolver)) { return false } + } else { + if (!this.checkRecursiveReference(ref.node, ref.file, bindResolver)) { + return false + } } } } return true } + + private checkCallWillDrop( + node: Node, + file: FuncFile, + bindResolver: FunCBindingResolver, + ): boolean { + const cachedRes = this.getCache(node) + if (cachedRes !== undefined) { + return cachedRes + } + + const definition = this.getCallDef(node, "dropable") + + if (!definition) { + // If no dropable def found, check that impure is implicit just in case + const willDrop = !(this.getCallDef(node, "impure") ?? this.isImpureBuiltIn(node)) + this.setCache(node, willDrop) + return willDrop + } + + const returnExp = definition.returnType() + if (returnExp !== null) { + // If return type of a function is empty tensor - check no more. + if (returnExp.node.text == "()") { + return true + } + } + const dropRes = this.checkRecursiveReference(node, file, bindResolver) + this.setCache(node, dropRes) + return dropRes + } } From ad9b3ed46de8091e69d96daaa503868ce761fbbe Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Fri, 7 Nov 2025 20:59:25 +0300 Subject: [PATCH 23/32] Grouped expression in assingment destructor --- .../src/languages/func/psi/BindingResolver.ts | 78 ++++++++++++++----- 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index 0b2c08d8..9032bf38 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -143,6 +143,7 @@ export class FunCBindingResolver { case "typed_tuple": case "parenthesized_expression": case "nested_tensor_declaration": + case "grouped_expression": case "tuple_vars_declaration": { this.bindCollection(pattern, value) break @@ -204,30 +205,40 @@ export class FunCBindingResolver { const curValueType = curValue.type if (curValueType == "function_application") { this.bindToFunctionCall(target, curValue) - } else if (curValueType == "tensor_expression" || curValueType == "typed_tuple") { - const filteredTarget = - target.type == "tensor_vars_declaration" || - target.type === "tuple_vars_declaration" - ? target.childrenForFieldName("vars").filter(c => c?.isNamed) - : target.namedChildren - if (filteredTarget.length != curValue.namedChildCount) { - throw new Error( - `Arity error binding ${target.toString()} to ${curValue.toString()}`, - ) + return + } + const filteredTarget = + target.type == "tensor_vars_declaration" || target.type == "tuple_vars_declaration" + ? target.childrenForFieldName("vars").filter(c => c?.isNamed) + : target.namedChildren + if (filteredTarget.length != curValue.namedChildCount) { + throw new Error( + `Arity error binding ${target.toString()} to ${curValue.toString()}`, + ) + } + for (const [i, nextTarget] of filteredTarget.entries()) { + const actualTarget = + nextTarget?.type == "grouped_expression" + ? nextTarget.firstNamedChild + : nextTarget + if (!actualTarget) { + continue } - for (const [i, nextTarget] of filteredTarget.entries()) { - if (!nextTarget) { - continue - } - const nextValue = curValue.namedChildren[i] - if (!nextValue) { - throw new Error(`Undefined next value ${curValue.toString()}`) - } - this.walkPattern(nextTarget, [nextValue]) + + const nextValue = curValue.namedChildren[i] + const actualValue = + nextValue?.type == "grouped_expression" ? nextValue.firstNamedChild : nextValue + if (!actualValue) { + throw new Error(`Undefined next value ${curValue.toString()}`) } + + this.walkPattern(actualTarget, [actualValue]) + } + /* } else { throw new TypeError(`Type ${curValueType} is not yet supported!`) } + */ } } @@ -279,7 +290,15 @@ export class FunCBindingResolver { // First is bound to the first method arg already for (let i = 1; i < childrenCount; i++) { const curChild = bindScope.namedChild(i) - if (curChild?.type == "tensor_type") { + if (!curChild) { + continue + } + const childType = curChild.type + if (childType == "primitive_type") { + this.bindIdentifier(curChild, [value], false) + return + } + if (childType == "tensor_type" || childType == "tuple_type") { retTensor = curChild break } @@ -324,18 +343,27 @@ export class FunCBindingResolver { const targetType = target.type let targetFiltered: (SyntaxNode | null)[] // Hacky,but drop types - if (targetType == "tensor_vars_declaration") { + if (targetType == "tensor_vars_declaration" || targetType == "tuple_vars_declaration") { targetFiltered = target.childrenForFieldName("vars").filter(v => v?.isNamed) } else if (targetType == "var_declaration" || targetType == "identifier") { // Name is only part of var declaration const identifierNode = target.childForFieldName("name") ?? target this.bindIdentifier(identifierNode, [callNode], checkMethodRhs) return + } else if (targetType == "grouped_expression") { + targetFiltered = target.firstNamedChild?.namedChildren ?? [] } else { targetFiltered = target.namedChildren } if (targetFiltered.length != retType.namedChildCount) { + if (targetFiltered.length == 1 && retType.type == "primitive_type") { + const targetNode = targetFiltered[0] + if (targetNode) { + this.bindIdentifier(targetNode, [callNode], checkMethodRhs) + return + } + } throw new Error(`Return type arity error ${target.toString()} ${retType.toString()}`) } @@ -369,6 +397,14 @@ export class FunCBindingResolver { this.bindToReturnType(lhs, callNode, bindRhs, checkMethodRhs) break } + case "grouped_expression": { + const nextChild = pattern.firstNamedChild + if (!nextChild) { + throw new Error("No child for grouped_expression. Borken grammar") + } + this.bindToReturnType(nextChild, callNode, bindRhs) + break + } case "tensor_var_declaration": case "nested_tensor_declaration": case "tensor_expression": { From b30ac5ca8eedcdee94a30e255fd32c42881c39ec Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Mon, 10 Nov 2025 20:39:21 +0300 Subject: [PATCH 24/32] Simplify nested expressions prior to binding --- .../src/languages/func/psi/BindingResolver.ts | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index 9032bf38..bd59766e 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -94,8 +94,11 @@ export class FunCBindingResolver { throw new RangeError("TODO multi lhs bindings") } - const pattern = lhs[0] + const pattern = this.simplifyNested(lhs[0]) if (rhs.length > 0) { + if (rhs.length == 1) { + rhs[0] = this.simplifyNested(rhs[0]) + } this.walkPattern(pattern, rhs) } else { // Without rhs there still may be method calls on left. @@ -112,6 +115,56 @@ export class FunCBindingResolver { return bindRes } + protected simplifyNested(node: SyntaxNode): SyntaxNode { + /* + * Dirty code for dirty issues. + * Heplfull in cases like + * (int a, int b) foo() { + * return (42, 43); + * } + * This shit, unfortunately is perfectly legal expression. + * + * var (((((a, b))))) = foo(); + * One could even write + * int ((((a)))) = b; ;; Why are u doing dat to me? + * Or + * b = (((((a))))); ;; Why, dawg!! + * + * And we need to get to the bottom of this without processing + * it all over honest binding mechanism. + * Besides, this simplification singificantly speeds binding up. + */ + try { + const childNode = node.firstNamedChild + // If there is no named children, we're already at the bottom of this. + if (childNode) { + const nodeType = node.type + // Theese types have two named children, one of which is type, + // so binding part is usually a level lower + const specialType = + nodeType == "tensor_vars_declaration" || nodeType == "tuple_vars_declaration" + // If there is more named children, that is where actual binding begins + if (node.namedChildCount == 1 || specialType) { + let nextNode = childNode + if (specialType) { + const specialChildren = node + .childrenForFieldName("vars") + .filter(c => c !== null) + if (specialChildren.length == 1) { + nextNode = specialChildren[0] + } else { + return node + } + } + return this.simplifyNested(nextNode) + } + } + } catch (error) { + console.log(error) + } + return node + } + protected walkPattern(pattern: SyntaxNode, value: SyntaxNode[]): void { if (pattern.type == "underscore") { return From 522bde3fe32feca8765af3ff2ff14e18a1f7fe34 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Tue, 11 Nov 2025 13:44:10 +0300 Subject: [PATCH 25/32] Remove TODO unhandled assertion --- server/src/languages/func/psi/BindingResolver.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index bd59766e..606e4c1b 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -91,7 +91,8 @@ export class FunCBindingResolver { } if (lhs.length > 1 && rhs.length > 0) { // Do we even need dat? - throw new RangeError("TODO multi lhs bindings") + console.log("TOTO multi lhs bindings") + return bindRes } const pattern = this.simplifyNested(lhs[0]) From c13a1256452e1763bbf58fd6f7a097a5e4bc3233 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Tue, 11 Nov 2025 22:24:38 +0300 Subject: [PATCH 26/32] Recursively simplify vars lhs and grouped_expression --- .../src/languages/func/psi/BindingResolver.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index 606e4c1b..7b4c5e92 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -370,7 +370,7 @@ export class FunCBindingResolver { bindScope = retTensor } - this.bindToReturnType(target, value, bindScope, false) + this.bindToReturnType(target, value, this.simplifyNested(bindScope), false) } private bindToFunctionCall(target: SyntaxNode, value: SyntaxNode): void { const funcIdentifier = value.childForFieldName("callee") @@ -386,7 +386,7 @@ export class FunCBindingResolver { if (!retType) { throw new Error(`Function ${funcName} without return type. Grammar failure?`) } - this.bindToReturnType(target, value, retType.node) + this.bindToReturnType(target, value, this.simplifyNested(retType.node)) } private bindToReturnType( target: SyntaxNode, @@ -448,7 +448,12 @@ export class FunCBindingResolver { if (!lhs) { throw new Error(`No lhs in local_vars_declaration. Broken grammar`) } - this.bindToReturnType(lhs, callNode, bindRhs, checkMethodRhs) + this.bindToReturnType( + this.simplifyNested(lhs), + callNode, + this.simplifyNested(bindRhs), + checkMethodRhs, + ) break } case "grouped_expression": { @@ -456,7 +461,12 @@ export class FunCBindingResolver { if (!nextChild) { throw new Error("No child for grouped_expression. Borken grammar") } - this.bindToReturnType(nextChild, callNode, bindRhs) + this.bindToReturnType( + this.simplifyNested(nextChild), + callNode, + this.simplifyNested(bindRhs), + checkMethodRhs, + ) break } case "tensor_var_declaration": From 390db9a301f9a5bfffddb12f8014257b0d265267 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Wed, 12 Nov 2025 22:54:59 +0300 Subject: [PATCH 27/32] Add optional type inference during return type binding --- server/src/languages/func/psi/BindingResolver.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/src/languages/func/psi/BindingResolver.ts b/server/src/languages/func/psi/BindingResolver.ts index 7b4c5e92..b33810ef 100644 --- a/server/src/languages/func/psi/BindingResolver.ts +++ b/server/src/languages/func/psi/BindingResolver.ts @@ -11,6 +11,7 @@ import {FuncFile} from "./FuncFile" interface Binding { readonly identifier: SyntaxNode readonly producer_exp: SyntaxNode[] + readonly type?: string } interface BindingResult { @@ -237,6 +238,7 @@ export class FunCBindingResolver { target: SyntaxNode, value: SyntaxNode[], checkMethodRhs: boolean = true, + type?: string, ): void { if (checkMethodRhs) { this.bindModifyingCalls(value) @@ -244,6 +246,7 @@ export class FunCBindingResolver { this.bindings.set(target.text, { identifier: target, producer_exp: value, + type, }) } @@ -485,11 +488,11 @@ export class FunCBindingResolver { `No variable name in var_declaration. Broken grammar ${pattern.toString()}`, ) } - this.bindIdentifier(varName, [callNode], checkMethodRhs) + this.bindIdentifier(varName, [callNode], checkMethodRhs, bindType) break } case "identifier": { - this.bindIdentifier(pattern, [callNode], checkMethodRhs) + this.bindIdentifier(pattern, [callNode], checkMethodRhs, bindType) break } } From cc97bbbfb65595dbaad9ca0f584d96e2587829df Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Wed, 12 Nov 2025 22:56:39 +0300 Subject: [PATCH 28/32] Fix call ref assesment early termination --- server/src/languages/func/inspections/UnusedImpure.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/languages/func/inspections/UnusedImpure.ts b/server/src/languages/func/inspections/UnusedImpure.ts index f8a509e1..50c6fc98 100644 --- a/server/src/languages/func/inspections/UnusedImpure.ts +++ b/server/src/languages/func/inspections/UnusedImpure.ts @@ -221,7 +221,11 @@ export class UnusedImpureInspection extends UnusedInspection implements Inspecti let willDrop = false if (this.isCall(parent)) { willDrop = this.checkCallWillDrop(parent, file, bindResolver) - this.setCache(parent, willDrop) + } + this.setCache(parent, willDrop) + // Only return here in case the call will not drop, otherwise continue + if (willDrop) { + continue } return willDrop } From 68c6e79f2631714445d8141bdf7403efb9eb031f Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Wed, 12 Nov 2025 23:00:43 +0300 Subject: [PATCH 29/32] Make test runner generic --- package.json | 44 +++++++++---------- .../src/e2e/{tolk => common}/BaseTestSuite.ts | 15 ++++--- .../e2e/{runTolkTest.ts => runLangTest.ts} | 13 +++++- server/src/e2e/tolk/compiler-tests.test.ts | 2 +- server/src/e2e/tolk/completion-select.test.ts | 2 +- server/src/e2e/tolk/completion.test.ts | 2 +- server/src/e2e/tolk/document-symbols.test.ts | 2 +- server/src/e2e/tolk/documentation.test.ts | 2 +- server/src/e2e/tolk/foldings.test.ts | 2 +- server/src/e2e/tolk/inlay-hints.test.ts | 2 +- server/src/e2e/tolk/inspections.test.ts | 2 +- server/src/e2e/tolk/intentions.test.ts | 2 +- .../tolk/multifile-completion-select.test.ts | 2 +- .../e2e/tolk/multifile-inspections.test.ts | 2 +- .../src/e2e/tolk/multifile-intentions.test.ts | 2 +- .../src/e2e/tolk/multifile-resolving.test.ts | 2 +- server/src/e2e/tolk/references.test.ts | 2 +- server/src/e2e/tolk/rename.test.ts | 2 +- server/src/e2e/tolk/resolving.test.ts | 2 +- server/src/e2e/tolk/signature-help.test.ts | 2 +- server/src/e2e/tolk/type-resolving.test.ts | 2 +- server/src/e2e/tolk/types-2.test.ts | 2 +- server/src/e2e/tolk/types.test.ts | 2 +- 23 files changed, 64 insertions(+), 48 deletions(-) rename server/src/e2e/{tolk => common}/BaseTestSuite.ts (95%) rename server/src/e2e/{runTolkTest.ts => runLangTest.ts} (87%) diff --git a/package.json b/package.json index ac863ed9..ab2b5d01 100644 --- a/package.json +++ b/package.json @@ -58,28 +58,28 @@ "parse:grammars:tolk": "cd ./server/src/languages/tolk/tree-sitter-tolk/ && tree-sitter parse -D --open-log main.tolk", "test:e2e": "yarn test:e2e:tolk", "test:e2e:compile": "tsc -p ./server/src/e2e/tsconfig.json", - "test:e2e:tolk": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts", - "test:e2e:tolk:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --update-snapshots", - "test:e2e:tolk:resolving:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite resolving --update-snapshots", - "test:e2e:tolk:references:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite references --update-snapshots", - "test:e2e:tolk:rename:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite rename --update-snapshots", - "test:e2e:tolk:inspections:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite inspections --update-snapshots", - "test:e2e:tolk:foldings:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite foldings --update-snapshots", - "test:e2e:tolk:completion:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite completion --update-snapshots", - "test:e2e:tolk:completion-select:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite completion-select --update-snapshots", - "test:e2e:tolk:document-symbols:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite document-symbols --update-snapshots", - "test:e2e:tolk:inlay-hints:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite inlay-hints --update-snapshots", - "test:e2e:tolk:signature-help:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite signature-help --update-snapshots", - "test:e2e:tolk:intentions:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite intentions --update-snapshots", - "test:e2e:tolk:types:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite types --update-snapshots", - "test:e2e:tolk:types-2:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite types-2 --update-snapshots", - "test:e2e:tolk:documentation:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite documentation --update-snapshots", - "test:e2e:tolk:type-resolving:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite type-resolving --update-snapshots", - "test:e2e:tolk:multifile-resolving:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite multifile-resolving --update-snapshots", - "test:e2e:tolk:multifile-intentions:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite multifile-intentions --update-snapshots", - "test:e2e:tolk:multifile-completion-select:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite multifile-completion-select --update-snapshots", - "test:e2e:tolk:multifile-inspections:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite multifile-inspections --update-snapshots", - "test:e2e:tolk:compiler-tests:update": "yarn test:e2e:compile && ts-node server/src/e2e/runTolkTest.ts --suite compiler-tests --update-snapshots", + "test:e2e:tolk": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts", + "test:e2e:tolk:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --update-snapshots", + "test:e2e:tolk:resolving:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite resolving --update-snapshots", + "test:e2e:tolk:references:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite references --update-snapshots", + "test:e2e:tolk:rename:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite rename --update-snapshots", + "test:e2e:tolk:inspections:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite inspections --update-snapshots", + "test:e2e:tolk:foldings:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite foldings --update-snapshots", + "test:e2e:tolk:completion:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite completion --update-snapshots", + "test:e2e:tolk:completion-select:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite completion-select --update-snapshots", + "test:e2e:tolk:document-symbols:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite document-symbols --update-snapshots", + "test:e2e:tolk:inlay-hints:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite inlay-hints --update-snapshots", + "test:e2e:tolk:signature-help:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite signature-help --update-snapshots", + "test:e2e:tolk:intentions:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite intentions --update-snapshots", + "test:e2e:tolk:types:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite types --update-snapshots", + "test:e2e:tolk:types-2:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite types-2 --update-snapshots", + "test:e2e:tolk:documentation:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite documentation --update-snapshots", + "test:e2e:tolk:type-resolving:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite type-resolving --update-snapshots", + "test:e2e:tolk:multifile-resolving:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite multifile-resolving --update-snapshots", + "test:e2e:tolk:multifile-intentions:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite multifile-intentions --update-snapshots", + "test:e2e:tolk:multifile-completion-select:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite multifile-completion-select --update-snapshots", + "test:e2e:tolk:multifile-inspections:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite multifile-inspections --update-snapshots", + "test:e2e:tolk:compiler-tests:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite compiler-tests --verbose --update-snapshots", "pack:ls": "cd dist && npm pack", "publish:ls": "cd dist && npm publish", "build-server-package-and-publish": "yarn build && yarn pack:ls && yarn publish:ls", diff --git a/server/src/e2e/tolk/BaseTestSuite.ts b/server/src/e2e/common/BaseTestSuite.ts similarity index 95% rename from server/src/e2e/tolk/BaseTestSuite.ts rename to server/src/e2e/common/BaseTestSuite.ts index 0057fb5c..05a0b2ae 100644 --- a/server/src/e2e/tolk/BaseTestSuite.ts +++ b/server/src/e2e/common/BaseTestSuite.ts @@ -24,6 +24,7 @@ export abstract class BaseTestSuite { protected document!: vscode.TextDocument protected editor!: vscode.TextEditor protected testFilePath!: string + protected language!: string protected testDir: string = "" protected updates: TestUpdate[] = [] protected additionalFiles: TextDocument[] = [] @@ -41,13 +42,15 @@ export abstract class BaseTestSuite { } public async setup(): Promise { - this.testFilePath = path.join(this.workingDir(), "test.tolk") + const lang = process.env["TON_LANGUAGE"] ?? "tolk" + this.testFilePath = path.join(this.workingDir(), `test.${lang.toLowerCase()}`) this.testDir = path.dirname(this.testFilePath) + this.language = lang await fs.promises.mkdir(this.testDir, {recursive: true}) await fs.promises.writeFile(this.testFilePath, "") this.document = await vscode.workspace.openTextDocument(this.testFilePath) - await vscode.languages.setTextDocumentLanguage(this.document, "tolk") + await vscode.languages.setTextDocumentLanguage(this.document, this.language.toLowerCase()) await this.openMainFile() } @@ -74,7 +77,7 @@ export abstract class BaseTestSuite { await fs.promises.writeFile(filePath, content) const additionalFile = await vscode.workspace.openTextDocument(filePath) - await vscode.languages.setTextDocumentLanguage(additionalFile, "tolk") + await vscode.languages.setTextDocumentLanguage(additionalFile, this.language) await vscode.window.showTextDocument(additionalFile, { preview: true, @@ -227,11 +230,12 @@ export abstract class BaseTestSuite { } public runTestsFromDirectory(directory: string): void { + const lang = process.env["TON_LANGUAGE"] ?? "tolk" const testCasesPath = path.join( __dirname, "..", "..", - "tolk", + lang, "testcases", directory, "*.test", @@ -310,8 +314,9 @@ async function activate(): Promise { console.log("Waiting for language server initialization...") await new Promise(resolve => setTimeout(resolve, 1000)) + const targetLang = process.env["TON_LANGUAGE"] ?? "tolk" const languages = await vscode.languages.getLanguages() - if (!languages.includes("tolk")) { + if (!languages.includes(targetLang.toLowerCase())) { throw new Error("Tolk language not registered. Check package.json configuration.") } diff --git a/server/src/e2e/runTolkTest.ts b/server/src/e2e/runLangTest.ts similarity index 87% rename from server/src/e2e/runTolkTest.ts rename to server/src/e2e/runLangTest.ts index b8dcfee8..9eeee918 100644 --- a/server/src/e2e/runTolkTest.ts +++ b/server/src/e2e/runLangTest.ts @@ -9,6 +9,7 @@ interface TestRunOptions { suite?: string test?: string file?: string + lang?: string updateSnapshots?: boolean verbose?: boolean } @@ -21,6 +22,11 @@ function parseArgs(): TestRunOptions { const arg = args[i] switch (arg) { + case "--lang": + case "-s": { + options.lang = args[++i] + break + } case "--suite": case "-s": { options.suite = args[++i] @@ -104,14 +110,19 @@ async function main(): Promise { if (options.file) { process.env["TON_TEST_FILE"] = options.file } + // If not set to known languages, fall back to tolk + if (!options.lang || !(options.lang == "tolk" || options.lang == "FunC")) { + options.lang = "tolk" + } if (options.verbose) { console.log("Starting e2e tests with options:", options) } const extensionDevelopmentPath = path.resolve(__dirname, "../../../") - const extensionTestsPath = path.resolve(__dirname, "./out/tolk/index.js") + const extensionTestsPath = path.resolve(__dirname, `./out/${options.lang}/index.js`) const testWorkspace = path.resolve(__dirname, "../../../test-workspace") + process.env["TON_LANGUAGE"] = options.lang await runTests({ extensionDevelopmentPath, diff --git a/server/src/e2e/tolk/compiler-tests.test.ts b/server/src/e2e/tolk/compiler-tests.test.ts index d3bd0759..77e82148 100644 --- a/server/src/e2e/tolk/compiler-tests.test.ts +++ b/server/src/e2e/tolk/compiler-tests.test.ts @@ -7,7 +7,7 @@ import * as path from "node:path" import * as vscode from "vscode" import {glob} from "glob" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" interface UnresolvedIdentifier { readonly name: string diff --git a/server/src/e2e/tolk/completion-select.test.ts b/server/src/e2e/tolk/completion-select.test.ts index 93dcb06e..f259853a 100644 --- a/server/src/e2e/tolk/completion-select.test.ts +++ b/server/src/e2e/tolk/completion-select.test.ts @@ -7,7 +7,7 @@ import {CompletionItem, Position} from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Completion Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/completion.test.ts b/server/src/e2e/tolk/completion.test.ts index ade95955..c3d60760 100644 --- a/server/src/e2e/tolk/completion.test.ts +++ b/server/src/e2e/tolk/completion.test.ts @@ -8,7 +8,7 @@ import {CompletionItem} from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Completion Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/document-symbols.test.ts b/server/src/e2e/tolk/document-symbols.test.ts index 977fa596..8e67f7c7 100644 --- a/server/src/e2e/tolk/document-symbols.test.ts +++ b/server/src/e2e/tolk/document-symbols.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Document Symbols Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/documentation.test.ts b/server/src/e2e/tolk/documentation.test.ts index ebfaa643..2f680050 100644 --- a/server/src/e2e/tolk/documentation.test.ts +++ b/server/src/e2e/tolk/documentation.test.ts @@ -10,7 +10,7 @@ import type * as lsp from "vscode-languageserver" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" import type {GetTypeAtPositionParams} from "./types.test" diff --git a/server/src/e2e/tolk/foldings.test.ts b/server/src/e2e/tolk/foldings.test.ts index b673dd6a..2cab6528 100644 --- a/server/src/e2e/tolk/foldings.test.ts +++ b/server/src/e2e/tolk/foldings.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Folding Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/inlay-hints.test.ts b/server/src/e2e/tolk/inlay-hints.test.ts index 0966eae6..75fc5463 100644 --- a/server/src/e2e/tolk/inlay-hints.test.ts +++ b/server/src/e2e/tolk/inlay-hints.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Inlay Hints Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/inspections.test.ts b/server/src/e2e/tolk/inspections.test.ts index 390c8d38..7129443f 100644 --- a/server/src/e2e/tolk/inspections.test.ts +++ b/server/src/e2e/tolk/inspections.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Inspection Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/intentions.test.ts b/server/src/e2e/tolk/intentions.test.ts index c4249c02..1428b465 100644 --- a/server/src/e2e/tolk/intentions.test.ts +++ b/server/src/e2e/tolk/intentions.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Intentions Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/multifile-completion-select.test.ts b/server/src/e2e/tolk/multifile-completion-select.test.ts index e6b9050d..f4551f46 100644 --- a/server/src/e2e/tolk/multifile-completion-select.test.ts +++ b/server/src/e2e/tolk/multifile-completion-select.test.ts @@ -7,7 +7,7 @@ import {CompletionItem, Position} from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Multi file Completion Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/multifile-inspections.test.ts b/server/src/e2e/tolk/multifile-inspections.test.ts index 059b117f..fb61605b 100644 --- a/server/src/e2e/tolk/multifile-inspections.test.ts +++ b/server/src/e2e/tolk/multifile-inspections.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Multi file Inspection Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/multifile-intentions.test.ts b/server/src/e2e/tolk/multifile-intentions.test.ts index 29a9428c..ee0bd124 100644 --- a/server/src/e2e/tolk/multifile-intentions.test.ts +++ b/server/src/e2e/tolk/multifile-intentions.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Multi file Intentions Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/multifile-resolving.test.ts b/server/src/e2e/tolk/multifile-resolving.test.ts index afc136d6..29965c48 100644 --- a/server/src/e2e/tolk/multifile-resolving.test.ts +++ b/server/src/e2e/tolk/multifile-resolving.test.ts @@ -8,7 +8,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Multi file Resolve Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/references.test.ts b/server/src/e2e/tolk/references.test.ts index 29f858c5..d5d0ca7a 100644 --- a/server/src/e2e/tolk/references.test.ts +++ b/server/src/e2e/tolk/references.test.ts @@ -8,7 +8,7 @@ import type {TextDocumentPositionParams} from "vscode-languageserver" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("References Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/rename.test.ts b/server/src/e2e/tolk/rename.test.ts index 10e6caa2..62150ee7 100644 --- a/server/src/e2e/tolk/rename.test.ts +++ b/server/src/e2e/tolk/rename.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" interface RenamePosition { readonly line: number diff --git a/server/src/e2e/tolk/resolving.test.ts b/server/src/e2e/tolk/resolving.test.ts index 9ae775c3..bfb1a596 100644 --- a/server/src/e2e/tolk/resolving.test.ts +++ b/server/src/e2e/tolk/resolving.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Resolve Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/signature-help.test.ts b/server/src/e2e/tolk/signature-help.test.ts index bb0ae309..5808bc45 100644 --- a/server/src/e2e/tolk/signature-help.test.ts +++ b/server/src/e2e/tolk/signature-help.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Signatures Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/type-resolving.test.ts b/server/src/e2e/tolk/type-resolving.test.ts index fa10e24e..acff2bdc 100644 --- a/server/src/e2e/tolk/type-resolving.test.ts +++ b/server/src/e2e/tolk/type-resolving.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" suite("Type Resolve Test Suite", () => { const testSuite = new (class extends BaseTestSuite { diff --git a/server/src/e2e/tolk/types-2.test.ts b/server/src/e2e/tolk/types-2.test.ts index 162ad9ac..b89d89d5 100644 --- a/server/src/e2e/tolk/types-2.test.ts +++ b/server/src/e2e/tolk/types-2.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" export interface GetTypeAtPositionParams { readonly textDocument: { diff --git a/server/src/e2e/tolk/types.test.ts b/server/src/e2e/tolk/types.test.ts index 525bd8dc..d16ff4da 100644 --- a/server/src/e2e/tolk/types.test.ts +++ b/server/src/e2e/tolk/types.test.ts @@ -6,7 +6,7 @@ import * as vscode from "vscode" import type {TestCase} from "../common/TestParser" -import {BaseTestSuite} from "./BaseTestSuite" +import {BaseTestSuite} from "../common/BaseTestSuite" export interface GetTypeAtPositionParams { readonly textDocument: { From 82a377d766f202fd20944e29faa82d51fdde9dc1 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Wed, 12 Nov 2025 23:17:07 +0300 Subject: [PATCH 30/32] Allow server to pre-load FunC stdlib Mainly for tests --- server/src/server.ts | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/server/src/server.ts b/server/src/server.ts index f938b2ac..099b7c7c 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -236,6 +236,29 @@ const showErrorMessage = (msg: string): void => { }) } +async function findFuncStdlib(): Promise<{path: string; uri: string} | null> { + // FunC settings currently doesn't even have stdlib path + // So, we get straight to business + const funcStdlibEnv = process.env["FUNC_STDLIB"] + const testStdlibPath = process.env["TEST_FUNC_STDLIB_PATH"] + + const searchDirs = [testStdlibPath, funcStdlibEnv] + + for (const searchDir of searchDirs) { + if (searchDir) { + const stdlibUri = filePathToUri(searchDir) + if (await existsVFS(globalVFS, stdlibUri)) { + return { + path: searchDir, + uri: stdlibUri, + } + } + } + } + // Since FunC is typically included directly, we can skip error reporting + return null +} + async function findTolkStdlib(settings: ServerSettings, rootDir: string): Promise { if (settings.tolk.stdlib.path !== null && settings.tolk.stdlib.path.length > 0) { return settings.tolk.stdlib.path @@ -337,13 +360,20 @@ async function initialize(): Promise { const stdlibPath = await findTolkStdlib(settings, rootDir) if (stdlibPath !== null) { - reporter.report(50, "Indexing: (1/3) Standard Library") + reporter.report(50, "Indexing: (1/3) TOLK Standard Library") const stdlibUri = filePathToUri(stdlibPath) tolkIndex.withStdlibRoot(new TolkIndexRoot("stdlib", stdlibUri)) const stdlibRoot = new TolkIndexingRoot(stdlibUri, IndexingRootKind.Stdlib) await stdlibRoot.index() } + const funcStdLib = await findFuncStdlib() + if (funcStdLib) { + reporter.report(50, "Indexing: (1/3) FUNC Standard Library") + funcIndex.withStdlibRoot(new FuncIndexRoot("stdlib", funcStdLib.uri)) + const stdlibRoot = new FuncIndexingRoot(funcStdLib.uri, IndexingRootKind.Stdlib) + await stdlibRoot.index() + } setProjectTolkStdlibPath(stdlibPath) From 6f8cb7362f7e6723333cd642e0295e7ce43ebeba Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Wed, 12 Nov 2025 23:25:24 +0300 Subject: [PATCH 31/32] Add impure inspection test --- package.json | 2 + server/src/e2e/FunC/ImpureInspection.test.ts | 54 ++ server/src/e2e/FunC/index.ts | 153 +++++ server/src/e2e/FunC/stdlib/stdlib.fc | 639 ++++++++++++++++++ .../impure-inspection/Inspection.test | 473 +++++++++++++ 5 files changed, 1321 insertions(+) create mode 100644 server/src/e2e/FunC/ImpureInspection.test.ts create mode 100644 server/src/e2e/FunC/index.ts create mode 100644 server/src/e2e/FunC/stdlib/stdlib.fc create mode 100644 server/src/e2e/FunC/testcases/impure-inspection/Inspection.test diff --git a/package.json b/package.json index ab2b5d01..dcc5b818 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,8 @@ "test:e2e:tolk:multifile-completion-select:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite multifile-completion-select --update-snapshots", "test:e2e:tolk:multifile-inspections:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite multifile-inspections --update-snapshots", "test:e2e:tolk:compiler-tests:update": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --suite compiler-tests --verbose --update-snapshots", + "test:e2e:func": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --lang FunC --update-snapshots", + "test:e2e:func:impure-inspection": "yarn test:e2e:compile && ts-node server/src/e2e/runLangTest.ts --lang FunC --suite ImpureInspection --update-snapshots", "pack:ls": "cd dist && npm pack", "publish:ls": "cd dist && npm publish", "build-server-package-and-publish": "yarn build && yarn pack:ls && yarn publish:ls", diff --git a/server/src/e2e/FunC/ImpureInspection.test.ts b/server/src/e2e/FunC/ImpureInspection.test.ts new file mode 100644 index 00000000..e0dbd348 --- /dev/null +++ b/server/src/e2e/FunC/ImpureInspection.test.ts @@ -0,0 +1,54 @@ +import * as assert from "node:assert" + +import * as vscode from "vscode" + +import {TestCase} from "../common/TestParser" +import {BaseTestSuite} from "../common/BaseTestSuite" + +suite("Impure inspection test suite", () => { + const testSuite = new (class extends BaseTestSuite { + public async getInspections(): Promise { + await new Promise(resolve => setTimeout(resolve, 200)) + + const diagnostics = vscode.languages.getDiagnostics(this.document.uri) + + const impureDiag = diagnostics + .filter(d => d.code == "unused-impure") + .sort((a, b) => { + if (a.range.start.line !== b.range.start.line) { + return a.range.start.line - b.range.start.line + } + return a.range.start.character - b.range.start.character + }) + + if (impureDiag.length === 0) { + return "no issues" + } + + return impureDiag + .map( + d => + `${d.range.start.line}:${d.range.start.character} to ${d.range.end.line}:${d.range.end.character}`, + ) + .join("\n") + } + + protected runTest(testFile: string, testCase: TestCase): void { + test(`Case: ${testCase.name}`, async () => { + await this.replaceDocumentText(testCase.input) + const inspectionRes = await this.getInspections() + assert.strictEqual(inspectionRes, testCase.expected) + }) + } + })() + suiteSetup(async function () { + this.timeout(10_000) + await testSuite.suiteSetup() + }) + + setup(async () => testSuite.setup()) + teardown(async () => testSuite.teardown()) + suiteTeardown(() => testSuite.suiteTeardown()) + + testSuite.runTestsFromDirectory("impure-inspection") +}) diff --git a/server/src/e2e/FunC/index.ts b/server/src/e2e/FunC/index.ts new file mode 100644 index 00000000..a77215e7 --- /dev/null +++ b/server/src/e2e/FunC/index.ts @@ -0,0 +1,153 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2025 TON Studio +import * as path from "node:path" + +import * as Mocha from "mocha" +import {glob} from "glob" +import {Suite, Test} from "mocha" + +// node.js 20+ builtin +const globSync = (globs: string[], options: {cwd: string}): string[] => { + return globs.flatMap(g => glob.sync(g, options)) +} + +interface TestFilterOptions { + readonly suite?: string + readonly testPattern?: string + readonly verbose?: boolean +} + +function getFilterOptions(): TestFilterOptions { + return { + suite: process.env["TON_TEST_SUITE"], + testPattern: process.env["TON_TEST_PATTERN"], + verbose: process.env["TON_TEST_VERBOSE"] === "true", + } +} + +function getTestFilePattern(options: TestFilterOptions): string { + if (options.suite) { + return `${options.suite}.test.js` + } + return "*.test.js" +} + +function shouldIncludeTest(testName: string, options: TestFilterOptions): boolean { + if (options.testPattern) { + return testName.toLowerCase().includes(options.testPattern.toLowerCase()) + } + return true +} + +export async function run(): Promise { + const options = getFilterOptions() + + if (options.verbose) { + console.log("Test filter options:", options) + } + + const mocha = new Mocha({ + ui: "tdd", + color: true, + timeout: 20_000, + }) + + process.env["TON_TESTS"] = "true" + process.env["TEST_FUNC_STDLIB_PATH"] = "../server/src/e2e/FunC/stdlib" + + const testsRoot = path.resolve(__dirname, ".") + const testFilePattern = getTestFilePattern(options) + + if (options.verbose) { + console.log(`Looking for test files matching: ${testFilePattern}`) + console.log(`In directory: ${testsRoot}`) + } + + return new Promise((resolve, reject) => { + glob(testFilePattern, { + cwd: testsRoot, + }) + .then(files => { + files.sort((a, b) => { + if (a.includes("multifile-") && b.includes("multifile-")) { + return Number(a < b) + } + if (a.includes("multifile-") && !b.includes("multifile-")) { + return 1 + } + if (!a.includes("multifile-") && b.includes("multifile-")) { + return -1 + } + return Number(a < b) + }) + + if (files.length === 0) { + if (options.suite) { + console.error(`No test suite found matching: ${options.suite}`) + console.log("Available test suites:") + const allFiles = globSync(["*.test.js"], {cwd: testsRoot}) + for (const file of allFiles) { + const suiteName = path.basename(file, ".test.js") + console.log(` - ${suiteName}`) + } + reject(new Error(`Test suite '${options.suite}' not found`)) + } else { + reject(new Error("No test files found")) + return + } + } + + if (options.verbose) { + console.log(`Found ${files.length} test file(s):`) + for (const file of files) { + console.log(` - ${file}`) + } + } + + for (const f of files) { + mocha.addFile(path.resolve(testsRoot, f)) + } + + if (options.testPattern) { + const originalRun = mocha.run.bind(mocha) + mocha.run = function (callback: (failures: number) => void) { + const suite = this.suite + filterTestsRecursively(suite, options) + return originalRun(callback) + } + } + + try { + mocha.run(failures => { + if (failures > 0) { + reject(new Error(`${failures} tests failed.`)) + } else { + resolve() + } + }) + } catch (error) { + reject(error instanceof Error ? error : new Error(String(error))) + } + }) + .catch((error: unknown) => { + reject(error instanceof Error ? error : new Error(String(error))) + }) + }) +} + +function filterTestsRecursively(suite: Suite, options: TestFilterOptions): void { + if (!options.testPattern) return + + suite.tests = suite.tests.filter((test: Test) => shouldIncludeTest(test.title, options)) + for (const childSuite of suite.suites) { + filterTestsRecursively(childSuite, options) + } + suite.suites = suite.suites.filter((childSuite: Suite) => hasTests(childSuite)) +} + +function hasTests(suite: Suite): boolean { + if (suite.tests.length > 0) { + return true + } + return suite.suites.some(childSuite => hasTests(childSuite)) +} diff --git a/server/src/e2e/FunC/stdlib/stdlib.fc b/server/src/e2e/FunC/stdlib/stdlib.fc new file mode 100644 index 00000000..8fb27a7e --- /dev/null +++ b/server/src/e2e/FunC/stdlib/stdlib.fc @@ -0,0 +1,639 @@ +;; Standard library for funC +;; + +{- + This file is part of TON FunC Standard Library. + + FunC Standard Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + FunC Standard Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + +-} + +{- + # Tuple manipulation primitives + The names and the types are mostly self-explaining. + See [polymorhism with forall](https://ton.org/docs/#/func/functions?id=polymorphism-with-forall) + for more info on the polymorphic functions. + + Note that currently values of atomic type `tuple` can't be cast to composite tuple type (e.g. `[int, cell]`) + and vise versa. +-} + +{- + # Lisp-style lists + + Lists can be represented as nested 2-elements tuples. + Empty list is conventionally represented as TVM `null` value (it can be obtained by calling [null()]). + For example, tuple `(1, (2, (3, null)))` represents list `[1, 2, 3]`. Elements of a list can be of different types. +-} + +;;; Adds an element to the beginning of lisp-style list. +forall X -> tuple cons(X head, tuple tail) asm "CONS"; + +;;; Extracts the head and the tail of lisp-style list. +forall X -> (X, tuple) uncons(tuple list) asm "UNCONS"; + +;;; Extracts the tail and the head of lisp-style list. +forall X -> (tuple, X) list_next(tuple list) asm( -> 1 0) "UNCONS"; + +;;; Returns the head of lisp-style list. +forall X -> X car(tuple list) asm "CAR"; + +;;; Returns the tail of lisp-style list. +tuple cdr(tuple list) asm "CDR"; + +;;; Creates tuple with zero elements. +tuple empty_tuple() asm "NIL"; + +;;; Appends a value `x` to a `Tuple t = (x1, ..., xn)`, but only if the resulting `Tuple t' = (x1, ..., xn, x)` +;;; is of length at most 255. Otherwise throws a type check exception. +forall X -> tuple tpush(tuple t, X value) asm "TPUSH"; +forall X -> (tuple, ()) ~tpush(tuple t, X value) asm "TPUSH"; + +;;; Creates a tuple of length one with given argument as element. +forall X -> [X] single(X x) asm "SINGLE"; + +;;; Unpacks a tuple of length one +forall X -> X unsingle([X] t) asm "UNSINGLE"; + +;;; Creates a tuple of length two with given arguments as elements. +forall X, Y -> [X, Y] pair(X x, Y y) asm "PAIR"; + +;;; Unpacks a tuple of length two +forall X, Y -> (X, Y) unpair([X, Y] t) asm "UNPAIR"; + +;;; Creates a tuple of length three with given arguments as elements. +forall X, Y, Z -> [X, Y, Z] triple(X x, Y y, Z z) asm "TRIPLE"; + +;;; Unpacks a tuple of length three +forall X, Y, Z -> (X, Y, Z) untriple([X, Y, Z] t) asm "UNTRIPLE"; + +;;; Creates a tuple of length four with given arguments as elements. +forall X, Y, Z, W -> [X, Y, Z, W] tuple4(X x, Y y, Z z, W w) asm "4 TUPLE"; + +;;; Unpacks a tuple of length four +forall X, Y, Z, W -> (X, Y, Z, W) untuple4([X, Y, Z, W] t) asm "4 UNTUPLE"; + +;;; Returns the first element of a tuple (with unknown element types). +forall X -> X first(tuple t) asm "FIRST"; + +;;; Returns the second element of a tuple (with unknown element types). +forall X -> X second(tuple t) asm "SECOND"; + +;;; Returns the third element of a tuple (with unknown element types). +forall X -> X third(tuple t) asm "THIRD"; + +;;; Returns the fourth element of a tuple (with unknown element types). +forall X -> X fourth(tuple t) asm "3 INDEX"; + +;;; Returns the first element of a pair tuple. +forall X, Y -> X pair_first([X, Y] p) asm "FIRST"; + +;;; Returns the second element of a pair tuple. +forall X, Y -> Y pair_second([X, Y] p) asm "SECOND"; + +;;; Returns the first element of a triple tuple. +forall X, Y, Z -> X triple_first([X, Y, Z] p) asm "FIRST"; + +;;; Returns the second element of a triple tuple. +forall X, Y, Z -> Y triple_second([X, Y, Z] p) asm "SECOND"; + +;;; Returns the third element of a triple tuple. +forall X, Y, Z -> Z triple_third([X, Y, Z] p) asm "THIRD"; + + +;;; Push null element (casted to given type) +;;; By the TVM type `Null` FunC represents absence of a value of some atomic type. +;;; So `null` can actually have any atomic type. +forall X -> X null() asm "PUSHNULL"; + +;;; Moves a variable [x] to the top of the stack +forall X -> (X, ()) ~impure_touch(X x) impure asm "NOP"; + + + +;;; Returns the current Unix time as an Integer +int now() asm "NOW"; + +;;; Returns the internal address of the current smart contract as a Slice with a `MsgAddressInt`. +;;; If necessary, it can be parsed further using primitives such as [parse_std_addr]. +slice my_address() asm "MYADDR"; + +;;; Returns the balance of the smart contract as a tuple consisting of an int +;;; (balance in nanotoncoins) and a `cell` +;;; (a dictionary with 32-bit keys representing the balance of "extra currencies") +;;; at the start of Computation Phase. +;;; Note that RAW primitives such as [send_raw_message] do not update this field. +[int, cell] get_balance() asm "BALANCE"; + +;;; Returns the logical time of the current transaction. +int cur_lt() asm "LTIME"; + +;;; Returns the starting logical time of the current block. +int block_lt() asm "BLOCKLT"; + +;;; Computes the representation hash of a `cell` [c] and returns it as a 256-bit unsigned integer `x`. +;;; Useful for signing and checking signatures of arbitrary entities represented by a tree of cells. +int cell_hash(cell c) asm "HASHCU"; + +;;; Computes the hash of a `slice s` and returns it as a 256-bit unsigned integer `x`. +;;; The result is the same as if an ordinary cell containing only data and references from `s` had been created +;;; and its hash computed by [cell_hash]. +int slice_hash(slice s) asm "HASHSU"; + +;;; Computes sha256 of the data bits of `slice` [s]. If the bit length of `s` is not divisible by eight, +;;; throws a cell underflow exception. The hash value is returned as a 256-bit unsigned integer `x`. +int string_hash(slice s) asm "SHA256U"; + +{- + # Signature checks +-} + +;;; Checks the Ed25519-`signature` of a `hash` (a 256-bit unsigned integer, usually computed as the hash of some data) +;;; using [public_key] (also represented by a 256-bit unsigned integer). +;;; The signature must contain at least 512 data bits; only the first 512 bits are used. +;;; The result is `−1` if the signature is valid, `0` otherwise. +;;; Note that `CHKSIGNU` creates a 256-bit slice with the hash and calls `CHKSIGNS`. +;;; That is, if [hash] is computed as the hash of some data, these data are hashed twice, +;;; the second hashing occurring inside `CHKSIGNS`. +int check_signature(int hash, slice signature, int public_key) asm "CHKSIGNU"; + +;;; Checks whether [signature] is a valid Ed25519-signature of the data portion of `slice data` using `public_key`, +;;; similarly to [check_signature]. +;;; If the bit length of [data] is not divisible by eight, throws a cell underflow exception. +;;; The verification of Ed25519 signatures is the standard one, +;;; with sha256 used to reduce [data] to the 256-bit number that is actually signed. +int check_data_signature(slice data, slice signature, int public_key) asm "CHKSIGNS"; + +{--- + # Computation of boc size + The primitives below may be useful for computing storage fees of user-provided data. +-} + +;;; Returns `(x, y, z, -1)` or `(null, null, null, 0)`. +;;; Recursively computes the count of distinct cells `x`, data bits `y`, and cell references `z` +;;; in the DAG rooted at `cell` [c], effectively returning the total storage used by this DAG taking into account +;;; the identification of equal cells. +;;; The values of `x`, `y`, and `z` are computed by a depth-first traversal of this DAG, +;;; with a hash table of visited cell hashes used to prevent visits of already-visited cells. +;;; The total count of visited cells `x` cannot exceed non-negative [max_cells]; +;;; otherwise the computation is aborted before visiting the `(max_cells + 1)`-st cell and +;;; a zero flag is returned to indicate failure. If [c] is `null`, returns `x = y = z = 0`. +(int, int, int) compute_data_size(cell c, int max_cells) impure asm "CDATASIZE"; + +;;; Similar to [compute_data_size?], but accepting a `slice` [s] instead of a `cell`. +;;; The returned value of `x` does not take into account the cell that contains the `slice` [s] itself; +;;; however, the data bits and the cell references of [s] are accounted for in `y` and `z`. +(int, int, int) slice_compute_data_size(slice s, int max_cells) impure asm "SDATASIZE"; + +;;; A non-quiet version of [compute_data_size?] that throws a cell overflow exception (`8`) on failure. +(int, int, int, int) compute_data_size?(cell c, int max_cells) asm "CDATASIZEQ NULLSWAPIFNOT2 NULLSWAPIFNOT"; + +;;; A non-quiet version of [slice_compute_data_size?] that throws a cell overflow exception (8) on failure. +(int, int, int, int) slice_compute_data_size?(cell c, int max_cells) asm "SDATASIZEQ NULLSWAPIFNOT2 NULLSWAPIFNOT"; + +;;; Throws an exception with exit_code excno if cond is not 0 (commented since implemented in compilator) +;; () throw_if(int excno, int cond) impure asm "THROWARGIF"; + +{-- + # Debug primitives + Only works for local TVM execution with debug level verbosity +-} +;;; Dumps the stack (at most the top 255 values) and shows the total stack depth. +() dump_stack() impure asm "DUMPSTK"; + +{- + # Persistent storage save and load +-} + +;;; Returns the persistent contract storage cell. It can be parsed or modified with slice and builder primitives later. +cell get_data() asm "c4 PUSH"; + +;;; Sets `cell` [c] as persistent contract data. You can update persistent contract storage with this primitive. +() set_data(cell c) impure asm "c4 POP"; + +{- + # Continuation primitives +-} +;;; Usually `c3` has a continuation initialized by the whole code of the contract. It is used for function calls. +;;; The primitive returns the current value of `c3`. +cont get_c3() impure asm "c3 PUSH"; + +;;; Updates the current value of `c3`. Usually, it is used for updating smart contract code in run-time. +;;; Note that after execution of this primitive the current code +;;; (and the stack of recursive function calls) won't change, +;;; but any other function call will use a function from the new code. +() set_c3(cont c) impure asm "c3 POP"; + +;;; Transforms a `slice` [s] into a simple ordinary continuation `c`, with `c.code = s` and an empty stack and savelist. +cont bless(slice s) impure asm "BLESS"; + +{--- + # Gas related primitives +-} + +;;; Sets current gas limit `gl` to its maximal allowed value `gm`, and resets the gas credit `gc` to zero, +;;; decreasing the value of `gr` by `gc` in the process. +;;; In other words, the current smart contract agrees to buy some gas to finish the current transaction. +;;; This action is required to process external messages, which bring no value (hence no gas) with themselves. +;;; +;;; For more details check [accept_message effects](https://docs.ton.org/develop/smart-contracts/guidelines/accept). +() accept_message() impure asm "ACCEPT"; + +;;; Sets current gas limit `gl` to the minimum of limit and `gm`, and resets the gas credit `gc` to zero. +;;; If the gas consumed so far (including the present instruction) exceeds the resulting value of `gl`, +;;; an (unhandled) out of gas exception is thrown before setting new gas limits. +;;; Notice that [set_gas_limit] with an argument `limit ≥ 2^63 − 1` is equivalent to [accept_message]. +() set_gas_limit(int limit) impure asm "SETGASLIMIT"; + +;;; Commits the current state of registers `c4` (“persistent data”) and `c5` (“actions”) +;;; so that the current execution is considered “successful” with the saved values even if an exception +;;; in Computation Phase is thrown later. +() commit() impure asm "COMMIT"; + +;;; Not implemented +;;() buy_gas(int gram) impure asm "BUYGAS"; + +;;; Computes the amount of gas that can be bought for `amount` nanoTONs, +;;; and sets `gl` accordingly in the same way as [set_gas_limit]. +() buy_gas(int amount) impure asm "BUYGAS"; + +;;; Computes the minimum of two integers [x] and [y]. +int min(int x, int y) asm "MIN"; + +;;; Computes the maximum of two integers [x] and [y]. +int max(int x, int y) asm "MAX"; + +;;; Sorts two integers. +(int, int) minmax(int x, int y) asm "MINMAX"; + +;;; Computes the absolute value of an integer [x]. +int abs(int x) asm "ABS"; + +{- + # Slice primitives + + It is said that a primitive _loads_ some data, + if it returns the data and the remainder of the slice + (so it can also be used as [modifying method](https://docs.ton.org/develop/func/statements#modifying-methods)). + + It is said that a primitive _preloads_ some data, if it returns only the data + (it can be used as [non-modifying method](https://docs.ton.org/develop/func/statements#non-modifying-methods)). + + Unless otherwise stated, loading and preloading primitives read the data from a prefix of the slice. +-} + + +;;; Converts a `cell` [c] into a `slice`. Notice that [c] must be either an ordinary cell, +;;; or an exotic cell (see [TVM.pdf](https://ton-blockchain.github.io/docs/tvm.pdf), 3.1.2) +;;; which is automatically loaded to yield an ordinary cell `c'`, converted into a `slice` afterwards. +slice begin_parse(cell c) asm "CTOS"; + +;;; Checks if [s] is empty. If not, throws an exception. +() end_parse(slice s) impure asm "ENDS"; + +;;; Loads the first reference from the slice. +(slice, cell) load_ref(slice s) asm( -> 1 0) "LDREF"; + +;;; Preloads the first reference from the slice. +cell preload_ref(slice s) asm "PLDREF"; + + {- Functions below are commented because are implemented on compilator level for optimisation -} + +;;; Loads a signed [len]-bit integer from a slice [s]. +;; (slice, int) ~load_int(slice s, int len) asm(s len -> 1 0) "LDIX"; + +;;; Loads an unsigned [len]-bit integer from a slice [s]. +;; (slice, int) ~load_uint(slice s, int len) asm( -> 1 0) "LDUX"; + +;;; Preloads a signed [len]-bit integer from a slice [s]. +;; int preload_int(slice s, int len) asm "PLDIX"; + +;;; Preloads an unsigned [len]-bit integer from a slice [s]. +;; int preload_uint(slice s, int len) asm "PLDUX"; + +;;; Loads the first `0 ≤ len ≤ 1023` bits from slice [s] into a separate `slice s''`. +;; (slice, slice) load_bits(slice s, int len) asm(s len -> 1 0) "LDSLICEX"; + +;;; Preloads the first `0 ≤ len ≤ 1023` bits from slice [s] into a separate `slice s''`. +;; slice preload_bits(slice s, int len) asm "PLDSLICEX"; + +;;; Loads serialized amount of TonCoins (any unsigned integer up to `2^120 - 1`). +(slice, int) load_grams(slice s) asm( -> 1 0) "LDGRAMS"; +(slice, int) load_coins(slice s) asm( -> 1 0) "LDGRAMS"; + +;;; Returns all but the first `0 ≤ len ≤ 1023` bits of `slice` [s]. +slice skip_bits(slice s, int len) asm "SDSKIPFIRST"; +(slice, ()) ~skip_bits(slice s, int len) asm "SDSKIPFIRST"; + +;;; Returns the first `0 ≤ len ≤ 1023` bits of `slice` [s]. +slice first_bits(slice s, int len) asm "SDCUTFIRST"; + +;;; Returns all but the last `0 ≤ len ≤ 1023` bits of `slice` [s]. +slice skip_last_bits(slice s, int len) asm "SDSKIPLAST"; +(slice, ()) ~skip_last_bits(slice s, int len) asm "SDSKIPLAST"; + +;;; Returns the last `0 ≤ len ≤ 1023` bits of `slice` [s]. +slice slice_last(slice s, int len) asm "SDCUTLAST"; + +;;; Loads a dictionary `D` (HashMapE) from `slice` [s]. +;;; (returns `null` if `nothing` constructor is used). +(slice, cell) load_dict(slice s) asm( -> 1 0) "LDDICT"; + +;;; Preloads a dictionary `D` from `slice` [s]. +cell preload_dict(slice s) asm "PLDDICT"; + +;;; Loads a dictionary as [load_dict], but returns only the remainder of the slice. +slice skip_dict(slice s) asm "SKIPDICT"; + +;;; Loads (Maybe ^Cell) from `slice` [s]. +;;; In other words loads 1 bit and if it is true +;;; loads first ref and return it with slice remainder +;;; otherwise returns `null` and slice remainder +(slice, cell) load_maybe_ref(slice s) asm( -> 1 0) "LDOPTREF"; + +;;; Preloads (Maybe ^Cell) from `slice` [s]. +cell preload_maybe_ref(slice s) asm "PLDOPTREF"; + + +;;; Returns the depth of `cell` [c]. +;;; If [c] has no references, then return `0`; +;;; otherwise the returned value is one plus the maximum of depths of cells referred to from [c]. +;;; If [c] is a `null` instead of a cell, returns zero. +int cell_depth(cell c) asm "CDEPTH"; + + +{- + # Slice size primitives +-} + +;;; Returns the number of references in `slice` [s]. +int slice_refs(slice s) asm "SREFS"; + +;;; Returns the number of data bits in `slice` [s]. +int slice_bits(slice s) asm "SBITS"; + +;;; Returns both the number of data bits and the number of references in `slice` [s]. +(int, int) slice_bits_refs(slice s) asm "SBITREFS"; + +;;; Checks whether a `slice` [s] is empty (i.e., contains no bits of data and no cell references). +int slice_empty?(slice s) asm "SEMPTY"; + +;;; Checks whether `slice` [s] has no bits of data. +int slice_data_empty?(slice s) asm "SDEMPTY"; + +;;; Checks whether `slice` [s] has no references. +int slice_refs_empty?(slice s) asm "SREMPTY"; + +;;; Returns the depth of `slice` [s]. +;;; If [s] has no references, then returns `0`; +;;; otherwise the returned value is one plus the maximum of depths of cells referred to from [s]. +int slice_depth(slice s) asm "SDEPTH"; + +{- + # Builder size primitives +-} + +;;; Returns the number of cell references already stored in `builder` [b] +int builder_refs(builder b) asm "BREFS"; + +;;; Returns the number of data bits already stored in `builder` [b]. +int builder_bits(builder b) asm "BBITS"; + +;;; Returns the depth of `builder` [b]. +;;; If no cell references are stored in [b], then returns 0; +;;; otherwise the returned value is one plus the maximum of depths of cells referred to from [b]. +int builder_depth(builder b) asm "BDEPTH"; + +{- + # Builder primitives + It is said that a primitive _stores_ a value `x` into a builder `b` + if it returns a modified version of the builder `b'` with the value `x` stored at the end of it. + It can be used as [non-modifying method](https://docs.ton.org/develop/func/statements#non-modifying-methods). + + All the primitives below first check whether there is enough space in the `builder`, + and only then check the range of the value being serialized. +-} + +;;; Creates a new empty `builder`. +builder begin_cell() asm "NEWC"; + +;;; Converts a `builder` into an ordinary `cell`. +cell end_cell(builder b) asm "ENDC"; + +;;; Stores a reference to `cell` [c] into `builder` [b]. +builder store_ref(builder b, cell c) asm(c b) "STREF"; + +;;; Stores an unsigned [len]-bit integer `x` into `b` for `0 ≤ len ≤ 256`. +;; builder store_uint(builder b, int x, int len) asm(x b len) "STUX"; + +;;; Stores a signed [len]-bit integer `x` into `b` for` 0 ≤ len ≤ 257`. +;; builder store_int(builder b, int x, int len) asm(x b len) "STIX"; + + +;;; Stores `slice` [s] into `builder` [b] +builder store_slice(builder b, slice s) asm "STSLICER"; + +;;; Stores (serializes) an integer [x] in the range `0..2^120 − 1` into `builder` [b]. +;;; The serialization of [x] consists of a 4-bit unsigned big-endian integer `l`, +;;; which is the smallest integer `l ≥ 0`, such that `x < 2^8l`, +;;; followed by an `8l`-bit unsigned big-endian representation of [x]. +;;; If [x] does not belong to the supported range, a range check exception is thrown. +;;; +;;; Store amounts of TonCoins to the builder as VarUInteger 16 +builder store_grams(builder b, int x) asm "STGRAMS"; +builder store_coins(builder b, int x) asm "STGRAMS"; + +;;; Stores dictionary `D` represented by `cell` [c] or `null` into `builder` [b]. +;;; In other words, stores a `1`-bit and a reference to [c] if [c] is not `null` and `0`-bit otherwise. +builder store_dict(builder b, cell c) asm(c b) "STDICT"; + +;;; Stores (Maybe ^Cell) to builder: +;;; if cell is null store 1 zero bit +;;; otherwise store 1 true bit and ref to cell +builder store_maybe_ref(builder b, cell c) asm(c b) "STOPTREF"; + + +{- + # Address manipulation primitives + The address manipulation primitives listed below serialize and deserialize values according to the following TL-B scheme: + ```TL-B + addr_none$00 = MsgAddressExt; + addr_extern$01 len:(## 8) external_address:(bits len) + = MsgAddressExt; + anycast_info$_ depth:(#<= 30) { depth >= 1 } + rewrite_pfx:(bits depth) = Anycast; + addr_std$10 anycast:(Maybe Anycast) + workchain_id:int8 address:bits256 = MsgAddressInt; + addr_var$11 anycast:(Maybe Anycast) addr_len:(## 9) + workchain_id:int32 address:(bits addr_len) = MsgAddressInt; + _ _:MsgAddressInt = MsgAddress; + _ _:MsgAddressExt = MsgAddress; + + int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool + src:MsgAddress dest:MsgAddressInt + value:CurrencyCollection ihr_fee:Grams fwd_fee:Grams + created_lt:uint64 created_at:uint32 = CommonMsgInfoRelaxed; + ext_out_msg_info$11 src:MsgAddress dest:MsgAddressExt + created_lt:uint64 created_at:uint32 = CommonMsgInfoRelaxed; + ``` + A deserialized `MsgAddress` is represented by a tuple `t` as follows: + + - `addr_none` is represented by `t = (0)`, + i.e., a tuple containing exactly one integer equal to zero. + - `addr_extern` is represented by `t = (1, s)`, + where slice `s` contains the field `external_address`. In other words, ` + t` is a pair (a tuple consisting of two entries), containing an integer equal to one and slice `s`. + - `addr_std` is represented by `t = (2, u, x, s)`, + where `u` is either a `null` (if `anycast` is absent) or a slice `s'` containing `rewrite_pfx` (if anycast is present). + Next, integer `x` is the `workchain_id`, and slice `s` contains the address. + - `addr_var` is represented by `t = (3, u, x, s)`, + where `u`, `x`, and `s` have the same meaning as for `addr_std`. +-} + +;;; Loads from slice [s] the only prefix that is a valid `MsgAddress`, +;;; and returns both this prefix `s'` and the remainder `s''` of [s] as slices. +(slice, slice) load_msg_addr(slice s) asm( -> 1 0) "LDMSGADDR"; + +;;; Decomposes slice [s] containing a valid `MsgAddress` into a `tuple t` with separate fields of this `MsgAddress`. +;;; If [s] is not a valid `MsgAddress`, a cell deserialization exception is thrown. +tuple parse_addr(slice s) asm "PARSEMSGADDR"; + +;;; Parses slice [s] containing a valid `MsgAddressInt` (usually a `msg_addr_std`), +;;; applies rewriting from the anycast (if present) to the same-length prefix of the address, +;;; and returns both the workchain and the 256-bit address as integers. +;;; If the address is not 256-bit, or if [s] is not a valid serialization of `MsgAddressInt`, +;;; throws a cell deserialization exception. +(int, int) parse_std_addr(slice s) asm "REWRITESTDADDR"; + +;;; A variant of [parse_std_addr] that returns the (rewritten) address as a slice [s], +;;; even if it is not exactly 256 bit long (represented by a `msg_addr_var`). +(int, slice) parse_var_addr(slice s) asm "REWRITEVARADDR"; + +{- + # Dictionary primitives +-} + + +;;; Sets the value associated with [key_len]-bit key signed index in dictionary [dict] to [value] (cell), +;;; and returns the resulting dictionary. +cell idict_set_ref(cell dict, int key_len, int index, cell value) asm(value index dict key_len) "DICTISETREF"; +(cell, ()) ~idict_set_ref(cell dict, int key_len, int index, cell value) asm(value index dict key_len) "DICTISETREF"; + +;;; Sets the value associated with [key_len]-bit key unsigned index in dictionary [dict] to [value] (cell), +;;; and returns the resulting dictionary. +cell udict_set_ref(cell dict, int key_len, int index, cell value) asm(value index dict key_len) "DICTUSETREF"; +(cell, ()) ~udict_set_ref(cell dict, int key_len, int index, cell value) asm(value index dict key_len) "DICTUSETREF"; + +cell idict_get_ref(cell dict, int key_len, int index) asm(index dict key_len) "DICTIGETOPTREF"; +(cell, int) idict_get_ref?(cell dict, int key_len, int index) asm(index dict key_len) "DICTIGETREF" "NULLSWAPIFNOT"; +(cell, int) udict_get_ref?(cell dict, int key_len, int index) asm(index dict key_len) "DICTUGETREF" "NULLSWAPIFNOT"; +(cell, cell) idict_set_get_ref(cell dict, int key_len, int index, cell value) asm(value index dict key_len) "DICTISETGETOPTREF"; +(cell, cell) udict_set_get_ref(cell dict, int key_len, int index, cell value) asm(value index dict key_len) "DICTUSETGETOPTREF"; +(cell, int) idict_delete?(cell dict, int key_len, int index) asm(index dict key_len) "DICTIDEL"; +(cell, int) udict_delete?(cell dict, int key_len, int index) asm(index dict key_len) "DICTUDEL"; +(slice, int) idict_get?(cell dict, int key_len, int index) asm(index dict key_len) "DICTIGET" "NULLSWAPIFNOT"; +(slice, int) udict_get?(cell dict, int key_len, int index) asm(index dict key_len) "DICTUGET" "NULLSWAPIFNOT"; +(cell, slice, int) idict_delete_get?(cell dict, int key_len, int index) asm(index dict key_len) "DICTIDELGET" "NULLSWAPIFNOT"; +(cell, slice, int) udict_delete_get?(cell dict, int key_len, int index) asm(index dict key_len) "DICTUDELGET" "NULLSWAPIFNOT"; +(cell, (slice, int)) ~idict_delete_get?(cell dict, int key_len, int index) asm(index dict key_len) "DICTIDELGET" "NULLSWAPIFNOT"; +(cell, (slice, int)) ~udict_delete_get?(cell dict, int key_len, int index) asm(index dict key_len) "DICTUDELGET" "NULLSWAPIFNOT"; +cell udict_set(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTUSET"; +(cell, ()) ~udict_set(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTUSET"; +cell idict_set(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTISET"; +(cell, ()) ~idict_set(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTISET"; +cell dict_set(cell dict, int key_len, slice index, slice value) asm(value index dict key_len) "DICTSET"; +(cell, ()) ~dict_set(cell dict, int key_len, slice index, slice value) asm(value index dict key_len) "DICTSET"; +(cell, int) udict_add?(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTUADD"; +(cell, int) udict_replace?(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTUREPLACE"; +(cell, int) idict_add?(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTIADD"; +(cell, int) idict_replace?(cell dict, int key_len, int index, slice value) asm(value index dict key_len) "DICTIREPLACE"; +cell udict_set_builder(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTUSETB"; +(cell, ()) ~udict_set_builder(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTUSETB"; +cell idict_set_builder(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTISETB"; +(cell, ()) ~idict_set_builder(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTISETB"; +cell dict_set_builder(cell dict, int key_len, slice index, builder value) asm(value index dict key_len) "DICTSETB"; +(cell, ()) ~dict_set_builder(cell dict, int key_len, slice index, builder value) asm(value index dict key_len) "DICTSETB"; +(cell, int) udict_add_builder?(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTUADDB"; +(cell, int) udict_replace_builder?(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTUREPLACEB"; +(cell, int) idict_add_builder?(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTIADDB"; +(cell, int) idict_replace_builder?(cell dict, int key_len, int index, builder value) asm(value index dict key_len) "DICTIREPLACEB"; +(cell, int, slice, int) udict_delete_get_min(cell dict, int key_len) asm(-> 0 2 1 3) "DICTUREMMIN" "NULLSWAPIFNOT2"; +(cell, (int, slice, int)) ~udict::delete_get_min(cell dict, int key_len) asm(-> 0 2 1 3) "DICTUREMMIN" "NULLSWAPIFNOT2"; +(cell, int, slice, int) idict_delete_get_min(cell dict, int key_len) asm(-> 0 2 1 3) "DICTIREMMIN" "NULLSWAPIFNOT2"; +(cell, (int, slice, int)) ~idict::delete_get_min(cell dict, int key_len) asm(-> 0 2 1 3) "DICTIREMMIN" "NULLSWAPIFNOT2"; +(cell, slice, slice, int) dict_delete_get_min(cell dict, int key_len) asm(-> 0 2 1 3) "DICTREMMIN" "NULLSWAPIFNOT2"; +(cell, (slice, slice, int)) ~dict::delete_get_min(cell dict, int key_len) asm(-> 0 2 1 3) "DICTREMMIN" "NULLSWAPIFNOT2"; +(cell, int, slice, int) udict_delete_get_max(cell dict, int key_len) asm(-> 0 2 1 3) "DICTUREMMAX" "NULLSWAPIFNOT2"; +(cell, (int, slice, int)) ~udict::delete_get_max(cell dict, int key_len) asm(-> 0 2 1 3) "DICTUREMMAX" "NULLSWAPIFNOT2"; +(cell, int, slice, int) idict_delete_get_max(cell dict, int key_len) asm(-> 0 2 1 3) "DICTIREMMAX" "NULLSWAPIFNOT2"; +(cell, (int, slice, int)) ~idict::delete_get_max(cell dict, int key_len) asm(-> 0 2 1 3) "DICTIREMMAX" "NULLSWAPIFNOT2"; +(cell, slice, slice, int) dict_delete_get_max(cell dict, int key_len) asm(-> 0 2 1 3) "DICTREMMAX" "NULLSWAPIFNOT2"; +(cell, (slice, slice, int)) ~dict::delete_get_max(cell dict, int key_len) asm(-> 0 2 1 3) "DICTREMMAX" "NULLSWAPIFNOT2"; +(int, slice, int) udict_get_min?(cell dict, int key_len) asm (-> 1 0 2) "DICTUMIN" "NULLSWAPIFNOT2"; +(int, slice, int) udict_get_max?(cell dict, int key_len) asm (-> 1 0 2) "DICTUMAX" "NULLSWAPIFNOT2"; +(int, cell, int) udict_get_min_ref?(cell dict, int key_len) asm (-> 1 0 2) "DICTUMINREF" "NULLSWAPIFNOT2"; +(int, cell, int) udict_get_max_ref?(cell dict, int key_len) asm (-> 1 0 2) "DICTUMAXREF" "NULLSWAPIFNOT2"; +(int, slice, int) idict_get_min?(cell dict, int key_len) asm (-> 1 0 2) "DICTIMIN" "NULLSWAPIFNOT2"; +(int, slice, int) idict_get_max?(cell dict, int key_len) asm (-> 1 0 2) "DICTIMAX" "NULLSWAPIFNOT2"; +(int, cell, int) idict_get_min_ref?(cell dict, int key_len) asm (-> 1 0 2) "DICTIMINREF" "NULLSWAPIFNOT2"; +(int, cell, int) idict_get_max_ref?(cell dict, int key_len) asm (-> 1 0 2) "DICTIMAXREF" "NULLSWAPIFNOT2"; +(int, slice, int) udict_get_next?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTUGETNEXT" "NULLSWAPIFNOT2"; +(int, slice, int) udict_get_nexteq?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTUGETNEXTEQ" "NULLSWAPIFNOT2"; +(int, slice, int) udict_get_prev?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTUGETPREV" "NULLSWAPIFNOT2"; +(int, slice, int) udict_get_preveq?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTUGETPREVEQ" "NULLSWAPIFNOT2"; +(int, slice, int) idict_get_next?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTIGETNEXT" "NULLSWAPIFNOT2"; +(int, slice, int) idict_get_nexteq?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTIGETNEXTEQ" "NULLSWAPIFNOT2"; +(int, slice, int) idict_get_prev?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTIGETPREV" "NULLSWAPIFNOT2"; +(int, slice, int) idict_get_preveq?(cell dict, int key_len, int pivot) asm(pivot dict key_len -> 1 0 2) "DICTIGETPREVEQ" "NULLSWAPIFNOT2"; + +;;; Creates an empty dictionary, which is actually a null value. Equivalent to PUSHNULL +cell new_dict() asm "NEWDICT"; +;;; Checks whether a dictionary is empty. Equivalent to cell_null?. +int dict_empty?(cell c) asm "DICTEMPTY"; + + +{- Prefix dictionary primitives -} +(slice, slice, slice, int) pfxdict_get?(cell dict, int key_len, slice key) asm(key dict key_len) "PFXDICTGETQ" "NULLSWAPIFNOT2"; +(cell, int) pfxdict_set?(cell dict, int key_len, slice key, slice value) asm(value key dict key_len) "PFXDICTSET"; +(cell, int) pfxdict_delete?(cell dict, int key_len, slice key) asm(key dict key_len) "PFXDICTDEL"; + +;;; Returns the value of the global configuration parameter with integer index `i` as a `cell` or `null` value. +cell config_param(int x) asm "CONFIGOPTPARAM"; +;;; Checks whether c is a null. Note, that FunC also has polymorphic null? built-in. +int cell_null?(cell c) asm "ISNULL"; + +;;; Creates an output action which would reserve exactly amount nanotoncoins (if mode = 0), at most amount nanotoncoins (if mode = 2), or all but amount nanotoncoins (if mode = 1 or mode = 3), from the remaining balance of the account. It is roughly equivalent to creating an outbound message carrying amount nanotoncoins (or b − amount nanotoncoins, where b is the remaining balance) to oneself, so that the subsequent output actions would not be able to spend more money than the remainder. Bit +2 in mode means that the external action does not fail if the specified amount cannot be reserved; instead, all remaining balance is reserved. Bit +8 in mode means `amount <- -amount` before performing any further actions. Bit +4 in mode means that amount is increased by the original balance of the current account (before the compute phase), including all extra currencies, before performing any other checks and actions. Currently, amount must be a non-negative integer, and mode must be in the range 0..15. +() raw_reserve(int amount, int mode) impure asm "RAWRESERVE"; +;;; Similar to raw_reserve, but also accepts a dictionary extra_amount (represented by a cell or null) with extra currencies. In this way currencies other than TonCoin can be reserved. +() raw_reserve_extra(int amount, cell extra_amount, int mode) impure asm "RAWRESERVEX"; +;;; Sends a raw message contained in msg, which should contain a correctly serialized object Message X, with the only exception that the source address is allowed to have dummy value addr_none (to be automatically replaced with the current smart contract address), and ihr_fee, fwd_fee, created_lt and created_at fields can have arbitrary values (to be rewritten with correct values during the action phase of the current transaction). Integer parameter mode contains the flags. Currently mode = 0 is used for ordinary messages; mode = 128 is used for messages that are to carry all the remaining balance of the current smart contract (instead of the value originally indicated in the message); mode = 64 is used for messages that carry all the remaining value of the inbound message in addition to the value initially indicated in the new message (if bit 0 is not set, the gas fees are deducted from this amount); mode' = mode + 1 means that the sender wants to pay transfer fees separately; mode' = mode + 2 means that any errors arising while processing this message during the action phase should be ignored. Finally, mode' = mode + 32 means that the current account must be destroyed if its resulting balance is zero. This flag is usually employed together with +128. +() send_raw_message(cell msg, int mode) impure asm "SENDRAWMSG"; +;;; Creates an output action that would change this smart contract code to that given by cell new_code. Notice that this change will take effect only after the successful termination of the current run of the smart contract +() set_code(cell new_code) impure asm "SETCODE"; + +;;; Generates a new pseudo-random unsigned 256-bit integer x. The algorithm is as follows: if r is the old value of the random seed, considered as a 32-byte array (by constructing the big-endian representation of an unsigned 256-bit integer), then its sha512(r) is computed; the first 32 bytes of this hash are stored as the new value r' of the random seed, and the remaining 32 bytes are returned as the next random value x. +int random() impure asm "RANDU256"; +;;; Generates a new pseudo-random integer z in the range 0..range−1 (or range..−1, if range < 0). More precisely, an unsigned random value x is generated as in random; then z := x * range / 2^256 is computed. +int rand(int range) impure asm "RAND"; +;;; Returns the current random seed as an unsigned 256-bit Integer. +int get_seed() impure asm "RANDSEED"; +;;; Sets the random seed to unsigned 256-bit seed. +() set_seed(int) impure asm "SETRAND"; +;;; Mixes unsigned 256-bit integer x into the random seed r by setting the random seed to sha256 of the concatenation of two 32-byte strings: the first with the big-endian representation of the old seed r, and the second with the big-endian representation of x. +() randomize(int x) impure asm "ADDRAND"; +;;; Equivalent to randomize(cur_lt());. +() randomize_lt() impure asm "LTIME" "ADDRAND"; + +;;; Checks whether the data parts of two slices coinside +int equal_slice_bits (slice a, slice b) asm "SDEQ"; + +;;; Concatenates two builders +builder store_builder(builder to, builder from) asm "STBR"; diff --git a/server/src/e2e/FunC/testcases/impure-inspection/Inspection.test b/server/src/e2e/FunC/testcases/impure-inspection/Inspection.test new file mode 100644 index 00000000..ccbb1c50 --- /dev/null +++ b/server/src/e2e/FunC/testcases/impure-inspection/Inspection.test @@ -0,0 +1,473 @@ +======================================================================== +Should drop non-impure call if no result is returned +======================================================================== +() bar(int a) { + throw(a); +} + +(int) foo() { + bar(42); + return 123; +} +------------------------------------------------------------------------ +5:4 to 5:11 + + +======================================================================== +Should not drop explicitly impure call +======================================================================== +() bar(int a) impure { + throw(a); +} + +(int) foo() { + bar(42); + return 123; +} +------------------------------------------------------------------------ +no issues + +======================================================================== +If function has return value, but it is not used, should drop call +======================================================================== +(int) bar(int a) { + return a * a; +} + +(int) foo() impure { + bar(42); + return 43; +} +------------------------------------------------------------------------ +5:4 to 5:11 + +======================================================================== +If return value is used in impure constructs, should not drop call +======================================================================== +(int) bar(int a) { + return a * a; +} + +() used_in_if() { + var a = bar(100); + if(a) { + } +} + +() used_in_while() { + var a = bar(100); + while(a > 0) { + a = a - 1; + } +} + +() used_in_do_while() { + var a = bar(100); + do { + a = a - 1; + } until(a > 0); +} + +() used_in_repeat() { + var b = 2; + var a = bar(100); + repeat(a){ + b = b * b; + } +} +(int) used_in_return() { + var a = bar(100); + return a; +} +------------------------------------------------------------------------ +no issues + +======================================================================== +If result is used only in block expr of conditional construct, shouldn't be exampt from impure +======================================================================== +(int) bar(int a) { + return a * a; +} + +() used_in_if() { + var b = true; + var a = bar(100); + if(b) { + a = a + 1; + } +} + +() used_in_while() { + var b = true; + var a = bar(100); + + while(b) { + a = a + 1; + } +} + +() used_in_do_while() { + var b = true; + var a = bar(100); + do { + a = a + 1; + } until(b); +} + +() used_in_repeat() { + var b = 2; + var a = bar(100); + repeat(b){ + a = a * a; + } +} +------------------------------------------------------------------------ +6:12 to 6:20 +14:12 to 14:20 +23:12 to 23:20 +31:12 to 31:20 + +======================================================================== +Should drop if non-impure call to stdlib function is made and result is not used +======================================================================== + +(int) not_bound(slice addr) { + parse_std_addr(addr); +} + +() bound_not_used(slice addr) { + var (wc, hash) = parse_std_addr(addr); +} + +() bound_and_used(slice addr) { + var (wc, hash) = parse_std_addr(addr); + throw_if(42, wc == -1); +} +------------------------------------------------------------------------ +1:4 to 1:24 +5:21 to 5:41 + +======================================================================== +Should not drop call if result is referenced in impure call +======================================================================== +() check_wc(int a) impure { + throw_unless(42, a == 0); +} + +() test_func_call(slice test_addr) { + var (wc, hash) = parse_std_addr(test_addr); + check_wc(wc); +} +() test_method_call(slice test_addr) { + var (wc, hash) = parse_std_addr(test_addr); + wc.check_wc(); +} +() test_mod_method_call(slice test_addr) { + var (wc, hash) = parse_std_addr(test_addr); + wc~check_wc(); +} +------------------------------------------------------------------------ +no issues + +======================================================================== +Should drop call if only result reference is in non-impure call +======================================================================== +() check_wc(int a) { + throw_unless(42, a == 0); +} +() test_func_call(slice test_addr) { + var (wc, hash) = parse_std_addr(test_addr); + check_wc(wc); +} +() test_method_call(slice test_addr) { + var (wc, hash) = parse_std_addr(test_addr); + wc.check_wc(); +} +() test_mod_method_call(slice test_addr) { + var (wc, hash) = parse_std_addr(test_addr); + wc~check_wc(); +} +------------------------------------------------------------------------ +4:21 to 4:46 +5:4 to 5:16 +8:21 to 8:46 +9:6 to 9:17 +12:21 to 12:46 +13:6 to 13:17 + + +======================================================================== +Should not drop result if it is used in impure built-in +======================================================================== +(int) bar(int a) { + return a * a; +} + +(int) throw_case() { + int foo = bar(); + throw(foo); +} + +(int) throw_if_case() { + int foo = bar(); + throw_if(42, foo); +} + +(int) throw_unless_case() { + int foo = bar(); + throw_unless(42, foo); +} +(int) dump_case() { + int foo = bar(); + foo~dump(); +} + +------------------------------------------------------------------------ +no issues + + + + +======================================================================== +Should correctly identify bindings in nested tensor var declaration +======================================================================== +(int, int) bar() { + return (42, 84); +} + +(int) foo() { + return (42) +} +(int) drop_foo() { + var ((a, b), c) = (bar(), foo()); + return a; +} +(int) drop_bar() { + var ((a, b), c) = (bar(), foo()); + return c; +} +------------------------------------------------------------------------ +8:30 to 8:35 +12:23 to 12:28 + +======================================================================== +Should correctly identify bindings in nested tensor explicit type declaration +======================================================================== +(int, int) bar() { + return (42, 84); +} + +(int) foo() { + return (42) +} +(int) drop_foo() { + ((int a, int b), int c) = (bar(), foo()); + return b; +} +(int) drop_bar() { + ((int a, int b), int c) = (bar(), foo()); + return c; +} +------------------------------------------------------------------------ +8:38 to 8:43 +12:31 to 12:36 + +======================================================================== +Should correctly identify bindings in nested tensor expression assignment +======================================================================== +(int, int) bar() { + return (42, 84); +} + +(int) foo() { + return (42) +} + +(int) drop_foo(int a, int b, int c) { + ((a, b), c) = (bar(), foo()); + return b; +} + +(int) drop_bar(int a, int b, int c) { + ((a, b), c) = (bar(), foo()); + return c; +} +------------------------------------------------------------------------ +9:26 to 9:31 +14:19 to 14:24 + +======================================================================== +Should correctly identify bindings in generic (forall) declarations +======================================================================== +forall X, Y -> (X, Y) bar() { + return (42, 84); +} + +forall X -> (X) foo() { + return (42) +} + +(int) drop_foo(int a, int b, int c) { + ((a, b), c) = (bar(), foo()); + return b; +} + +(int) drop_bar(int a, int b, int c) { + ((a, b), c) = (bar(), foo()); + return c; +} +------------------------------------------------------------------------ +9:26 to 9:31 +14:19 to 14:24 + + +======================================================================== +Should drop call if result is dropped via _ +======================================================================== +(int, int) bar() { + return (42, 84); +} +(int) foo() { + return (42) +} + +(int) drop_foo(int a, int b, int c) { + ((a, b), _) = (bar(), foo()); + return b; +} + +(int) drop_bar(int a, int b, int c) { + ((_, _), c) = (bar(), foo()); + return c; +} +------------------------------------------------------------------------ +8:26 to 8:31 +13:19 to 13:24 + +======================================================================== +Should correctly identify bindings in nested tuple assignment +======================================================================== +[int, int] bar(int a) { + return [a * 42, a * 84]; +} + +[int, int] foo() { + return 42 +} +(int) drop_foo() { + var ([a, b], [c, d]) = [bar(), foo()]; + return b; +} +(int) drop_bar() { + var ([a, b], [c, d]) = [bar(), foo()]; + return c; +} +------------------------------------------------------------------------ +8:35 to 8:40 +12:28 to 12:33 + +======================================================================== +Should not drop if any element of complex tensor is referenced +======================================================================== +() foo(int a, int, b) impure { + throw(a * b); +} + +(int, [int, cell, (int, int)]) bar(int a) { + return (a * 42, begin_cell().store_uint(a, 32).end_cell(), (a * 84, a *a)); +} + +() main() { + var (a, [b, c, d]) = bar(42); + ;; d should bound to (int, int) tensor + foo(d); +} +------------------------------------------------------------------------ +no issues + +======================================================================== +Should correctly bind return in modifying method call +======================================================================== +(int, (int, int)) ~powa(int a) { + var b = a * a; + return (b, (b * a, b * b)) +} + +(int) foo() { + return (42) +} + +(int) used_ret() { + var a = foo(); + (int c, int d) = a~powa(); + return d; ;; Used, shouldn't drop +} + +(int) used_modifier() { + var a = foo(); + (int c, int d) =a~powa(); + return a; ;; Used, shouldn't drop +} +------------------------------------------------------------------------ +no issues + +======================================================================== +Should drop if none of modifyint method resulst are used +======================================================================== +(int, (int, int)) ~powa(int a) { + var b = a * a; + return (b, (b * a, b * b)) +} + +(int) foo() { + return (42) +} + +(int) not_used() { + var a = 42; + (int c, int d) = a~powa(); + return foo(); +} + +------------------------------------------------------------------------ +11:22 to 11:29 + +======================================================================== +Should not drop if chain of non-modifying method calls result is used +======================================================================== +;; Note store ops are impure +(cell) build_payload(int a) { + cell res = begin_cell().store_ref( + begin_cell().store_uint(12345, 32).store_uint(a, 64).end_cell() + ).end_cell(); + return res; +} + +------------------------------------------------------------------------ +no issues + +======================================================================== +Should not drop if result if used in multi-assingment logic +======================================================================== + +(int) foo(int a) { + return a * a; +} + +(cell) bar(int a, int b) { + return begin_cell().store_uint(a, 32).store_uint(b, 64).end_cell(); +} + +(cell) main() { + int c; + var a = foo(42); + var b = a + 100; + if(b > 10) { + c = bar(a, b); + } + return c; +} + +------------------------------------------------------------------------ +no issues + From 2d3742c333a8d95409ebc6535aaa8d3bdd201419 Mon Sep 17 00:00:00 2001 From: Trinketer22 Date: Wed, 12 Nov 2025 23:30:10 +0300 Subject: [PATCH 32/32] Revert "Grammar build" This reverts commit 84d8cefbcf7177efdd014099d338b66db5578492. Since theese files are dropped in master --- .../func/tree-sitter-func/src/grammar.json | 487 +- .../func/tree-sitter-func/src/node-types.json | 961 +- .../func/tree-sitter-func/src/parser.c | 18269 ++++++++-------- 3 files changed, 9286 insertions(+), 10431 deletions(-) diff --git a/server/src/languages/func/tree-sitter-func/src/grammar.json b/server/src/languages/func/tree-sitter-func/src/grammar.json index 40023d19..2f2a5a0e 100644 --- a/server/src/languages/func/tree-sitter-func/src/grammar.json +++ b/server/src/languages/func/tree-sitter-func/src/grammar.json @@ -348,7 +348,7 @@ "name": "name", "content": { "type": "SYMBOL", - "name": "function_name" + "name": "identifier" } }, { @@ -979,8 +979,16 @@ "name": "_expression" }, { - "type": "STRING", - "value": ";" + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "BLANK" + } + ] } ] } @@ -1222,7 +1230,7 @@ "name": "_expr10" }, "_expr10": { - "type": "PREC_RIGHT", + "type": "PREC", "value": 10, "content": { "type": "SEQ", @@ -1324,64 +1332,44 @@ ] } }, - "ternary_condition": { - "type": "SYMBOL", - "name": "_expr15" - }, - "ternary_expression": { - "type": "PREC_RIGHT", - "value": 13, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "SYMBOL", - "name": "ternary_condition" - } - }, - { - "type": "STRING", - "value": "?" - }, - { - "type": "FIELD", - "name": "consequent", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "alternative", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - } - ] - } - }, "_expr13": { "type": "PREC", "value": 13, "content": { - "type": "CHOICE", + "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expr15" }, { - "type": "SYMBOL", - "name": "ternary_expression" + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "?" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_expr13" + } + ] + }, + { + "type": "BLANK" + } + ] } ] } @@ -1764,44 +1752,27 @@ ] } }, - "var_declaration": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type_hint" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } + "local_vars_declaration": { + "type": "PREC_DYNAMIC", + "value": 90, + "content": { + "type": "FIELD", + "name": "lhs", + "content": { + "type": "SYMBOL", + "name": "_var_declaration_lhs" } - ] + } }, - "nested_tensor_declaration": { + "tuple_vars_declaration": { "type": "PREC", - "value": 101, + "value": 100, "content": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "(" + "value": "[" }, { "type": "FIELD", @@ -1810,100 +1781,53 @@ "type": "SEQ", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "nested_tensor_declaration" - }, - { - "type": "SYMBOL", - "name": "var_declaration" - }, - { - "type": "SYMBOL", - "name": "tuple_vars_declaration" - }, - { - "type": "SYMBOL", - "name": "underscore" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "nested_tensor_declaration" - }, - { - "type": "SYMBOL", - "name": "var_declaration" - }, - { - "type": "SYMBOL", - "name": "tuple_vars_declaration" - }, - { - "type": "SYMBOL", - "name": "underscore" - } - ] - } - ] - } - } - ] + "type": "SYMBOL", + "name": "_var_declaration_lhs" }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_var_declaration_lhs" + } + ] + } } ] } }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", - "value": ")" + "value": "]" } ] } }, "tensor_vars_declaration": { "type": "PREC", - "value": 101, + "value": 100, "content": { "type": "SEQ", "members": [ - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_type_hint" - } - }, { "type": "STRING", "value": "(" @@ -1915,187 +1839,84 @@ "type": "SEQ", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "nested_tensor_declaration" - }, - { - "type": "SYMBOL", - "name": "var_declaration" - }, - { - "type": "SYMBOL", - "name": "tuple_vars_declaration" - }, - { - "type": "SYMBOL", - "name": "underscore" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "nested_tensor_declaration" - }, - { - "type": "SYMBOL", - "name": "var_declaration" - }, - { - "type": "SYMBOL", - "name": "tuple_vars_declaration" - }, - { - "type": "SYMBOL", - "name": "underscore" - } - ] - } - ] - } - } - ] + "type": "SYMBOL", + "name": "_var_declaration_lhs" }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_var_declaration_lhs" + } + ] + } } ] } }, - { - "type": "STRING", - "value": ")" - } - ] - } - }, - "_multiple_vars_declaration": { - "type": "PREC_LEFT", - "value": 90, - "content": { - "type": "SEQ", - "members": [ { "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "tensor_vars_declaration" + "type": "STRING", + "value": "," }, { - "type": "SYMBOL", - "name": "tuple_vars_declaration" + "type": "BLANK" } ] + }, + { + "type": "STRING", + "value": ")" } ] } }, - "local_vars_declaration": { - "type": "FIELD", - "name": "lhs", - "content": { - "type": "CHOICE", - "members": [ - { + "var_declaration": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { "type": "SYMBOL", - "name": "_multiple_vars_declaration" - }, - { + "name": "_type_hint" + } + }, + { + "type": "FIELD", + "name": "name", + "content": { "type": "SYMBOL", - "name": "var_declaration" + "name": "identifier" } - ] - } + } + ] }, - "tuple_vars_declaration": { - "type": "PREC", - "value": 101, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "FIELD", - "name": "vars", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "var_declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "var_declaration" - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - { - "type": "STRING", - "value": "]" - } - ] - } + "_var_declaration_lhs": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "tuple_vars_declaration" + }, + { + "type": "SYMBOL", + "name": "tensor_vars_declaration" + }, + { + "type": "SYMBOL", + "name": "var_declaration" + } + ] }, "type_expression": { "type": "PREC", @@ -2480,6 +2301,27 @@ { "type": "SYMBOL", "name": "tuple_type" + }, + { + "type": "SYMBOL", + "name": "_parenthesized_type" + } + ] + }, + "_parenthesized_type": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_type_hint" + }, + { + "type": "STRING", + "value": ")" } ] }, @@ -2546,7 +2388,7 @@ "name": "_type_hint" }, { - "type": "REPEAT", + "type": "REPEAT1", "content": { "type": "SEQ", "members": [ @@ -2715,10 +2557,6 @@ "type": "STRING", "value": "_" }, - "function_name": { - "type": "PATTERN", - "value": "(`.*`)|((\\.|~)?(([$%a-zA-Z0-9_](\\w|['?:$%!])+)|([a-zA-Z%$])))" - }, "comment": { "type": "TOKEN", "content": { @@ -2803,8 +2641,7 @@ ["parameter_list_relaxed", "hole_type"], ["parameter_list_relaxed", "parameter_list"], ["tensor_expression", "tensor_type"], - ["typed_tuple", "tuple_type"], - ["var_declaration", "type_identifier"] + ["typed_tuple", "tuple_type"] ], "precedences": [], "externals": [], diff --git a/server/src/languages/func/tree-sitter-func/src/node-types.json b/server/src/languages/func/tree-sitter-func/src/node-types.json index 45e36ecf..97a5c07f 100644 --- a/server/src/languages/func/tree-sitter-func/src/node-types.json +++ b/server/src/languages/func/tree-sitter-func/src/node-types.json @@ -143,6 +143,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -187,6 +191,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -255,10 +263,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -322,9 +326,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "function_type", "named": true @@ -411,10 +423,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -520,6 +528,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -564,6 +576,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -632,10 +648,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -733,10 +745,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -843,7 +851,7 @@ "required": true, "types": [ { - "type": "function_name", + "type": "identifier", "named": true } ] @@ -863,9 +871,17 @@ ] }, "return_type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "function_type", "named": true @@ -972,9 +988,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "function_type", "named": true @@ -1106,6 +1130,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -1150,6 +1178,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -1234,10 +1266,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -1344,6 +1372,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -1388,6 +1420,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -1456,10 +1492,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -1641,38 +1673,6 @@ } } }, - { - "type": "nested_tensor_declaration", - "named": true, - "fields": { - "vars": { - "multiple": true, - "required": true, - "types": [ - { - "type": ",", - "named": false - }, - { - "type": "nested_tensor_declaration", - "named": true - }, - { - "type": "tuple_vars_declaration", - "named": true - }, - { - "type": "underscore", - "named": true - }, - { - "type": "var_declaration", - "named": true - } - ] - } - } - }, { "type": "number_literal", "named": true, @@ -1707,9 +1707,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "function_type", "named": true @@ -1831,10 +1839,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -1963,6 +1967,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -2007,6 +2015,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -2075,10 +2087,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -2171,10 +2179,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -2313,6 +2317,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -2357,6 +2365,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -2425,10 +2437,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -2485,6 +2493,14 @@ "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": ",", "named": false @@ -2525,10 +2541,76 @@ "type": "tensor_vars_declaration", "named": true, "fields": { - "type": { + "vars": { + "multiple": true, + "required": true, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "tensor_vars_declaration", + "named": true + }, + { + "type": "tuple_vars_declaration", + "named": true + }, + { + "type": "var_declaration", + "named": true + } + ] + } + } + }, + { + "type": "try_catch_statement", + "named": true, + "fields": { + "body": { "multiple": false, "required": true, "types": [ + { + "type": "block_statement", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "catch_clause", + "named": true + } + ] + } + }, + { + "type": "tuple_type", + "named": true, + "fields": { + "types": { + "multiple": true, + "required": false, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": ",", + "named": false + }, { "type": "function_type", "named": true @@ -2558,7 +2640,13 @@ "named": true } ] - }, + } + } + }, + { + "type": "tuple_vars_declaration", + "named": true, + "fields": { "vars": { "multiple": true, "required": true, @@ -2568,17 +2656,13 @@ "named": false }, { - "type": "nested_tensor_declaration", + "type": "tensor_vars_declaration", "named": true }, { "type": "tuple_vars_declaration", "named": true }, - { - "type": "underscore", - "named": true - }, { "type": "var_declaration", "named": true @@ -2588,651 +2672,46 @@ } }, { - "type": "ternary_condition", + "type": "type_identifier", "named": true, "fields": {}, "children": { - "multiple": true, + "multiple": false, "required": false, "types": [ { - "type": "function_application", - "named": true - }, - { - "type": "identifier", + "type": "type_identifier", "named": true - }, + } + ] + } + }, + { + "type": "type_parameter", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "type_identifier", + "named": true + } + ] + } + } + }, + { + "type": "type_parameters", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ { - "type": "local_vars_declaration", - "named": true - }, - { - "type": "method_call", - "named": true - }, - { - "type": "number_literal", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "slice_string_literal", - "named": true - }, - { - "type": "string_literal", - "named": true - }, - { - "type": "tensor_expression", - "named": true - }, - { - "type": "typed_tuple", - "named": true - }, - { - "type": "underscore", - "named": true - } - ] - } - }, - { - "type": "ternary_expression", - "named": true, - "fields": { - "alternative": { - "multiple": true, - "required": true, - "types": [ - { - "type": "!=", - "named": false - }, - { - "type": "%", - "named": false - }, - { - "type": "%=", - "named": false - }, - { - "type": "&", - "named": false - }, - { - "type": "&=", - "named": false - }, - { - "type": "*", - "named": false - }, - { - "type": "*=", - "named": false - }, - { - "type": "+", - "named": false - }, - { - "type": "+=", - "named": false - }, - { - "type": "-", - "named": false - }, - { - "type": "-=", - "named": false - }, - { - "type": "/", - "named": false - }, - { - "type": "/%", - "named": false - }, - { - "type": "/=", - "named": false - }, - { - "type": "<", - "named": false - }, - { - "type": "<<", - "named": false - }, - { - "type": "<<=", - "named": false - }, - { - "type": "<=", - "named": false - }, - { - "type": "<=>", - "named": false - }, - { - "type": "=", - "named": false - }, - { - "type": "==", - "named": false - }, - { - "type": ">", - "named": false - }, - { - "type": ">=", - "named": false - }, - { - "type": ">>", - "named": false - }, - { - "type": ">>=", - "named": false - }, - { - "type": "^", - "named": false - }, - { - "type": "^%", - "named": false - }, - { - "type": "^%=", - "named": false - }, - { - "type": "^/", - "named": false - }, - { - "type": "^/=", - "named": false - }, - { - "type": "^=", - "named": false - }, - { - "type": "^>>", - "named": false - }, - { - "type": "^>>=", - "named": false - }, - { - "type": "function_application", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "local_vars_declaration", - "named": true - }, - { - "type": "method_call", - "named": true - }, - { - "type": "number_literal", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "slice_string_literal", - "named": true - }, - { - "type": "string_literal", - "named": true - }, - { - "type": "tensor_expression", - "named": true - }, - { - "type": "ternary_expression", - "named": true - }, - { - "type": "typed_tuple", - "named": true - }, - { - "type": "underscore", - "named": true - }, - { - "type": "|", - "named": false - }, - { - "type": "|=", - "named": false - }, - { - "type": "~", - "named": false - }, - { - "type": "~%", - "named": false - }, - { - "type": "~%=", - "named": false - }, - { - "type": "~/", - "named": false - }, - { - "type": "~/=", - "named": false - }, - { - "type": "~>>", - "named": false - }, - { - "type": "~>>=", - "named": false - } - ] - }, - "condition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ternary_condition", - "named": true - } - ] - }, - "consequent": { - "multiple": true, - "required": true, - "types": [ - { - "type": "!=", - "named": false - }, - { - "type": "%", - "named": false - }, - { - "type": "%=", - "named": false - }, - { - "type": "&", - "named": false - }, - { - "type": "&=", - "named": false - }, - { - "type": "*", - "named": false - }, - { - "type": "*=", - "named": false - }, - { - "type": "+", - "named": false - }, - { - "type": "+=", - "named": false - }, - { - "type": "-", - "named": false - }, - { - "type": "-=", - "named": false - }, - { - "type": "/", - "named": false - }, - { - "type": "/%", - "named": false - }, - { - "type": "/=", - "named": false - }, - { - "type": "<", - "named": false - }, - { - "type": "<<", - "named": false - }, - { - "type": "<<=", - "named": false - }, - { - "type": "<=", - "named": false - }, - { - "type": "<=>", - "named": false - }, - { - "type": "=", - "named": false - }, - { - "type": "==", - "named": false - }, - { - "type": ">", - "named": false - }, - { - "type": ">=", - "named": false - }, - { - "type": ">>", - "named": false - }, - { - "type": ">>=", - "named": false - }, - { - "type": "^", - "named": false - }, - { - "type": "^%", - "named": false - }, - { - "type": "^%=", - "named": false - }, - { - "type": "^/", - "named": false - }, - { - "type": "^/=", - "named": false - }, - { - "type": "^=", - "named": false - }, - { - "type": "^>>", - "named": false - }, - { - "type": "^>>=", - "named": false - }, - { - "type": "function_application", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "local_vars_declaration", - "named": true - }, - { - "type": "method_call", - "named": true - }, - { - "type": "number_literal", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "slice_string_literal", - "named": true - }, - { - "type": "string_literal", - "named": true - }, - { - "type": "tensor_expression", - "named": true - }, - { - "type": "ternary_expression", - "named": true - }, - { - "type": "typed_tuple", - "named": true - }, - { - "type": "underscore", - "named": true - }, - { - "type": "|", - "named": false - }, - { - "type": "|=", - "named": false - }, - { - "type": "~", - "named": false - }, - { - "type": "~%", - "named": false - }, - { - "type": "~%=", - "named": false - }, - { - "type": "~/", - "named": false - }, - { - "type": "~/=", - "named": false - }, - { - "type": "~>>", - "named": false - }, - { - "type": "~>>=", - "named": false - } - ] - } - } - }, - { - "type": "try_catch_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "block_statement", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "catch_clause", - "named": true - } - ] - } - }, - { - "type": "tuple_type", - "named": true, - "fields": { - "types": { - "multiple": true, - "required": false, - "types": [ - { - "type": ",", - "named": false - }, - { - "type": "function_type", - "named": true - }, - { - "type": "hole_type", - "named": true - }, - { - "type": "primitive_type", - "named": true - }, - { - "type": "tensor_type", - "named": true - }, - { - "type": "tuple_type", - "named": true - }, - { - "type": "type_identifier", - "named": true - }, - { - "type": "var_type", - "named": true - } - ] - } - } - }, - { - "type": "tuple_vars_declaration", - "named": true, - "fields": { - "vars": { - "multiple": true, - "required": true, - "types": [ - { - "type": ",", - "named": false - }, - { - "type": "var_declaration", - "named": true - } - ] - } - } - }, - { - "type": "type_identifier", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - } - }, - { - "type": "type_parameter", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - } - } - }, - { - "type": "type_parameters", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "type_parameter", + "type": "type_parameter", "named": true } ] @@ -3306,6 +2785,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -3350,6 +2833,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -3418,10 +2905,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -3485,9 +2968,17 @@ ] }, "type": { - "multiple": false, - "required": false, + "multiple": true, + "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "function_type", "named": true @@ -3594,6 +3085,10 @@ "type": "/=", "named": false }, + { + "type": ":", + "named": false + }, { "type": "<", "named": false @@ -3638,6 +3133,10 @@ "type": ">>=", "named": false }, + { + "type": "?", + "named": false + }, { "type": "^", "named": false @@ -3706,10 +3205,6 @@ "type": "tensor_expression", "named": true }, - { - "type": "ternary_expression", - "named": true - }, { "type": "typed_tuple", "named": true @@ -3999,10 +3494,6 @@ "type": "forall", "named": false }, - { - "type": "function_name", - "named": true - }, { "type": "global", "named": false diff --git a/server/src/languages/func/tree-sitter-func/src/parser.c b/server/src/languages/func/tree-sitter-func/src/parser.c index 8a61d1fd..e99d3ead 100644 --- a/server/src/languages/func/tree-sitter-func/src/parser.c +++ b/server/src/languages/func/tree-sitter-func/src/parser.c @@ -1,4 +1,4 @@ -/* Automatically @generated by tree-sitter v0.25.10 */ +/* Automatically @generated by tree-sitter v0.25.8 */ #include "tree_sitter/parser.h" @@ -7,16 +7,16 @@ #endif #define LANGUAGE_VERSION 15 -#define STATE_COUNT 440 -#define LARGE_STATE_COUNT 36 -#define SYMBOL_COUNT 184 +#define STATE_COUNT 402 +#define LARGE_STATE_COUNT 38 +#define SYMBOL_COUNT 180 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 99 +#define TOKEN_COUNT 98 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 27 #define MAX_ALIAS_SEQUENCE_LENGTH 8 #define MAX_RESERVED_WORD_SET_SIZE 0 -#define PRODUCTION_ID_COUNT 54 +#define PRODUCTION_ID_COUNT 49 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { @@ -116,93 +116,89 @@ enum ts_symbol_identifiers { sym_number_string_literal = 94, sym_slice_string_literal = 95, sym_underscore = 96, - sym_function_name = 97, - sym_comment = 98, - sym_source_file = 99, - sym__top_level_item = 100, - sym_import_directive = 101, - sym_pragma_directive = 102, - sym_global_var_declarations = 103, - sym_global_var_declaration = 104, - sym_constant_declarations = 105, - sym_constant_declaration = 106, - sym_constant_declaration_value = 107, - sym_function_declaration = 108, - sym_inline = 109, - sym_method_id = 110, - sym_specifiers_list = 111, - sym_type_parameters = 112, - sym_type_parameter = 113, - sym_parameter_list = 114, - sym_parameter_list_relaxed = 115, - sym_parameter_declaration = 116, - sym_asm_function_body = 117, - sym__statement = 118, - sym_return_statement = 119, - sym_block_statement = 120, - sym_expression_statement = 121, - sym_empty_statement = 122, - sym_repeat_statement = 123, - sym_if_statement = 124, - sym__if_statement_contents = 125, - sym_do_while_statement = 126, - sym_while_statement = 127, - sym_try_catch_statement = 128, - sym_catch_clause = 129, - sym__expression = 130, - sym__expr10 = 131, - sym_ternary_condition = 132, - sym_ternary_expression = 133, - sym__expr13 = 134, - sym__expr15 = 135, - sym__expr17 = 136, - sym__expr20 = 137, - sym__expr30 = 138, - sym__expr75 = 139, - sym__expr80 = 140, - sym_method_call = 141, - sym__expr90 = 142, - sym_function_application = 143, + sym_comment = 97, + sym_source_file = 98, + sym__top_level_item = 99, + sym_import_directive = 100, + sym_pragma_directive = 101, + sym_global_var_declarations = 102, + sym_global_var_declaration = 103, + sym_constant_declarations = 104, + sym_constant_declaration = 105, + sym_constant_declaration_value = 106, + sym_function_declaration = 107, + sym_inline = 108, + sym_method_id = 109, + sym_specifiers_list = 110, + sym_type_parameters = 111, + sym_type_parameter = 112, + sym_parameter_list = 113, + sym_parameter_list_relaxed = 114, + sym_parameter_declaration = 115, + sym_asm_function_body = 116, + sym__statement = 117, + sym_return_statement = 118, + sym_block_statement = 119, + sym_expression_statement = 120, + sym_empty_statement = 121, + sym_repeat_statement = 122, + sym_if_statement = 123, + sym__if_statement_contents = 124, + sym_do_while_statement = 125, + sym_while_statement = 126, + sym_try_catch_statement = 127, + sym_catch_clause = 128, + sym__expression = 129, + sym__expr10 = 130, + sym__expr13 = 131, + sym__expr15 = 132, + sym__expr17 = 133, + sym__expr20 = 134, + sym__expr30 = 135, + sym__expr75 = 136, + sym__expr80 = 137, + sym_method_call = 138, + sym__expr90 = 139, + sym_function_application = 140, + sym_local_vars_declaration = 141, + sym_tuple_vars_declaration = 142, + sym_tensor_vars_declaration = 143, sym_var_declaration = 144, - sym_nested_tensor_declaration = 145, - sym_tensor_vars_declaration = 146, - sym__multiple_vars_declaration = 147, - sym_local_vars_declaration = 148, - sym_tuple_vars_declaration = 149, - sym__nontype_expr100 = 150, - sym__expr100 = 151, - sym_parenthesized_expression = 152, - sym_tensor_expression = 153, - sym_typed_tuple = 154, - sym__type_hint = 155, - sym_function_type = 156, - sym__atomic_type = 157, - sym_primitive_type = 158, - sym_tensor_type = 159, - sym_tuple_type = 160, - sym_hole_type = 161, - sym_type_identifier = 162, - sym_number_literal = 163, - aux_sym_source_file_repeat1 = 164, - aux_sym_import_directive_repeat1 = 165, - aux_sym_global_var_declarations_repeat1 = 166, - aux_sym_constant_declarations_repeat1 = 167, - aux_sym_type_parameters_repeat1 = 168, - aux_sym_parameter_list_repeat1 = 169, - aux_sym_parameter_list_relaxed_repeat1 = 170, - aux_sym_asm_function_body_repeat1 = 171, - aux_sym_asm_function_body_repeat2 = 172, - aux_sym_asm_function_body_repeat3 = 173, - aux_sym_block_statement_repeat1 = 174, - aux_sym__expr17_repeat1 = 175, - aux_sym__expr20_repeat1 = 176, - aux_sym__expr30_repeat1 = 177, - aux_sym__expr80_repeat1 = 178, - aux_sym_function_application_repeat1 = 179, - aux_sym_nested_tensor_declaration_repeat1 = 180, - aux_sym_tuple_vars_declaration_repeat1 = 181, - aux_sym_tensor_expression_repeat1 = 182, - aux_sym_tensor_type_repeat1 = 183, + sym__var_declaration_lhs = 145, + sym__nontype_expr100 = 146, + sym__expr100 = 147, + sym_parenthesized_expression = 148, + sym_tensor_expression = 149, + sym_typed_tuple = 150, + sym__type_hint = 151, + sym_function_type = 152, + sym__atomic_type = 153, + sym__parenthesized_type = 154, + sym_primitive_type = 155, + sym_tensor_type = 156, + sym_tuple_type = 157, + sym_hole_type = 158, + sym_type_identifier = 159, + sym_number_literal = 160, + aux_sym_source_file_repeat1 = 161, + aux_sym_import_directive_repeat1 = 162, + aux_sym_global_var_declarations_repeat1 = 163, + aux_sym_constant_declarations_repeat1 = 164, + aux_sym_type_parameters_repeat1 = 165, + aux_sym_parameter_list_repeat1 = 166, + aux_sym_parameter_list_relaxed_repeat1 = 167, + aux_sym_asm_function_body_repeat1 = 168, + aux_sym_asm_function_body_repeat2 = 169, + aux_sym_asm_function_body_repeat3 = 170, + aux_sym_block_statement_repeat1 = 171, + aux_sym__expr17_repeat1 = 172, + aux_sym__expr20_repeat1 = 173, + aux_sym__expr30_repeat1 = 174, + aux_sym__expr80_repeat1 = 175, + aux_sym_function_application_repeat1 = 176, + aux_sym_tuple_vars_declaration_repeat1 = 177, + aux_sym_tensor_expression_repeat1 = 178, + aux_sym_tensor_type_repeat1 = 179, }; static const char * const ts_symbol_names[] = { @@ -303,7 +299,6 @@ static const char * const ts_symbol_names[] = { [sym_number_string_literal] = "number_string_literal", [sym_slice_string_literal] = "slice_string_literal", [sym_underscore] = "underscore", - [sym_function_name] = "function_name", [sym_comment] = "comment", [sym_source_file] = "source_file", [sym__top_level_item] = "_top_level_item", @@ -338,8 +333,6 @@ static const char * const ts_symbol_names[] = { [sym_catch_clause] = "catch_clause", [sym__expression] = "_expression", [sym__expr10] = "_expr10", - [sym_ternary_condition] = "ternary_condition", - [sym_ternary_expression] = "ternary_expression", [sym__expr13] = "_expr13", [sym__expr15] = "_expr15", [sym__expr17] = "_expr17", @@ -350,12 +343,11 @@ static const char * const ts_symbol_names[] = { [sym_method_call] = "method_call", [sym__expr90] = "_expr90", [sym_function_application] = "function_application", - [sym_var_declaration] = "var_declaration", - [sym_nested_tensor_declaration] = "nested_tensor_declaration", - [sym_tensor_vars_declaration] = "tensor_vars_declaration", - [sym__multiple_vars_declaration] = "_multiple_vars_declaration", [sym_local_vars_declaration] = "local_vars_declaration", [sym_tuple_vars_declaration] = "tuple_vars_declaration", + [sym_tensor_vars_declaration] = "tensor_vars_declaration", + [sym_var_declaration] = "var_declaration", + [sym__var_declaration_lhs] = "_var_declaration_lhs", [sym__nontype_expr100] = "_nontype_expr100", [sym__expr100] = "_expr100", [sym_parenthesized_expression] = "parenthesized_expression", @@ -364,6 +356,7 @@ static const char * const ts_symbol_names[] = { [sym__type_hint] = "_type_hint", [sym_function_type] = "function_type", [sym__atomic_type] = "_atomic_type", + [sym__parenthesized_type] = "_parenthesized_type", [sym_primitive_type] = "primitive_type", [sym_tensor_type] = "tensor_type", [sym_tuple_type] = "tuple_type", @@ -386,7 +379,6 @@ static const char * const ts_symbol_names[] = { [aux_sym__expr30_repeat1] = "_expr30_repeat1", [aux_sym__expr80_repeat1] = "_expr80_repeat1", [aux_sym_function_application_repeat1] = "function_application_repeat1", - [aux_sym_nested_tensor_declaration_repeat1] = "nested_tensor_declaration_repeat1", [aux_sym_tuple_vars_declaration_repeat1] = "tuple_vars_declaration_repeat1", [aux_sym_tensor_expression_repeat1] = "tensor_expression_repeat1", [aux_sym_tensor_type_repeat1] = "tensor_type_repeat1", @@ -490,7 +482,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_number_string_literal] = sym_number_string_literal, [sym_slice_string_literal] = sym_slice_string_literal, [sym_underscore] = sym_underscore, - [sym_function_name] = sym_function_name, [sym_comment] = sym_comment, [sym_source_file] = sym_source_file, [sym__top_level_item] = sym__top_level_item, @@ -525,8 +516,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_catch_clause] = sym_catch_clause, [sym__expression] = sym__expression, [sym__expr10] = sym__expr10, - [sym_ternary_condition] = sym_ternary_condition, - [sym_ternary_expression] = sym_ternary_expression, [sym__expr13] = sym__expr13, [sym__expr15] = sym__expr15, [sym__expr17] = sym__expr17, @@ -537,12 +526,11 @@ static const TSSymbol ts_symbol_map[] = { [sym_method_call] = sym_method_call, [sym__expr90] = sym__expr90, [sym_function_application] = sym_function_application, - [sym_var_declaration] = sym_var_declaration, - [sym_nested_tensor_declaration] = sym_nested_tensor_declaration, - [sym_tensor_vars_declaration] = sym_tensor_vars_declaration, - [sym__multiple_vars_declaration] = sym__multiple_vars_declaration, [sym_local_vars_declaration] = sym_local_vars_declaration, [sym_tuple_vars_declaration] = sym_tuple_vars_declaration, + [sym_tensor_vars_declaration] = sym_tensor_vars_declaration, + [sym_var_declaration] = sym_var_declaration, + [sym__var_declaration_lhs] = sym__var_declaration_lhs, [sym__nontype_expr100] = sym__nontype_expr100, [sym__expr100] = sym__expr100, [sym_parenthesized_expression] = sym_parenthesized_expression, @@ -551,6 +539,7 @@ static const TSSymbol ts_symbol_map[] = { [sym__type_hint] = sym__type_hint, [sym_function_type] = sym_function_type, [sym__atomic_type] = sym__atomic_type, + [sym__parenthesized_type] = sym__parenthesized_type, [sym_primitive_type] = sym_primitive_type, [sym_tensor_type] = sym_tensor_type, [sym_tuple_type] = sym_tuple_type, @@ -573,7 +562,6 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym__expr30_repeat1] = aux_sym__expr30_repeat1, [aux_sym__expr80_repeat1] = aux_sym__expr80_repeat1, [aux_sym_function_application_repeat1] = aux_sym_function_application_repeat1, - [aux_sym_nested_tensor_declaration_repeat1] = aux_sym_nested_tensor_declaration_repeat1, [aux_sym_tuple_vars_declaration_repeat1] = aux_sym_tuple_vars_declaration_repeat1, [aux_sym_tensor_expression_repeat1] = aux_sym_tensor_expression_repeat1, [aux_sym_tensor_type_repeat1] = aux_sym_tensor_type_repeat1, @@ -968,10 +956,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_function_name] = { - .visible = true, - .named = true, - }, [sym_comment] = { .visible = true, .named = true, @@ -1108,14 +1092,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [sym_ternary_condition] = { - .visible = true, - .named = true, - }, - [sym_ternary_expression] = { - .visible = true, - .named = true, - }, [sym__expr13] = { .visible = false, .named = true, @@ -1156,11 +1132,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_var_declaration] = { + [sym_local_vars_declaration] = { .visible = true, .named = true, }, - [sym_nested_tensor_declaration] = { + [sym_tuple_vars_declaration] = { .visible = true, .named = true, }, @@ -1168,16 +1144,12 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym__multiple_vars_declaration] = { - .visible = false, - .named = true, - }, - [sym_local_vars_declaration] = { + [sym_var_declaration] = { .visible = true, .named = true, }, - [sym_tuple_vars_declaration] = { - .visible = true, + [sym__var_declaration_lhs] = { + .visible = false, .named = true, }, [sym__nontype_expr100] = { @@ -1212,6 +1184,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym__parenthesized_type] = { + .visible = false, + .named = true, + }, [sym_primitive_type] = { .visible = true, .named = true, @@ -1300,10 +1276,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_nested_tensor_declaration_repeat1] = { - .visible = false, - .named = false, - }, [aux_sym_tuple_vars_declaration_repeat1] = { .visible = false, .named = false, @@ -1416,21 +1388,16 @@ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [36] = {.index = 89, .length = 2}, [37] = {.index = 91, .length = 2}, [38] = {.index = 93, .length = 2}, - [39] = {.index = 95, .length = 2}, - [40] = {.index = 97, .length = 1}, + [39] = {.index = 95, .length = 1}, + [40] = {.index = 96, .length = 2}, [41] = {.index = 98, .length = 2}, [42] = {.index = 100, .length = 2}, - [43] = {.index = 102, .length = 2}, - [44] = {.index = 104, .length = 1}, - [45] = {.index = 105, .length = 3}, - [46] = {.index = 108, .length = 3}, - [47] = {.index = 111, .length = 3}, - [48] = {.index = 114, .length = 2}, - [49] = {.index = 116, .length = 1}, - [50] = {.index = 117, .length = 4}, - [51] = {.index = 121, .length = 4}, - [52] = {.index = 125, .length = 7}, - [53] = {.index = 132, .length = 2}, + [43] = {.index = 102, .length = 1}, + [44] = {.index = 103, .length = 2}, + [45] = {.index = 105, .length = 1}, + [46] = {.index = 106, .length = 4}, + [47] = {.index = 110, .length = 7}, + [48] = {.index = 117, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -1446,9 +1413,9 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1}, {field_type, 0}, [6] = - {field_types, 1}, - [7] = {field_name, 1}, + [7] = + {field_types, 1}, [8] = {field_decls, 1}, {field_decls, 2}, @@ -1521,9 +1488,9 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 0}, {field_specifiers, 3}, [62] = - {field_expressions, 1}, - [63] = {field_vars, 1}, + [63] = + {field_expressions, 1}, [64] = {field_asm_body, 5}, {field_name, 2}, @@ -1566,49 +1533,29 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_arguments, 2}, {field_method_name, 1}, [95] = - {field_type, 0}, - {field_vars, 2}, - [97] = {field_value, 2}, - [98] = + [96] = {field_body, 2}, {field_count, 1}, - [100] = + [98] = {field_condition, 0}, {field_consequent, 1}, - [102] = + [100] = {field_body, 2}, {field_precondition, 1}, - [104] = + [102] = {field_body, 1}, - [105] = - {field_vars, 1}, - {field_vars, 2}, - {field_vars, 3}, - [108] = - {field_alternative, 4}, - {field_condition, 0}, - {field_consequent, 2}, - [111] = - {field_type, 0}, - {field_vars, 2}, - {field_vars, 3}, - [114] = + [103] = {field_body, 1}, {field_postcondition, 3}, - [116] = + [105] = {field_catch_body, 1}, - [117] = - {field_type, 0}, - {field_vars, 2}, - {field_vars, 3}, - {field_vars, 4}, - [121] = + [106] = {field_alternative, 2}, {field_alternative, 3}, {field_condition, 0}, {field_consequent, 1}, - [125] = + [110] = {field_alternative, 2}, {field_alternative, 3}, {field_alternative, 3, .inherited = true}, @@ -1616,7 +1563,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_condition, 3, .inherited = true}, {field_consequent, 1}, {field_consequent, 3, .inherited = true}, - [132] = + [117] = {field_catch_body, 2}, {field_catch_expr, 1}, }; @@ -1648,15 +1595,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [9] = 9, [10] = 10, [11] = 11, - [12] = 9, + [12] = 12, [13] = 13, [14] = 14, - [15] = 7, + [15] = 15, [16] = 16, - [17] = 17, + [17] = 16, [18] = 18, [19] = 19, - [20] = 20, + [20] = 12, [21] = 21, [22] = 22, [23] = 23, @@ -1683,123 +1630,123 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [44] = 44, [45] = 45, [46] = 46, - [47] = 3, - [48] = 2, - [49] = 13, - [50] = 14, - [51] = 14, - [52] = 13, - [53] = 11, - [54] = 10, - [55] = 10, - [56] = 11, - [57] = 31, - [58] = 58, - [59] = 24, - [60] = 25, - [61] = 26, - [62] = 6, - [63] = 20, - [64] = 27, - [65] = 28, - [66] = 29, - [67] = 30, + [47] = 47, + [48] = 3, + [49] = 2, + [50] = 50, + [51] = 8, + [52] = 10, + [53] = 7, + [54] = 9, + [55] = 11, + [56] = 6, + [57] = 23, + [58] = 25, + [59] = 26, + [60] = 27, + [61] = 28, + [62] = 29, + [63] = 30, + [64] = 32, + [65] = 33, + [66] = 34, + [67] = 19, [68] = 4, - [69] = 16, - [70] = 32, - [71] = 17, - [72] = 5, - [73] = 22, - [74] = 23, - [75] = 75, - [76] = 76, + [69] = 14, + [70] = 35, + [71] = 21, + [72] = 7, + [73] = 8, + [74] = 5, + [75] = 9, + [76] = 10, [77] = 77, - [78] = 17, - [79] = 79, - [80] = 77, - [81] = 21, - [82] = 22, - [83] = 13, - [84] = 14, - [85] = 23, - [86] = 24, + [78] = 18, + [79] = 31, + [80] = 14, + [81] = 10, + [82] = 11, + [83] = 18, + [84] = 19, + [85] = 35, + [86] = 21, [87] = 25, [88] = 26, [89] = 27, [90] = 28, - [91] = 30, - [92] = 16, - [93] = 31, - [94] = 32, + [91] = 29, + [92] = 30, + [93] = 32, + [94] = 33, [95] = 95, - [96] = 96, - [97] = 79, - [98] = 77, - [99] = 99, + [96] = 34, + [97] = 9, + [98] = 98, + [99] = 15, [100] = 100, - [101] = 95, - [102] = 79, - [103] = 77, - [104] = 79, - [105] = 29, - [106] = 106, - [107] = 33, + [101] = 101, + [102] = 102, + [103] = 103, + [104] = 104, + [105] = 105, + [106] = 13, + [107] = 107, [108] = 108, - [109] = 109, - [110] = 106, - [111] = 19, - [112] = 112, - [113] = 113, - [114] = 114, - [115] = 115, - [116] = 116, - [117] = 117, - [118] = 115, - [119] = 114, - [120] = 115, - [121] = 18, + [109] = 22, + [110] = 102, + [111] = 104, + [112] = 108, + [113] = 98, + [114] = 103, + [115] = 102, + [116] = 104, + [117] = 108, + [118] = 98, + [119] = 102, + [120] = 104, + [121] = 121, [122] = 122, [123] = 123, [124] = 124, - [125] = 35, + [125] = 36, [126] = 126, - [127] = 124, - [128] = 34, - [129] = 124, + [127] = 127, + [128] = 128, + [129] = 37, [130] = 130, - [131] = 130, + [131] = 124, [132] = 132, [133] = 132, [134] = 134, [135] = 134, [136] = 136, - [137] = 39, - [138] = 38, - [139] = 36, - [140] = 41, - [141] = 141, - [142] = 37, - [143] = 141, - [144] = 136, - [145] = 145, - [146] = 42, - [147] = 145, - [148] = 148, - [149] = 148, - [150] = 45, - [151] = 44, - [152] = 43, - [153] = 153, + [137] = 137, + [138] = 137, + [139] = 139, + [140] = 140, + [141] = 140, + [142] = 142, + [143] = 143, + [144] = 142, + [145] = 143, + [146] = 43, + [147] = 147, + [148] = 147, + [149] = 42, + [150] = 40, + [151] = 41, + [152] = 38, + [153] = 44, [154] = 154, - [155] = 155, - [156] = 155, - [157] = 58, + [155] = 154, + [156] = 156, + [157] = 47, [158] = 158, - [159] = 159, - [160] = 160, + [159] = 45, + [160] = 46, [161] = 161, - [162] = 162, - [163] = 163, + [162] = 161, + [163] = 77, [164] = 164, [165] = 165, [166] = 166, @@ -1808,47 +1755,47 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [169] = 169, [170] = 170, [171] = 171, - [172] = 123, + [172] = 172, [173] = 173, [174] = 174, - [175] = 130, + [175] = 175, [176] = 176, [177] = 177, [178] = 178, [179] = 179, - [180] = 179, - [181] = 179, - [182] = 178, - [183] = 178, + [180] = 180, + [181] = 181, + [182] = 182, + [183] = 181, [184] = 184, [185] = 185, - [186] = 185, - [187] = 185, - [188] = 188, - [189] = 189, - [190] = 190, - [191] = 190, - [192] = 190, - [193] = 193, - [194] = 193, - [195] = 193, - [196] = 196, - [197] = 160, + [186] = 186, + [187] = 187, + [188] = 185, + [189] = 181, + [190] = 182, + [191] = 182, + [192] = 184, + [193] = 185, + [194] = 184, + [195] = 195, + [196] = 136, + [197] = 139, [198] = 198, [199] = 199, [200] = 200, - [201] = 198, + [201] = 201, [202] = 202, - [203] = 159, + [203] = 203, [204] = 204, [205] = 205, [206] = 206, [207] = 207, - [208] = 199, + [208] = 167, [209] = 209, [210] = 210, - [211] = 210, - [212] = 212, + [211] = 211, + [212] = 166, [213] = 213, [214] = 214, [215] = 215, @@ -1863,8 +1810,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [224] = 224, [225] = 225, [226] = 226, - [227] = 227, - [228] = 161, + [227] = 173, + [228] = 228, [229] = 229, [230] = 230, [231] = 231, @@ -1905,29 +1852,29 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [266] = 266, [267] = 267, [268] = 268, - [269] = 258, + [269] = 269, [270] = 270, - [271] = 253, - [272] = 250, - [273] = 254, + [271] = 271, + [272] = 272, + [273] = 273, [274] = 274, [275] = 275, - [276] = 259, + [276] = 276, [277] = 277, [278] = 278, - [279] = 266, - [280] = 252, + [279] = 279, + [280] = 280, [281] = 281, - [282] = 260, - [283] = 255, - [284] = 251, + [282] = 282, + [283] = 283, + [284] = 284, [285] = 285, [286] = 286, - [287] = 257, + [287] = 287, [288] = 288, - [289] = 288, + [289] = 289, [290] = 290, - [291] = 288, + [291] = 291, [292] = 292, [293] = 293, [294] = 294, @@ -1935,7 +1882,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [296] = 296, [297] = 297, [298] = 298, - [299] = 262, + [299] = 299, [300] = 300, [301] = 301, [302] = 302, @@ -1955,7 +1902,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [316] = 316, [317] = 317, [318] = 318, - [319] = 319, + [319] = 34, [320] = 320, [321] = 321, [322] = 322, @@ -1963,119 +1910,81 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [324] = 324, [325] = 325, [326] = 326, - [327] = 327, + [327] = 296, [328] = 328, - [329] = 329, + [329] = 304, [330] = 330, - [331] = 331, - [332] = 332, - [333] = 333, + [331] = 314, + [332] = 317, + [333] = 320, [334] = 334, - [335] = 335, + [335] = 323, [336] = 336, [337] = 337, [338] = 338, - [339] = 17, + [339] = 339, [340] = 340, [341] = 341, - [342] = 342, + [342] = 304, [343] = 343, - [344] = 344, - [345] = 345, - [346] = 346, + [344] = 314, + [345] = 317, + [346] = 320, [347] = 347, - [348] = 348, + [348] = 323, [349] = 349, [350] = 350, [351] = 351, - [352] = 352, - [353] = 341, - [354] = 330, - [355] = 344, + [352] = 296, + [353] = 353, + [354] = 354, + [355] = 355, [356] = 356, [357] = 357, [358] = 358, [359] = 359, - [360] = 317, - [361] = 322, + [360] = 360, + [361] = 361, [362] = 362, [363] = 363, - [364] = 348, - [365] = 349, - [366] = 356, + [364] = 364, + [365] = 365, + [366] = 366, [367] = 367, [368] = 368, [369] = 369, - [370] = 367, - [371] = 317, - [372] = 322, + [370] = 370, + [371] = 371, + [372] = 372, [373] = 373, - [374] = 348, - [375] = 349, - [376] = 356, - [377] = 367, - [378] = 352, - [379] = 368, + [374] = 374, + [375] = 375, + [376] = 376, + [377] = 377, + [378] = 378, + [379] = 379, [380] = 380, [381] = 381, [382] = 382, - [383] = 368, + [383] = 383, [384] = 384, [385] = 385, [386] = 386, [387] = 387, [388] = 388, [389] = 389, - [390] = 390, - [391] = 391, + [390] = 384, + [391] = 384, [392] = 392, [393] = 393, [394] = 394, [395] = 395, [396] = 396, - [397] = 397, + [397] = 392, [398] = 398, [399] = 399, - [400] = 400, + [400] = 385, [401] = 401, - [402] = 402, - [403] = 403, - [404] = 404, - [405] = 405, - [406] = 406, - [407] = 393, - [408] = 408, - [409] = 409, - [410] = 410, - [411] = 411, - [412] = 412, - [413] = 413, - [414] = 414, - [415] = 415, - [416] = 416, - [417] = 393, - [418] = 418, - [419] = 419, - [420] = 420, - [421] = 421, - [422] = 422, - [423] = 423, - [424] = 424, - [425] = 425, - [426] = 426, - [427] = 427, - [428] = 428, - [429] = 429, - [430] = 430, - [431] = 431, - [432] = 432, - [433] = 433, - [434] = 434, - [435] = 430, - [436] = 425, - [437] = 437, - [438] = 438, - [439] = 421, }; static const TSCharacterRange sym_identifier_character_set_1[] = { @@ -2088,253 +1997,253 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(90); + if (eof) ADVANCE(86); ADVANCE_MAP( - '!', 27, + '!', 26, '"', 10, - '#', 53, - '%', 153, - '&', 159, - '(', 107, - ')', 108, - '*', 150, - '+', 146, - ',', 104, - '-', 141, - '.', 163, - '/', 151, - '0', 166, - ':', 129, - ';', 93, - '<', 131, - '=', 106, - '>', 132, - '?', 128, - '[', 164, - ']', 165, - '^', 148, - '`', 88, - 'a', 183, - 'c', 186, - 'n', 187, - '{', 110, - '|', 147, - '}', 111, - '~', 161, + '#', 51, + '%', 149, + '&', 155, + '(', 103, + ')', 104, + '*', 146, + '+', 142, + ',', 100, + '-', 137, + '.', 159, + '/', 147, + '0', 162, + ':', 125, + ';', 89, + '<', 127, + '=', 102, + '>', 128, + '?', 124, + '[', 160, + ']', 161, + '^', 144, + '`', 84, + 'a', 179, + 'c', 182, + 'n', 183, + '{', 106, + '|', 143, + '}', 107, + '~', 157, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); if (lookahead == '$' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 1: ADVANCE_MAP( - ' ', 92, + ' ', 88, '"', 11, - '/', 16, - ';', 26, - '<', 35, - '>', 35, - '`', 88, - 'a', 183, - 'c', 186, - 'n', 187, - '{', 20, - '=', 82, - '^', 82, + '/', 15, + ';', 25, + '<', 34, + '>', 34, + '`', 84, + 'a', 179, + 'c', 182, + 'n', 183, + '{', 19, + '=', 80, + '^', 80, ); if (('\t' <= lookahead && lookahead <= '\r')) SKIP(1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90); if (lookahead == '$' || lookahead == '%' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 2: ADVANCE_MAP( - ' ', 92, + ' ', 88, '"', 11, - '/', 16, - ';', 26, - '<', 35, - '>', 35, - '{', 20, - '=', 82, - '^', 82, + '/', 15, + ';', 25, + '<', 34, + '>', 34, + '{', 19, + '=', 80, + '^', 80, ); if (('\t' <= lookahead && lookahead <= '\r')) SKIP(2); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); END_STATE(); case 3: ADVANCE_MAP( - ' ', 92, - '/', 16, - ';', 26, - '`', 88, - 'a', 183, - 'c', 186, - 'n', 187, - '{', 20, + ' ', 88, + '/', 15, + ';', 25, + '`', 84, + 'a', 179, + 'c', 182, + 'n', 183, + '{', 19, ); if (('\t' <= lookahead && lookahead <= '\r')) SKIP(3); if (lookahead == '$' || lookahead == '%' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 4: ADVANCE_MAP( - '!', 27, + '!', 26, '"', 10, - '%', 153, - '&', 159, - '(', 107, - '*', 150, - '+', 146, - '-', 141, - '.', 163, - '/', 151, - '0', 166, - ';', 93, - '<', 131, - '=', 106, - '>', 132, - '?', 128, - '[', 164, - '^', 148, - '`', 88, - '{', 110, - '|', 147, - '}', 111, - '~', 161, + '%', 149, + '&', 155, + '(', 103, + '*', 146, + '+', 142, + '-', 137, + '.', 159, + '/', 147, + '0', 162, + ';', 89, + '<', 127, + '=', 102, + '>', 128, + '?', 124, + '[', 160, + '^', 144, + '`', 84, + '{', 106, + '|', 143, + '}', 107, + '~', 157, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); if (lookahead == '$' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 5: ADVANCE_MAP( - '!', 27, + '!', 26, '"', 10, - '%', 181, - '&', 29, - '(', 107, - ')', 108, - '*', 30, - '+', 146, - ',', 104, - '-', 142, - '/', 17, - '0', 166, - ':', 129, - ';', 93, - '<', 131, - '=', 106, - '>', 132, - '?', 128, - '[', 164, - ']', 165, - '^', 149, - '`', 88, - '{', 110, - '|', 147, - '}', 111, - '~', 162, + '%', 177, + '&', 28, + '(', 103, + ')', 104, + '*', 29, + '+', 142, + ',', 100, + '-', 138, + '/', 16, + '0', 162, + ':', 125, + ';', 89, + '<', 127, + '=', 102, + '>', 128, + '?', 124, + '[', 160, + ']', 161, + '^', 145, + '`', 84, + '{', 106, + '|', 143, + '}', 107, + '~', 158, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); if (lookahead == '$' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 6: ADVANCE_MAP( - '!', 27, - '%', 153, - '&', 159, - '(', 107, - ')', 108, - '*', 150, - '+', 146, - ',', 104, - '-', 145, - '.', 163, - '/', 151, - ':', 129, - ';', 93, - '<', 131, - '=', 106, - '>', 132, - '?', 128, - ']', 165, - '^', 148, - '`', 88, - '{', 110, - '|', 147, - '~', 161, + '!', 26, + '%', 149, + '&', 155, + '(', 103, + ')', 104, + '*', 146, + '+', 142, + ',', 100, + '-', 141, + '.', 159, + '/', 147, + ':', 125, + ';', 89, + '<', 127, + '=', 102, + '>', 128, + '?', 124, + ']', 161, + '^', 144, + '`', 84, + '{', 106, + '|', 143, + '~', 157, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(6); if (lookahead == '$' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 7: ADVANCE_MAP( - '!', 27, - '%', 152, - '&', 159, - ')', 108, - '*', 150, - '+', 146, - ',', 104, - '-', 144, - '.', 163, - '/', 151, - ':', 129, - ';', 93, - '<', 131, - '=', 106, - '>', 132, - '?', 128, - ']', 165, - '^', 148, - '{', 110, - '|', 147, - '~', 161, + '!', 26, + '%', 148, + '&', 155, + ')', 104, + '*', 146, + '+', 142, + ',', 100, + '-', 140, + '.', 159, + '/', 147, + ':', 125, + ';', 89, + '<', 127, + '=', 102, + '>', 128, + '?', 124, + ']', 161, + '^', 144, + '{', 106, + '|', 143, + '~', 157, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); END_STATE(); case 8: ADVANCE_MAP( - '!', 27, - '%', 28, - '&', 29, - ')', 108, - '*', 30, - '+', 146, - ',', 104, - '-', 144, - '/', 17, - ':', 129, - ';', 93, - '<', 131, - '=', 106, - '>', 132, - '?', 128, - ']', 165, - '^', 149, - '{', 110, - '|', 147, + '!', 26, + '%', 27, + '&', 28, + ')', 104, + '*', 29, + '+', 142, + ',', 100, + '-', 140, + '/', 16, + ':', 125, + ';', 89, + '<', 127, + '=', 102, + '>', 128, + '?', 124, + ']', 161, + '^', 145, + '{', 106, + '|', 143, '~', 14, ); if (('\t' <= lookahead && lookahead <= '\r') || @@ -2343,370 +2252,326 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 9: ADVANCE_MAP( '"', 10, - '(', 107, - ')', 108, - '-', 143, - '/', 16, - '0', 166, - ';', 93, - '[', 164, - ']', 165, - '`', 88, - '{', 110, - '}', 111, - '~', 160, + '(', 103, + ')', 104, + ',', 100, + '-', 139, + '/', 15, + '0', 162, + ':', 125, + ';', 89, + '[', 160, + ']', 161, + '`', 84, + '{', 106, + '}', 107, + '~', 156, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(9); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(168); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(164); if (lookahead == '$' || lookahead == '%' || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); case 10: - if (lookahead == '"') ADVANCE(173); + if (lookahead == '"') ADVANCE(169); if (lookahead != 0) ADVANCE(10); END_STATE(); case 11: - if (lookahead == '"') ADVANCE(172); + if (lookahead == '"') ADVANCE(168); if (lookahead != 0) ADVANCE(11); END_STATE(); case 12: - if (lookahead == '"') ADVANCE(174); + if (lookahead == '"') ADVANCE(170); if (lookahead != 0) ADVANCE(12); END_STATE(); case 13: if (lookahead == '"') ADVANCE(12); - if (lookahead == ')') ADVANCE(108); - if (lookahead == '-') ADVANCE(25); - if (lookahead == '/') ADVANCE(16); - if (lookahead == '0') ADVANCE(167); - if (lookahead == ';') ADVANCE(26); - if (lookahead == '{') ADVANCE(20); + if (lookahead == ')') ADVANCE(104); + if (lookahead == '-') ADVANCE(24); + if (lookahead == '/') ADVANCE(15); + if (lookahead == '0') ADVANCE(163); + if (lookahead == ';') ADVANCE(25); + if (lookahead == '{') ADVANCE(19); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(13); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); case 14: - if (lookahead == '%') ADVANCE(33); - if (lookahead == '/') ADVANCE(34); - if (lookahead == '>') ADVANCE(38); + if (lookahead == '%') ADVANCE(32); + if (lookahead == '/') ADVANCE(33); + if (lookahead == '>') ADVANCE(37); END_STATE(); case 15: - ADVANCE_MAP( - ')', 108, - ',', 104, - '-', 36, - '/', 16, - ';', 26, - ']', 165, - '`', 40, - '{', 20, - '.', 85, - '~', 85, - ); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(15); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(87); - if (lookahead == '$' || - lookahead == '%' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); + if (lookahead == '*') ADVANCE(18); + if (lookahead == '/') ADVANCE(195); END_STATE(); case 16: - if (lookahead == '*') ADVANCE(19); - if (lookahead == '/') ADVANCE(201); + if (lookahead == '*') ADVANCE(18); + if (lookahead == '/') ADVANCE(195); + if (lookahead == '=') ADVANCE(111); END_STATE(); case 17: - if (lookahead == '*') ADVANCE(19); - if (lookahead == '/') ADVANCE(201); - if (lookahead == '=') ADVANCE(115); + if (lookahead == '*') ADVANCE(17); + if (lookahead == '/') ADVANCE(194); + if (lookahead != 0) ADVANCE(18); END_STATE(); case 18: - if (lookahead == '*') ADVANCE(18); - if (lookahead == '/') ADVANCE(200); - if (lookahead != 0) ADVANCE(19); + if (lookahead == '*') ADVANCE(17); + if (lookahead != 0) ADVANCE(18); END_STATE(); case 19: - if (lookahead == '*') ADVANCE(18); - if (lookahead != 0) ADVANCE(19); + if (lookahead == '-') ADVANCE(21); END_STATE(); case 20: - if (lookahead == '-') ADVANCE(22); + if (lookahead == '-') ADVANCE(20); + if (lookahead == '}') ADVANCE(194); + if (lookahead != 0) ADVANCE(21); END_STATE(); case 21: - if (lookahead == '-') ADVANCE(21); - if (lookahead == '}') ADVANCE(200); - if (lookahead != 0) ADVANCE(22); + if (lookahead == '-') ADVANCE(20); + if (lookahead != 0) ADVANCE(21); END_STATE(); case 22: - if (lookahead == '-') ADVANCE(21); - if (lookahead != 0) ADVANCE(22); + if (lookahead == '-') ADVANCE(57); END_STATE(); case 23: - if (lookahead == '-') ADVANCE(59); + if (lookahead == '-') ADVANCE(60); END_STATE(); case 24: - if (lookahead == '-') ADVANCE(62); + if (lookahead == '0') ADVANCE(163); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); case 25: - if (lookahead == '0') ADVANCE(167); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (lookahead == ';') ADVANCE(195); END_STATE(); case 26: - if (lookahead == ';') ADVANCE(201); + if (lookahead == '=') ADVANCE(131); END_STATE(); case 27: - if (lookahead == '=') ADVANCE(135); + if (lookahead == '=') ADVANCE(114); END_STATE(); case 28: - if (lookahead == '=') ADVANCE(118); + if (lookahead == '=') ADVANCE(121); END_STATE(); case 29: - if (lookahead == '=') ADVANCE(125); + if (lookahead == '=') ADVANCE(110); END_STATE(); case 30: - if (lookahead == '=') ADVANCE(114); + if (lookahead == '=') ADVANCE(116); END_STATE(); case 31: - if (lookahead == '=') ADVANCE(120); + if (lookahead == '=') ADVANCE(113); END_STATE(); case 32: - if (lookahead == '=') ADVANCE(117); + if (lookahead == '=') ADVANCE(115); END_STATE(); case 33: - if (lookahead == '=') ADVANCE(119); + if (lookahead == '=') ADVANCE(112); END_STATE(); case 34: - if (lookahead == '=') ADVANCE(116); + if (lookahead == '=') ADVANCE(80); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); END_STATE(); case 35: - if (lookahead == '=') ADVANCE(82); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); + if (lookahead == '>') ADVANCE(105); END_STATE(); case 36: - if (lookahead == '>') ADVANCE(109); + if (lookahead == '>') ADVANCE(136); END_STATE(); case 37: - if (lookahead == '>') ADVANCE(140); + if (lookahead == '>') ADVANCE(135); END_STATE(); case 38: - if (lookahead == '>') ADVANCE(139); + if (lookahead == '`') ADVANCE(173); + if (lookahead != 0) ADVANCE(38); END_STATE(); case 39: - if (lookahead == '`') ADVANCE(177); - if (lookahead != 0) ADVANCE(39); + if (lookahead == 'a') ADVANCE(50); END_STATE(); case 40: - if (lookahead == '`') ADVANCE(198); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(40); + if (lookahead == 'a') ADVANCE(96); END_STATE(); case 41: - if (lookahead == 'a') ADVANCE(52); + if (lookahead == 'a') ADVANCE(74); END_STATE(); case 42: - if (lookahead == 'a') ADVANCE(100); + if (lookahead == 'a') ADVANCE(77); END_STATE(); case 43: - if (lookahead == 'a') ADVANCE(76); + if (lookahead == 'c') ADVANCE(56); END_STATE(); case 44: - if (lookahead == 'a') ADVANCE(79); + if (lookahead == 'c') ADVANCE(42); END_STATE(); case 45: - if (lookahead == 'c') ADVANCE(58); + if (lookahead == 'd') ADVANCE(47); END_STATE(); case 46: - if (lookahead == 'c') ADVANCE(44); + if (lookahead == 'd') ADVANCE(52); END_STATE(); case 47: - if (lookahead == 'd') ADVANCE(49); + if (lookahead == 'e') ADVANCE(87); END_STATE(); case 48: - if (lookahead == 'd') ADVANCE(54); + if (lookahead == 'e') ADVANCE(70); END_STATE(); case 49: - if (lookahead == 'e') ADVANCE(91); + if (lookahead == 'f') ADVANCE(53); END_STATE(); case 50: - if (lookahead == 'e') ADVANCE(72); + if (lookahead == 'g') ADVANCE(58); END_STATE(); case 51: - if (lookahead == 'f') ADVANCE(55); + if (lookahead == 'i') ADVANCE(61); + if (lookahead == 'p') ADVANCE(69); END_STATE(); case 52: - if (lookahead == 'g') ADVANCE(60); + if (lookahead == 'i') ADVANCE(49); END_STATE(); case 53: - if (lookahead == 'i') ADVANCE(63); - if (lookahead == 'p') ADVANCE(71); + if (lookahead == 'i') ADVANCE(44); END_STATE(); case 54: - if (lookahead == 'i') ADVANCE(51); + if (lookahead == 'i') ADVANCE(64); END_STATE(); case 55: - if (lookahead == 'i') ADVANCE(46); + if (lookahead == 'i') ADVANCE(67); END_STATE(); case 56: - if (lookahead == 'i') ADVANCE(66); + if (lookahead == 'l') ADVANCE(78); END_STATE(); case 57: - if (lookahead == 'i') ADVANCE(69); + if (lookahead == 'l') ADVANCE(76); END_STATE(); case 58: - if (lookahead == 'l') ADVANCE(80); + if (lookahead == 'm') ADVANCE(40); END_STATE(); case 59: - if (lookahead == 'l') ADVANCE(78); + if (lookahead == 'm') ADVANCE(22); END_STATE(); case 60: - if (lookahead == 'm') ADVANCE(42); + if (lookahead == 'm') ADVANCE(65); END_STATE(); case 61: - if (lookahead == 'm') ADVANCE(23); + if (lookahead == 'n') ADVANCE(43); END_STATE(); case 62: - if (lookahead == 'm') ADVANCE(67); + if (lookahead == 'n') ADVANCE(97); END_STATE(); case 63: - if (lookahead == 'n') ADVANCE(45); + if (lookahead == 'n') ADVANCE(98); END_STATE(); case 64: - if (lookahead == 'n') ADVANCE(101); + if (lookahead == 'o') ADVANCE(62); END_STATE(); case 65: - if (lookahead == 'n') ADVANCE(102); + if (lookahead == 'o') ADVANCE(46); END_STATE(); case 66: - if (lookahead == 'o') ADVANCE(64); + if (lookahead == 'o') ADVANCE(73); END_STATE(); case 67: - if (lookahead == 'o') ADVANCE(48); + if (lookahead == 'o') ADVANCE(63); END_STATE(); case 68: - if (lookahead == 'o') ADVANCE(75); + if (lookahead == 'p') ADVANCE(66); END_STATE(); case 69: - if (lookahead == 'o') ADVANCE(65); + if (lookahead == 'r') ADVANCE(39); END_STATE(); case 70: - if (lookahead == 'p') ADVANCE(68); + if (lookahead == 'r') ADVANCE(72); END_STATE(); case 71: - if (lookahead == 'r') ADVANCE(41); + if (lookahead == 'r') ADVANCE(99); END_STATE(); case 72: - if (lookahead == 'r') ADVANCE(74); + if (lookahead == 's') ADVANCE(54); END_STATE(); case 73: - if (lookahead == 'r') ADVANCE(103); + if (lookahead == 's') ADVANCE(75); END_STATE(); case 74: - if (lookahead == 's') ADVANCE(56); + if (lookahead == 's') ADVANCE(59); END_STATE(); case 75: - if (lookahead == 's') ADVANCE(77); + if (lookahead == 't') ADVANCE(23); END_STATE(); case 76: - if (lookahead == 's') ADVANCE(61); + if (lookahead == 't') ADVANCE(71); END_STATE(); case 77: - if (lookahead == 't') ADVANCE(24); + if (lookahead == 't') ADVANCE(55); END_STATE(); case 78: - if (lookahead == 't') ADVANCE(73); + if (lookahead == 'u') ADVANCE(45); END_STATE(); case 79: - if (lookahead == 't') ADVANCE(57); + if (lookahead == 'v') ADVANCE(48); END_STATE(); case 80: - if (lookahead == 'u') ADVANCE(47); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); END_STATE(); case 81: - if (lookahead == 'v') ADVANCE(50); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); END_STATE(); case 82: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 83: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96); - END_STATE(); - case 84: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(99); - END_STATE(); - case 85: - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(87); - if (lookahead == '$' || - lookahead == '%' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); - END_STATE(); - case 86: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(171); - END_STATE(); - case 87: - if (lookahead == '!' || - lookahead == '$' || - lookahead == '%' || - lookahead == '\'' || - ('0' <= lookahead && lookahead <= ':') || - lookahead == '?' || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(167); END_STATE(); - case 88: + case 84: if (lookahead != 0 && - lookahead != '`') ADVANCE(39); + lookahead != '`') ADVANCE(38); END_STATE(); - case 89: - if (eof) ADVANCE(90); + case 85: + if (eof) ADVANCE(86); ADVANCE_MAP( '"', 11, - '#', 53, - '(', 107, - ')', 108, - ',', 104, - '-', 36, - '/', 16, - ';', 93, - '=', 105, - '[', 164, - ']', 165, - '`', 88, - '{', 110, + '#', 51, + '(', 103, + ')', 104, + ',', 100, + '-', 35, + '/', 15, + ';', 89, + '=', 101, + '[', 160, + ']', 161, + '`', 84, + '{', 106, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(89); + lookahead == ' ') SKIP(85); if (lookahead == '$' || lookahead == '%' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(197); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(193); END_STATE(); - case 90: + case 86: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 91: + case 87: ACCEPT_TOKEN(anon_sym_POUNDinclude); END_STATE(); - case 92: + case 88: ACCEPT_TOKEN(anon_sym_SPACE); - if (lookahead == ' ') ADVANCE(92); + if (lookahead == ' ') ADVANCE(88); END_STATE(); - case 93: + case 89: ACCEPT_TOKEN(anon_sym_SEMI); - if (lookahead == ';') ADVANCE(201); + if (lookahead == ';') ADVANCE(195); END_STATE(); - case 94: + case 90: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90); if (lookahead == '\t' || (0x0b <= lookahead && lookahead <= '\r') || lookahead == ' ' || @@ -2717,28 +2582,28 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '[' || lookahead == ']' || lookahead == '^' || - ('{' <= lookahead && lookahead <= '~')) ADVANCE(84); + ('{' <= lookahead && lookahead <= '~')) ADVANCE(82); if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead)) ADVANCE(195); + (lookahead < '\t' || '\r' < lookahead)) ADVANCE(191); END_STATE(); - case 95: + case 91: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); if (lookahead != 0 && - lookahead != '\n') ADVANCE(84); + lookahead != '\n') ADVANCE(82); END_STATE(); - case 96: + case 92: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(96); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); END_STATE(); - case 97: + case 93: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(97); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 98: + case 94: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); if (lookahead == '\t' || (0x0b <= lookahead && lookahead <= '\r') || lookahead == ' ' || @@ -2749,454 +2614,436 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '[' || lookahead == ']' || lookahead == '^' || - ('{' <= lookahead && lookahead <= '~')) ADVANCE(83); + ('{' <= lookahead && lookahead <= '~')) ADVANCE(81); if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead)) ADVANCE(194); + (lookahead < '\t' || '\r' < lookahead)) ADVANCE(190); END_STATE(); - case 99: + case 95: ACCEPT_TOKEN(sym_version_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(99); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); if (lookahead != 0 && - lookahead != '\n') ADVANCE(83); + lookahead != '\n') ADVANCE(81); END_STATE(); - case 100: + case 96: ACCEPT_TOKEN(anon_sym_POUNDpragma); END_STATE(); - case 101: + case 97: ACCEPT_TOKEN(anon_sym_not_DASHversion); END_STATE(); - case 102: + case 98: ACCEPT_TOKEN(anon_sym_allow_DASHpost_DASHmodification); END_STATE(); - case 103: + case 99: ACCEPT_TOKEN(anon_sym_compute_DASHasm_DASHltr); END_STATE(); - case 104: + case 100: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 105: + case 101: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); - case 106: + case 102: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(130); + if (lookahead == '=') ADVANCE(126); END_STATE(); - case 107: + case 103: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 108: + case 104: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 109: + case 105: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); - case 110: + case 106: ACCEPT_TOKEN(anon_sym_LBRACE); - if (lookahead == '-') ADVANCE(22); + if (lookahead == '-') ADVANCE(21); END_STATE(); - case 111: + case 107: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 112: + case 108: ACCEPT_TOKEN(anon_sym_PLUS_EQ); END_STATE(); - case 113: + case 109: ACCEPT_TOKEN(anon_sym_DASH_EQ); END_STATE(); - case 114: + case 110: ACCEPT_TOKEN(anon_sym_STAR_EQ); END_STATE(); - case 115: + case 111: ACCEPT_TOKEN(anon_sym_SLASH_EQ); END_STATE(); - case 116: + case 112: ACCEPT_TOKEN(anon_sym_TILDE_SLASH_EQ); END_STATE(); - case 117: + case 113: ACCEPT_TOKEN(anon_sym_CARET_SLASH_EQ); END_STATE(); - case 118: + case 114: ACCEPT_TOKEN(anon_sym_PERCENT_EQ); END_STATE(); - case 119: + case 115: ACCEPT_TOKEN(anon_sym_TILDE_PERCENT_EQ); END_STATE(); - case 120: + case 116: ACCEPT_TOKEN(anon_sym_CARET_PERCENT_EQ); END_STATE(); - case 121: + case 117: ACCEPT_TOKEN(anon_sym_LT_LT_EQ); END_STATE(); - case 122: + case 118: ACCEPT_TOKEN(anon_sym_GT_GT_EQ); END_STATE(); - case 123: + case 119: ACCEPT_TOKEN(anon_sym_TILDE_GT_GT_EQ); END_STATE(); - case 124: + case 120: ACCEPT_TOKEN(anon_sym_CARET_GT_GT_EQ); END_STATE(); - case 125: + case 121: ACCEPT_TOKEN(anon_sym_AMP_EQ); END_STATE(); - case 126: + case 122: ACCEPT_TOKEN(anon_sym_PIPE_EQ); END_STATE(); - case 127: + case 123: ACCEPT_TOKEN(anon_sym_CARET_EQ); END_STATE(); - case 128: + case 124: ACCEPT_TOKEN(anon_sym_QMARK); END_STATE(); - case 129: + case 125: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 130: + case 126: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 131: + case 127: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '<') ADVANCE(137); - if (lookahead == '=') ADVANCE(133); + if (lookahead == '<') ADVANCE(133); + if (lookahead == '=') ADVANCE(129); END_STATE(); - case 132: + case 128: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(134); - if (lookahead == '>') ADVANCE(138); + if (lookahead == '=') ADVANCE(130); + if (lookahead == '>') ADVANCE(134); END_STATE(); - case 133: + case 129: ACCEPT_TOKEN(anon_sym_LT_EQ); - if (lookahead == '>') ADVANCE(136); + if (lookahead == '>') ADVANCE(132); END_STATE(); - case 134: + case 130: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 135: + case 131: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 136: + case 132: ACCEPT_TOKEN(anon_sym_LT_EQ_GT); END_STATE(); - case 137: + case 133: ACCEPT_TOKEN(anon_sym_LT_LT); - if (lookahead == '=') ADVANCE(121); + if (lookahead == '=') ADVANCE(117); END_STATE(); - case 138: + case 134: ACCEPT_TOKEN(anon_sym_GT_GT); - if (lookahead == '=') ADVANCE(122); + if (lookahead == '=') ADVANCE(118); END_STATE(); - case 139: + case 135: ACCEPT_TOKEN(anon_sym_TILDE_GT_GT); - if (lookahead == '=') ADVANCE(123); + if (lookahead == '=') ADVANCE(119); END_STATE(); - case 140: + case 136: ACCEPT_TOKEN(anon_sym_CARET_GT_GT); - if (lookahead == '=') ADVANCE(124); + if (lookahead == '=') ADVANCE(120); END_STATE(); - case 141: + case 137: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '0') ADVANCE(167); - if (lookahead == '=') ADVANCE(113); - if (lookahead == '>') ADVANCE(109); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (lookahead == '0') ADVANCE(163); + if (lookahead == '=') ADVANCE(109); + if (lookahead == '>') ADVANCE(105); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); - case 142: + case 138: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '0') ADVANCE(167); - if (lookahead == '=') ADVANCE(113); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (lookahead == '0') ADVANCE(163); + if (lookahead == '=') ADVANCE(109); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); - case 143: + case 139: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '0') ADVANCE(167); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (lookahead == '0') ADVANCE(163); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); - case 144: + case 140: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '=') ADVANCE(113); + if (lookahead == '=') ADVANCE(109); END_STATE(); - case 145: + case 141: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '=') ADVANCE(113); - if (lookahead == '>') ADVANCE(109); + if (lookahead == '=') ADVANCE(109); + if (lookahead == '>') ADVANCE(105); END_STATE(); - case 146: + case 142: ACCEPT_TOKEN(anon_sym_PLUS); - if (lookahead == '=') ADVANCE(112); + if (lookahead == '=') ADVANCE(108); END_STATE(); - case 147: + case 143: ACCEPT_TOKEN(anon_sym_PIPE); - if (lookahead == '=') ADVANCE(126); + if (lookahead == '=') ADVANCE(122); END_STATE(); - case 148: + case 144: ACCEPT_TOKEN(anon_sym_CARET); - if (lookahead == '%') ADVANCE(157); - if (lookahead == '/') ADVANCE(155); - if (lookahead == '=') ADVANCE(127); - if (lookahead == '>') ADVANCE(37); + if (lookahead == '%') ADVANCE(153); + if (lookahead == '/') ADVANCE(151); + if (lookahead == '=') ADVANCE(123); + if (lookahead == '>') ADVANCE(36); END_STATE(); - case 149: + case 145: ACCEPT_TOKEN(anon_sym_CARET); - if (lookahead == '%') ADVANCE(31); - if (lookahead == '/') ADVANCE(32); - if (lookahead == '=') ADVANCE(127); - if (lookahead == '>') ADVANCE(37); + if (lookahead == '%') ADVANCE(30); + if (lookahead == '/') ADVANCE(31); + if (lookahead == '=') ADVANCE(123); + if (lookahead == '>') ADVANCE(36); END_STATE(); - case 150: + case 146: ACCEPT_TOKEN(anon_sym_STAR); - if (lookahead == '=') ADVANCE(114); + if (lookahead == '=') ADVANCE(110); END_STATE(); - case 151: + case 147: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '%') ADVANCE(158); - if (lookahead == '*') ADVANCE(19); - if (lookahead == '/') ADVANCE(201); - if (lookahead == '=') ADVANCE(115); + if (lookahead == '%') ADVANCE(154); + if (lookahead == '*') ADVANCE(18); + if (lookahead == '/') ADVANCE(195); + if (lookahead == '=') ADVANCE(111); END_STATE(); - case 152: + case 148: ACCEPT_TOKEN(anon_sym_PERCENT); - if (lookahead == '=') ADVANCE(118); + if (lookahead == '=') ADVANCE(114); END_STATE(); - case 153: + case 149: ACCEPT_TOKEN(anon_sym_PERCENT); - if (lookahead == '=') ADVANCE(118); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == '=') ADVANCE(114); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 154: + case 150: ACCEPT_TOKEN(anon_sym_TILDE_SLASH); - if (lookahead == '=') ADVANCE(116); + if (lookahead == '=') ADVANCE(112); END_STATE(); - case 155: + case 151: ACCEPT_TOKEN(anon_sym_CARET_SLASH); - if (lookahead == '=') ADVANCE(117); + if (lookahead == '=') ADVANCE(113); END_STATE(); - case 156: + case 152: ACCEPT_TOKEN(anon_sym_TILDE_PERCENT); - if (lookahead == '=') ADVANCE(119); + if (lookahead == '=') ADVANCE(115); END_STATE(); - case 157: + case 153: ACCEPT_TOKEN(anon_sym_CARET_PERCENT); - if (lookahead == '=') ADVANCE(120); + if (lookahead == '=') ADVANCE(116); END_STATE(); - case 158: + case 154: ACCEPT_TOKEN(anon_sym_SLASH_PERCENT); END_STATE(); - case 159: + case 155: ACCEPT_TOKEN(anon_sym_AMP); - if (lookahead == '=') ADVANCE(125); + if (lookahead == '=') ADVANCE(121); END_STATE(); - case 160: + case 156: ACCEPT_TOKEN(anon_sym_TILDE); END_STATE(); - case 161: + case 157: ACCEPT_TOKEN(anon_sym_TILDE); - if (lookahead == '%') ADVANCE(156); - if (lookahead == '/') ADVANCE(154); - if (lookahead == '>') ADVANCE(38); + if (lookahead == '%') ADVANCE(152); + if (lookahead == '/') ADVANCE(150); + if (lookahead == '>') ADVANCE(37); END_STATE(); - case 162: + case 158: ACCEPT_TOKEN(anon_sym_TILDE); - if (lookahead == '%') ADVANCE(33); - if (lookahead == '/') ADVANCE(34); - if (lookahead == '>') ADVANCE(38); + if (lookahead == '%') ADVANCE(32); + if (lookahead == '/') ADVANCE(33); + if (lookahead == '>') ADVANCE(37); END_STATE(); - case 163: + case 159: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); - case 164: + case 160: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 165: + case 161: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 166: + case 162: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (lookahead == 'x') ADVANCE(196); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(168); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'x') ADVANCE(192); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(164); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 167: + case 163: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (lookahead == 'x') ADVANCE(86); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (lookahead == 'x') ADVANCE(83); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); - case 168: + case 164: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(168); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(164); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 169: + case 165: ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(169); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(165); END_STATE(); - case 170: + case 166: ACCEPT_TOKEN(aux_sym_number_literal_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(170); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(166); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 171: + case 167: ACCEPT_TOKEN(aux_sym_number_literal_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(171); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(167); END_STATE(); - case 172: + case 168: ACCEPT_TOKEN(sym_string_literal); END_STATE(); - case 173: + case 169: ACCEPT_TOKEN(sym_string_literal); if (lookahead == 'a' || - lookahead == 's') ADVANCE(176); + lookahead == 's') ADVANCE(172); if (lookahead == 'H' || lookahead == 'c' || lookahead == 'h' || - lookahead == 'u') ADVANCE(175); + lookahead == 'u') ADVANCE(171); END_STATE(); - case 174: + case 170: ACCEPT_TOKEN(sym_string_literal); if (lookahead == 'H' || lookahead == 'c' || lookahead == 'h' || - lookahead == 'u') ADVANCE(175); + lookahead == 'u') ADVANCE(171); END_STATE(); - case 175: + case 171: ACCEPT_TOKEN(sym_number_string_literal); END_STATE(); - case 176: + case 172: ACCEPT_TOKEN(sym_slice_string_literal); END_STATE(); + case 173: + ACCEPT_TOKEN(sym_identifier); + END_STATE(); + case 174: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '-') ADVANCE(79); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + END_STATE(); + case 175: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '-') ADVANCE(68); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + END_STATE(); + case 176: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '-') ADVANCE(41); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); + END_STATE(); case 177: ACCEPT_TOKEN(sym_identifier); + if (lookahead == '=') ADVANCE(114); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 178: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-') ADVANCE(81); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'e') ADVANCE(176); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 179: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-') ADVANCE(70); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'l') ADVANCE(180); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 180: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-') ADVANCE(43); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'l') ADVANCE(184); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 181: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '=') ADVANCE(118); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'm') ADVANCE(185); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 182: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(180); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'o') ADVANCE(181); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 183: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(184); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'o') ADVANCE(186); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 184: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(188); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'o') ADVANCE(189); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 185: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'm') ADVANCE(189); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'p') ADVANCE(188); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 186: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(185); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 't') ADVANCE(174); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 187: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(190); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 't') ADVANCE(178); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 188: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(193); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'u') ADVANCE(187); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 189: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'p') ADVANCE(192); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (lookahead == 'w') ADVANCE(175); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 190: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(178); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 191: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(182); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); case 192: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'u') ADVANCE(191); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); - END_STATE(); - case 193: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'w') ADVANCE(179); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); - END_STATE(); - case 194: - ACCEPT_TOKEN(sym_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(97); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); - END_STATE(); - case 195: - ACCEPT_TOKEN(sym_identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); - END_STATE(); - case 196: ACCEPT_TOKEN(sym_identifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(170); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(166); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 197: + case 193: ACCEPT_TOKEN(sym_identifier); - if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(197); - END_STATE(); - case 198: - ACCEPT_TOKEN(sym_function_name); - if (lookahead == '`') ADVANCE(198); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(40); + if ((!eof && set_contains(sym_identifier_character_set_1, 10, lookahead))) ADVANCE(193); END_STATE(); - case 199: - ACCEPT_TOKEN(sym_function_name); - if (lookahead == '!' || - lookahead == '$' || - lookahead == '%' || - lookahead == '\'' || - ('0' <= lookahead && lookahead <= ':') || - lookahead == '?' || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199); - END_STATE(); - case 200: + case 194: ACCEPT_TOKEN(sym_comment); END_STATE(); - case 201: + case 195: ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && lookahead != '\n' && - lookahead != '\r') ADVANCE(201); + lookahead != '\r') ADVANCE(195); END_STATE(); default: return false; @@ -3610,30 +3457,30 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 89}, + [1] = {.lex_state = 85}, [2] = {.lex_state = 4}, [3] = {.lex_state = 4}, [4] = {.lex_state = 4}, [5] = {.lex_state = 4}, [6] = {.lex_state = 4}, - [7] = {.lex_state = 9}, - [8] = {.lex_state = 9}, - [9] = {.lex_state = 9}, + [7] = {.lex_state = 4}, + [8] = {.lex_state = 4}, + [9] = {.lex_state = 4}, [10] = {.lex_state = 4}, [11] = {.lex_state = 4}, [12] = {.lex_state = 9}, [13] = {.lex_state = 4}, [14] = {.lex_state = 4}, - [15] = {.lex_state = 9}, - [16] = {.lex_state = 4}, - [17] = {.lex_state = 4}, + [15] = {.lex_state = 4}, + [16] = {.lex_state = 9}, + [17] = {.lex_state = 9}, [18] = {.lex_state = 4}, [19] = {.lex_state = 4}, - [20] = {.lex_state = 4}, + [20] = {.lex_state = 9}, [21] = {.lex_state = 4}, [22] = {.lex_state = 4}, [23] = {.lex_state = 4}, - [24] = {.lex_state = 4}, + [24] = {.lex_state = 9}, [25] = {.lex_state = 4}, [26] = {.lex_state = 4}, [27] = {.lex_state = 4}, @@ -3645,8 +3492,8 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [33] = {.lex_state = 4}, [34] = {.lex_state = 4}, [35] = {.lex_state = 4}, - [36] = {.lex_state = 5}, - [37] = {.lex_state = 5}, + [36] = {.lex_state = 4}, + [37] = {.lex_state = 4}, [38] = {.lex_state = 5}, [39] = {.lex_state = 5}, [40] = {.lex_state = 5}, @@ -3655,8 +3502,8 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [43] = {.lex_state = 5}, [44] = {.lex_state = 5}, [45] = {.lex_state = 5}, - [46] = {.lex_state = 6}, - [47] = {.lex_state = 6}, + [46] = {.lex_state = 5}, + [47] = {.lex_state = 5}, [48] = {.lex_state = 6}, [49] = {.lex_state = 6}, [50] = {.lex_state = 6}, @@ -3665,13 +3512,13 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [53] = {.lex_state = 6}, [54] = {.lex_state = 6}, [55] = {.lex_state = 6}, - [56] = {.lex_state = 6}, + [56] = {.lex_state = 7}, [57] = {.lex_state = 6}, - [58] = {.lex_state = 5}, + [58] = {.lex_state = 6}, [59] = {.lex_state = 6}, [60] = {.lex_state = 6}, [61] = {.lex_state = 6}, - [62] = {.lex_state = 7}, + [62] = {.lex_state = 6}, [63] = {.lex_state = 6}, [64] = {.lex_state = 6}, [65] = {.lex_state = 6}, @@ -3681,19 +3528,19 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [69] = {.lex_state = 6}, [70] = {.lex_state = 6}, [71] = {.lex_state = 6}, - [72] = {.lex_state = 7}, + [72] = {.lex_state = 6}, [73] = {.lex_state = 6}, - [74] = {.lex_state = 6}, - [75] = {.lex_state = 9}, - [76] = {.lex_state = 9}, - [77] = {.lex_state = 9}, - [78] = {.lex_state = 7}, - [79] = {.lex_state = 9}, - [80] = {.lex_state = 9}, - [81] = {.lex_state = 7}, + [74] = {.lex_state = 7}, + [75] = {.lex_state = 6}, + [76] = {.lex_state = 6}, + [77] = {.lex_state = 5}, + [78] = {.lex_state = 6}, + [79] = {.lex_state = 7}, + [80] = {.lex_state = 7}, + [81] = {.lex_state = 6}, [82] = {.lex_state = 7}, - [83] = {.lex_state = 6}, - [84] = {.lex_state = 6}, + [83] = {.lex_state = 7}, + [84] = {.lex_state = 7}, [85] = {.lex_state = 7}, [86] = {.lex_state = 7}, [87] = {.lex_state = 7}, @@ -3705,74 +3552,74 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [93] = {.lex_state = 7}, [94] = {.lex_state = 7}, [95] = {.lex_state = 9}, - [96] = {.lex_state = 9}, - [97] = {.lex_state = 9}, - [98] = {.lex_state = 9}, - [99] = {.lex_state = 9}, + [96] = {.lex_state = 7}, + [97] = {.lex_state = 6}, + [98] = {.lex_state = 6}, + [99] = {.lex_state = 7}, [100] = {.lex_state = 9}, [101] = {.lex_state = 9}, [102] = {.lex_state = 9}, [103] = {.lex_state = 9}, [104] = {.lex_state = 9}, - [105] = {.lex_state = 7}, - [106] = {.lex_state = 9}, - [107] = {.lex_state = 7}, - [108] = {.lex_state = 9}, - [109] = {.lex_state = 9}, + [105] = {.lex_state = 9}, + [106] = {.lex_state = 7}, + [107] = {.lex_state = 5}, + [108] = {.lex_state = 6}, + [109] = {.lex_state = 7}, [110] = {.lex_state = 9}, - [111] = {.lex_state = 7}, - [112] = {.lex_state = 9}, - [113] = {.lex_state = 9}, + [111] = {.lex_state = 9}, + [112] = {.lex_state = 6}, + [113] = {.lex_state = 6}, [114] = {.lex_state = 9}, - [115] = {.lex_state = 6}, - [116] = {.lex_state = 5}, - [117] = {.lex_state = 9}, + [115] = {.lex_state = 9}, + [116] = {.lex_state = 9}, + [117] = {.lex_state = 6}, [118] = {.lex_state = 6}, [119] = {.lex_state = 9}, - [120] = {.lex_state = 6}, - [121] = {.lex_state = 7}, + [120] = {.lex_state = 9}, + [121] = {.lex_state = 9}, [122] = {.lex_state = 5}, - [123] = {.lex_state = 5}, + [123] = {.lex_state = 9}, [124] = {.lex_state = 9}, [125] = {.lex_state = 7}, - [126] = {.lex_state = 5}, + [126] = {.lex_state = 9}, [127] = {.lex_state = 9}, - [128] = {.lex_state = 7}, - [129] = {.lex_state = 9}, - [130] = {.lex_state = 5}, - [131] = {.lex_state = 5}, + [128] = {.lex_state = 9}, + [129] = {.lex_state = 7}, + [130] = {.lex_state = 9}, + [131] = {.lex_state = 9}, [132] = {.lex_state = 9}, [133] = {.lex_state = 9}, [134] = {.lex_state = 9}, [135] = {.lex_state = 9}, - [136] = {.lex_state = 9}, - [137] = {.lex_state = 8}, - [138] = {.lex_state = 8}, - [139] = {.lex_state = 8}, - [140] = {.lex_state = 8}, + [136] = {.lex_state = 5}, + [137] = {.lex_state = 9}, + [138] = {.lex_state = 9}, + [139] = {.lex_state = 5}, + [140] = {.lex_state = 9}, [141] = {.lex_state = 9}, - [142] = {.lex_state = 8}, + [142] = {.lex_state = 9}, [143] = {.lex_state = 9}, [144] = {.lex_state = 9}, [145] = {.lex_state = 9}, [146] = {.lex_state = 8}, [147] = {.lex_state = 9}, [148] = {.lex_state = 9}, - [149] = {.lex_state = 9}, - [150] = {.lex_state = 0}, - [151] = {.lex_state = 0}, - [152] = {.lex_state = 0}, - [153] = {.lex_state = 89}, - [154] = {.lex_state = 89}, + [149] = {.lex_state = 8}, + [150] = {.lex_state = 8}, + [151] = {.lex_state = 8}, + [152] = {.lex_state = 8}, + [153] = {.lex_state = 8}, + [154] = {.lex_state = 9}, [155] = {.lex_state = 9}, - [156] = {.lex_state = 9}, + [156] = {.lex_state = 85}, [157] = {.lex_state = 0}, - [158] = {.lex_state = 9}, - [159] = {.lex_state = 9}, - [160] = {.lex_state = 9}, + [158] = {.lex_state = 85}, + [159] = {.lex_state = 0}, + [160] = {.lex_state = 0}, [161] = {.lex_state = 9}, [162] = {.lex_state = 9}, - [163] = {.lex_state = 9}, + [163] = {.lex_state = 0}, [164] = {.lex_state = 9}, [165] = {.lex_state = 9}, [166] = {.lex_state = 9}, @@ -3783,272 +3630,234 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [171] = {.lex_state = 9}, [172] = {.lex_state = 9}, [173] = {.lex_state = 9}, - [174] = {.lex_state = 89}, - [175] = {.lex_state = 0}, - [176] = {.lex_state = 89}, - [177] = {.lex_state = 89}, - [178] = {.lex_state = 89}, - [179] = {.lex_state = 89}, - [180] = {.lex_state = 89}, - [181] = {.lex_state = 89}, - [182] = {.lex_state = 89}, - [183] = {.lex_state = 89}, - [184] = {.lex_state = 89}, - [185] = {.lex_state = 89}, - [186] = {.lex_state = 89}, - [187] = {.lex_state = 89}, - [188] = {.lex_state = 89}, - [189] = {.lex_state = 89}, - [190] = {.lex_state = 89}, - [191] = {.lex_state = 89}, - [192] = {.lex_state = 89}, - [193] = {.lex_state = 89}, - [194] = {.lex_state = 89}, - [195] = {.lex_state = 89}, - [196] = {.lex_state = 89}, - [197] = {.lex_state = 89}, - [198] = {.lex_state = 89}, - [199] = {.lex_state = 89}, - [200] = {.lex_state = 89}, - [201] = {.lex_state = 89}, - [202] = {.lex_state = 89}, - [203] = {.lex_state = 89}, - [204] = {.lex_state = 89}, - [205] = {.lex_state = 89}, - [206] = {.lex_state = 89}, - [207] = {.lex_state = 89}, - [208] = {.lex_state = 89}, - [209] = {.lex_state = 89}, - [210] = {.lex_state = 89}, - [211] = {.lex_state = 89}, - [212] = {.lex_state = 89}, - [213] = {.lex_state = 89}, - [214] = {.lex_state = 89}, - [215] = {.lex_state = 89}, - [216] = {.lex_state = 89}, - [217] = {.lex_state = 89}, - [218] = {.lex_state = 89}, - [219] = {.lex_state = 89}, - [220] = {.lex_state = 89}, - [221] = {.lex_state = 89}, - [222] = {.lex_state = 89}, - [223] = {.lex_state = 89}, - [224] = {.lex_state = 89}, - [225] = {.lex_state = 89}, - [226] = {.lex_state = 89}, - [227] = {.lex_state = 89}, - [228] = {.lex_state = 89}, - [229] = {.lex_state = 89}, - [230] = {.lex_state = 89}, - [231] = {.lex_state = 89}, - [232] = {.lex_state = 89}, - [233] = {.lex_state = 89}, - [234] = {.lex_state = 89}, - [235] = {.lex_state = 89}, - [236] = {.lex_state = 89}, - [237] = {.lex_state = 89}, - [238] = {.lex_state = 89}, - [239] = {.lex_state = 89}, - [240] = {.lex_state = 89}, - [241] = {.lex_state = 89}, - [242] = {.lex_state = 89}, - [243] = {.lex_state = 89}, - [244] = {.lex_state = 89}, - [245] = {.lex_state = 89}, - [246] = {.lex_state = 89}, - [247] = {.lex_state = 1}, - [248] = {.lex_state = 89}, - [249] = {.lex_state = 89}, - [250] = {.lex_state = 89}, - [251] = {.lex_state = 89}, - [252] = {.lex_state = 89}, - [253] = {.lex_state = 89}, - [254] = {.lex_state = 89}, - [255] = {.lex_state = 89}, - [256] = {.lex_state = 89}, - [257] = {.lex_state = 89}, - [258] = {.lex_state = 89}, - [259] = {.lex_state = 89}, - [260] = {.lex_state = 89}, - [261] = {.lex_state = 89}, - [262] = {.lex_state = 89}, - [263] = {.lex_state = 3}, - [264] = {.lex_state = 89}, - [265] = {.lex_state = 89}, - [266] = {.lex_state = 89}, - [267] = {.lex_state = 13}, - [268] = {.lex_state = 89}, - [269] = {.lex_state = 15}, - [270] = {.lex_state = 89}, - [271] = {.lex_state = 15}, - [272] = {.lex_state = 15}, - [273] = {.lex_state = 15}, - [274] = {.lex_state = 13}, - [275] = {.lex_state = 89}, - [276] = {.lex_state = 15}, - [277] = {.lex_state = 13}, - [278] = {.lex_state = 89}, - [279] = {.lex_state = 89}, - [280] = {.lex_state = 15}, - [281] = {.lex_state = 89}, - [282] = {.lex_state = 15}, - [283] = {.lex_state = 15}, - [284] = {.lex_state = 15}, - [285] = {.lex_state = 13}, - [286] = {.lex_state = 89}, - [287] = {.lex_state = 15}, - [288] = {.lex_state = 89}, - [289] = {.lex_state = 89}, - [290] = {.lex_state = 13}, - [291] = {.lex_state = 89}, - [292] = {.lex_state = 89}, - [293] = {.lex_state = 89}, - [294] = {.lex_state = 89}, - [295] = {.lex_state = 89}, - [296] = {.lex_state = 89}, - [297] = {.lex_state = 89}, - [298] = {.lex_state = 89}, - [299] = {.lex_state = 15}, - [300] = {.lex_state = 89}, - [301] = {.lex_state = 89}, - [302] = {.lex_state = 89}, - [303] = {.lex_state = 89}, - [304] = {.lex_state = 89}, - [305] = {.lex_state = 13}, + [174] = {.lex_state = 9}, + [175] = {.lex_state = 9}, + [176] = {.lex_state = 9}, + [177] = {.lex_state = 9}, + [178] = {.lex_state = 9}, + [179] = {.lex_state = 9}, + [180] = {.lex_state = 9}, + [181] = {.lex_state = 85}, + [182] = {.lex_state = 85}, + [183] = {.lex_state = 85}, + [184] = {.lex_state = 85}, + [185] = {.lex_state = 85}, + [186] = {.lex_state = 85}, + [187] = {.lex_state = 85}, + [188] = {.lex_state = 85}, + [189] = {.lex_state = 85}, + [190] = {.lex_state = 85}, + [191] = {.lex_state = 85}, + [192] = {.lex_state = 85}, + [193] = {.lex_state = 85}, + [194] = {.lex_state = 85}, + [195] = {.lex_state = 85}, + [196] = {.lex_state = 0}, + [197] = {.lex_state = 0}, + [198] = {.lex_state = 85}, + [199] = {.lex_state = 85}, + [200] = {.lex_state = 85}, + [201] = {.lex_state = 85}, + [202] = {.lex_state = 85}, + [203] = {.lex_state = 85}, + [204] = {.lex_state = 85}, + [205] = {.lex_state = 85}, + [206] = {.lex_state = 85}, + [207] = {.lex_state = 85}, + [208] = {.lex_state = 85}, + [209] = {.lex_state = 85}, + [210] = {.lex_state = 85}, + [211] = {.lex_state = 85}, + [212] = {.lex_state = 85}, + [213] = {.lex_state = 85}, + [214] = {.lex_state = 85}, + [215] = {.lex_state = 85}, + [216] = {.lex_state = 85}, + [217] = {.lex_state = 85}, + [218] = {.lex_state = 85}, + [219] = {.lex_state = 85}, + [220] = {.lex_state = 85}, + [221] = {.lex_state = 85}, + [222] = {.lex_state = 85}, + [223] = {.lex_state = 85}, + [224] = {.lex_state = 85}, + [225] = {.lex_state = 85}, + [226] = {.lex_state = 85}, + [227] = {.lex_state = 85}, + [228] = {.lex_state = 85}, + [229] = {.lex_state = 85}, + [230] = {.lex_state = 85}, + [231] = {.lex_state = 85}, + [232] = {.lex_state = 85}, + [233] = {.lex_state = 85}, + [234] = {.lex_state = 85}, + [235] = {.lex_state = 85}, + [236] = {.lex_state = 85}, + [237] = {.lex_state = 85}, + [238] = {.lex_state = 85}, + [239] = {.lex_state = 85}, + [240] = {.lex_state = 85}, + [241] = {.lex_state = 85}, + [242] = {.lex_state = 85}, + [243] = {.lex_state = 85}, + [244] = {.lex_state = 85}, + [245] = {.lex_state = 85}, + [246] = {.lex_state = 1}, + [247] = {.lex_state = 85}, + [248] = {.lex_state = 85}, + [249] = {.lex_state = 85}, + [250] = {.lex_state = 85}, + [251] = {.lex_state = 85}, + [252] = {.lex_state = 85}, + [253] = {.lex_state = 85}, + [254] = {.lex_state = 85}, + [255] = {.lex_state = 85}, + [256] = {.lex_state = 85}, + [257] = {.lex_state = 85}, + [258] = {.lex_state = 85}, + [259] = {.lex_state = 3}, + [260] = {.lex_state = 85}, + [261] = {.lex_state = 85}, + [262] = {.lex_state = 85}, + [263] = {.lex_state = 85}, + [264] = {.lex_state = 85}, + [265] = {.lex_state = 85}, + [266] = {.lex_state = 13}, + [267] = {.lex_state = 85}, + [268] = {.lex_state = 13}, + [269] = {.lex_state = 85}, + [270] = {.lex_state = 85}, + [271] = {.lex_state = 85}, + [272] = {.lex_state = 13}, + [273] = {.lex_state = 13}, + [274] = {.lex_state = 85}, + [275] = {.lex_state = 85}, + [276] = {.lex_state = 85}, + [277] = {.lex_state = 85}, + [278] = {.lex_state = 13}, + [279] = {.lex_state = 13}, + [280] = {.lex_state = 85}, + [281] = {.lex_state = 0}, + [282] = {.lex_state = 85}, + [283] = {.lex_state = 0}, + [284] = {.lex_state = 85}, + [285] = {.lex_state = 85}, + [286] = {.lex_state = 85}, + [287] = {.lex_state = 0}, + [288] = {.lex_state = 85}, + [289] = {.lex_state = 85}, + [290] = {.lex_state = 85}, + [291] = {.lex_state = 85}, + [292] = {.lex_state = 85}, + [293] = {.lex_state = 85}, + [294] = {.lex_state = 85}, + [295] = {.lex_state = 0}, + [296] = {.lex_state = 0}, + [297] = {.lex_state = 0}, + [298] = {.lex_state = 0}, + [299] = {.lex_state = 85}, + [300] = {.lex_state = 0}, + [301] = {.lex_state = 85}, + [302] = {.lex_state = 85}, + [303] = {.lex_state = 85}, + [304] = {.lex_state = 0}, + [305] = {.lex_state = 0}, [306] = {.lex_state = 0}, - [307] = {.lex_state = 89}, - [308] = {.lex_state = 89}, - [309] = {.lex_state = 89}, + [307] = {.lex_state = 0}, + [308] = {.lex_state = 0}, + [309] = {.lex_state = 85}, [310] = {.lex_state = 0}, - [311] = {.lex_state = 89}, - [312] = {.lex_state = 89}, - [313] = {.lex_state = 89}, - [314] = {.lex_state = 89}, - [315] = {.lex_state = 0}, - [316] = {.lex_state = 0}, + [311] = {.lex_state = 0}, + [312] = {.lex_state = 85}, + [313] = {.lex_state = 0}, + [314] = {.lex_state = 0}, + [315] = {.lex_state = 85}, + [316] = {.lex_state = 85}, [317] = {.lex_state = 0}, - [318] = {.lex_state = 0}, - [319] = {.lex_state = 0}, - [320] = {.lex_state = 89}, - [321] = {.lex_state = 0}, + [318] = {.lex_state = 2}, + [319] = {.lex_state = 13}, + [320] = {.lex_state = 0}, + [321] = {.lex_state = 85}, [322] = {.lex_state = 0}, [323] = {.lex_state = 0}, [324] = {.lex_state = 0}, - [325] = {.lex_state = 0}, + [325] = {.lex_state = 2}, [326] = {.lex_state = 0}, [327] = {.lex_state = 0}, - [328] = {.lex_state = 89}, - [329] = {.lex_state = 89}, + [328] = {.lex_state = 0}, + [329] = {.lex_state = 0}, [330] = {.lex_state = 0}, [331] = {.lex_state = 0}, [332] = {.lex_state = 0}, [333] = {.lex_state = 0}, - [334] = {.lex_state = 0}, + [334] = {.lex_state = 85}, [335] = {.lex_state = 0}, - [336] = {.lex_state = 89}, - [337] = {.lex_state = 0}, - [338] = {.lex_state = 89}, - [339] = {.lex_state = 13}, - [340] = {.lex_state = 89}, + [336] = {.lex_state = 0}, + [337] = {.lex_state = 85}, + [338] = {.lex_state = 0}, + [339] = {.lex_state = 0}, + [340] = {.lex_state = 85}, [341] = {.lex_state = 0}, [342] = {.lex_state = 0}, - [343] = {.lex_state = 89}, + [343] = {.lex_state = 0}, [344] = {.lex_state = 0}, [345] = {.lex_state = 0}, [346] = {.lex_state = 0}, - [347] = {.lex_state = 89}, + [347] = {.lex_state = 0}, [348] = {.lex_state = 0}, [349] = {.lex_state = 0}, - [350] = {.lex_state = 89}, - [351] = {.lex_state = 2}, + [350] = {.lex_state = 0}, + [351] = {.lex_state = 0}, [352] = {.lex_state = 0}, [353] = {.lex_state = 0}, [354] = {.lex_state = 0}, [355] = {.lex_state = 0}, - [356] = {.lex_state = 0}, - [357] = {.lex_state = 0}, - [358] = {.lex_state = 89}, + [356] = {.lex_state = 85}, + [357] = {.lex_state = 2}, + [358] = {.lex_state = 0}, [359] = {.lex_state = 2}, [360] = {.lex_state = 0}, [361] = {.lex_state = 0}, - [362] = {.lex_state = 89}, + [362] = {.lex_state = 0}, [363] = {.lex_state = 0}, - [364] = {.lex_state = 0}, + [364] = {.lex_state = 2}, [365] = {.lex_state = 0}, [366] = {.lex_state = 0}, - [367] = {.lex_state = 0}, + [367] = {.lex_state = 85}, [368] = {.lex_state = 0}, - [369] = {.lex_state = 89}, + [369] = {.lex_state = 0}, [370] = {.lex_state = 0}, - [371] = {.lex_state = 0}, + [371] = {.lex_state = 85}, [372] = {.lex_state = 0}, [373] = {.lex_state = 0}, [374] = {.lex_state = 0}, [375] = {.lex_state = 0}, [376] = {.lex_state = 0}, [377] = {.lex_state = 0}, - [378] = {.lex_state = 0}, - [379] = {.lex_state = 0}, + [378] = {.lex_state = 85}, + [379] = {.lex_state = 85}, [380] = {.lex_state = 0}, - [381] = {.lex_state = 0}, + [381] = {.lex_state = 85}, [382] = {.lex_state = 0}, [383] = {.lex_state = 0}, - [384] = {.lex_state = 0}, - [385] = {.lex_state = 0}, - [386] = {.lex_state = 0}, - [387] = {.lex_state = 2}, + [384] = {.lex_state = 85}, + [385] = {.lex_state = 85}, + [386] = {.lex_state = 85}, + [387] = {.lex_state = 85}, [388] = {.lex_state = 0}, - [389] = {.lex_state = 0}, - [390] = {.lex_state = 0}, - [391] = {.lex_state = 0}, - [392] = {.lex_state = 2}, - [393] = {.lex_state = 89}, + [389] = {.lex_state = 85}, + [390] = {.lex_state = 85}, + [391] = {.lex_state = 85}, + [392] = {.lex_state = 0}, + [393] = {.lex_state = 0}, [394] = {.lex_state = 0}, - [395] = {.lex_state = 89}, - [396] = {.lex_state = 2}, - [397] = {.lex_state = 89}, + [395] = {.lex_state = 85}, + [396] = {.lex_state = 85}, + [397] = {.lex_state = 0}, [398] = {.lex_state = 0}, [399] = {.lex_state = 0}, - [400] = {.lex_state = 0}, + [400] = {.lex_state = 85}, [401] = {.lex_state = 0}, - [402] = {.lex_state = 0}, - [403] = {.lex_state = 0}, - [404] = {.lex_state = 0}, - [405] = {.lex_state = 0}, - [406] = {.lex_state = 0}, - [407] = {.lex_state = 89}, - [408] = {.lex_state = 0}, - [409] = {.lex_state = 89}, - [410] = {.lex_state = 0}, - [411] = {.lex_state = 89}, - [412] = {.lex_state = 89}, - [413] = {.lex_state = 0}, - [414] = {.lex_state = 0}, - [415] = {.lex_state = 0}, - [416] = {.lex_state = 0}, - [417] = {.lex_state = 89}, - [418] = {.lex_state = 89}, - [419] = {.lex_state = 0}, - [420] = {.lex_state = 0}, - [421] = {.lex_state = 0}, - [422] = {.lex_state = 89}, - [423] = {.lex_state = 0}, - [424] = {.lex_state = 0}, - [425] = {.lex_state = 89}, - [426] = {.lex_state = 15}, - [427] = {.lex_state = 0}, - [428] = {.lex_state = 89}, - [429] = {.lex_state = 89}, - [430] = {.lex_state = 0}, - [431] = {.lex_state = 0}, - [432] = {.lex_state = 15}, - [433] = {.lex_state = 89}, - [434] = {.lex_state = 0}, - [435] = {.lex_state = 0}, - [436] = {.lex_state = 89}, - [437] = {.lex_state = 0}, - [438] = {.lex_state = 0}, - [439] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -4151,24 +3960,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(1)] = { - [sym_source_file] = STATE(431), - [sym__top_level_item] = STATE(154), - [sym_import_directive] = STATE(154), - [sym_pragma_directive] = STATE(154), - [sym_global_var_declarations] = STATE(154), - [sym_constant_declarations] = STATE(154), - [sym_function_declaration] = STATE(154), - [sym_type_parameters] = STATE(212), - [sym_empty_statement] = STATE(154), - [sym__type_hint] = STATE(426), - [sym_function_type] = STATE(426), - [sym__atomic_type] = STATE(287), - [sym_primitive_type] = STATE(287), - [sym_tensor_type] = STATE(287), - [sym_tuple_type] = STATE(287), - [sym_hole_type] = STATE(287), - [sym_type_identifier] = STATE(287), - [aux_sym_source_file_repeat1] = STATE(154), + [sym_source_file] = STATE(399), + [sym__top_level_item] = STATE(158), + [sym_import_directive] = STATE(158), + [sym_pragma_directive] = STATE(158), + [sym_global_var_declarations] = STATE(158), + [sym_constant_declarations] = STATE(158), + [sym_function_declaration] = STATE(158), + [sym_type_parameters] = STATE(210), + [sym_empty_statement] = STATE(158), + [sym__type_hint] = STATE(386), + [sym_function_type] = STATE(386), + [sym__atomic_type] = STATE(250), + [sym__parenthesized_type] = STATE(250), + [sym_primitive_type] = STATE(250), + [sym_tensor_type] = STATE(250), + [sym_tuple_type] = STATE(250), + [sym_hole_type] = STATE(250), + [sym_type_identifier] = STATE(250), + [aux_sym_source_file_repeat1] = STATE(158), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [anon_sym_POUNDinclude] = ACTIONS(9), @@ -4340,8 +4150,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(4)] = { - [sym_method_call] = STATE(6), - [aux_sym__expr80_repeat1] = STATE(6), + [sym_method_call] = STATE(5), + [aux_sym__expr80_repeat1] = STATE(5), [sym_identifier] = ACTIONS(45), [anon_sym_SEMI] = ACTIONS(45), [anon_sym_EQ] = ACTIONS(45), @@ -4414,8 +4224,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(5)] = { - [sym_method_call] = STATE(4), - [aux_sym__expr80_repeat1] = STATE(4), + [sym_method_call] = STATE(6), + [aux_sym__expr80_repeat1] = STATE(6), [sym_identifier] = ACTIONS(51), [anon_sym_SEMI] = ACTIONS(51), [anon_sym_EQ] = ACTIONS(51), @@ -4562,2098 +4372,2237 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(7)] = { - [sym__statement] = STATE(9), - [sym_return_statement] = STATE(9), - [sym_block_statement] = STATE(9), - [sym_expression_statement] = STATE(9), - [sym_empty_statement] = STATE(9), - [sym_repeat_statement] = STATE(9), - [sym_if_statement] = STATE(9), - [sym_do_while_statement] = STATE(9), - [sym_while_statement] = STATE(9), - [sym_try_catch_statement] = STATE(9), - [sym__expression] = STATE(437), - [sym__expr10] = STATE(437), - [sym_ternary_condition] = STATE(421), - [sym_ternary_expression] = STATE(175), - [sym__expr13] = STATE(175), - [sym__expr15] = STATE(116), - [sym__expr17] = STATE(157), - [sym__expr20] = STATE(150), - [sym__expr30] = STATE(140), - [sym__expr75] = STATE(107), - [sym__expr80] = STATE(107), - [sym__expr90] = STATE(72), - [sym_function_application] = STATE(72), - [sym_var_declaration] = STATE(73), - [sym_tensor_vars_declaration] = STATE(73), - [sym__multiple_vars_declaration] = STATE(73), - [sym_local_vars_declaration] = STATE(46), - [sym_tuple_vars_declaration] = STATE(73), - [sym__nontype_expr100] = STATE(46), - [sym__expr100] = STATE(72), - [sym_parenthesized_expression] = STATE(46), - [sym_tensor_expression] = STATE(46), - [sym_typed_tuple] = STATE(46), - [sym__type_hint] = STATE(417), - [sym_function_type] = STATE(417), - [sym__atomic_type] = STATE(257), - [sym_primitive_type] = STATE(257), - [sym_tensor_type] = STATE(257), - [sym_tuple_type] = STATE(257), - [sym_hole_type] = STATE(257), - [sym_type_identifier] = STATE(257), - [sym_number_literal] = STATE(46), - [aux_sym_block_statement_repeat1] = STATE(9), [sym_identifier] = ACTIONS(65), - [anon_sym_SEMI] = ACTIONS(67), - [anon_sym_LPAREN] = ACTIONS(69), - [anon_sym_return] = ACTIONS(71), - [anon_sym_LBRACE] = ACTIONS(73), - [anon_sym_RBRACE] = ACTIONS(75), - [anon_sym_repeat] = ACTIONS(77), - [anon_sym_if] = ACTIONS(79), - [anon_sym_ifnot] = ACTIONS(79), - [anon_sym_do] = ACTIONS(81), - [anon_sym_while] = ACTIONS(83), - [anon_sym_try] = ACTIONS(85), - [anon_sym_DASH] = ACTIONS(87), - [anon_sym_TILDE] = ACTIONS(89), - [anon_sym_LBRACK] = ACTIONS(91), - [anon_sym_int] = ACTIONS(93), - [anon_sym_cell] = ACTIONS(93), - [anon_sym_slice] = ACTIONS(93), - [anon_sym_builder] = ACTIONS(93), - [anon_sym_cont] = ACTIONS(93), - [anon_sym_tuple] = ACTIONS(93), - [sym_var_type] = ACTIONS(95), - [aux_sym_number_literal_token1] = ACTIONS(97), - [sym_string_literal] = ACTIONS(99), - [sym_number_string_literal] = ACTIONS(101), - [sym_slice_string_literal] = ACTIONS(103), - [sym_underscore] = ACTIONS(105), + [anon_sym_SEMI] = ACTIONS(65), + [anon_sym_EQ] = ACTIONS(65), + [anon_sym_LPAREN] = ACTIONS(67), + [anon_sym_DASH_GT] = ACTIONS(69), + [anon_sym_return] = ACTIONS(65), + [anon_sym_LBRACE] = ACTIONS(65), + [anon_sym_RBRACE] = ACTIONS(67), + [anon_sym_repeat] = ACTIONS(65), + [anon_sym_if] = ACTIONS(65), + [anon_sym_ifnot] = ACTIONS(65), + [anon_sym_do] = ACTIONS(65), + [anon_sym_while] = ACTIONS(65), + [anon_sym_try] = ACTIONS(65), + [anon_sym_PLUS_EQ] = ACTIONS(67), + [anon_sym_DASH_EQ] = ACTIONS(67), + [anon_sym_STAR_EQ] = ACTIONS(67), + [anon_sym_SLASH_EQ] = ACTIONS(67), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(67), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(67), + [anon_sym_PERCENT_EQ] = ACTIONS(67), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(67), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(67), + [anon_sym_LT_LT_EQ] = ACTIONS(67), + [anon_sym_GT_GT_EQ] = ACTIONS(67), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(67), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(67), + [anon_sym_AMP_EQ] = ACTIONS(67), + [anon_sym_PIPE_EQ] = ACTIONS(67), + [anon_sym_CARET_EQ] = ACTIONS(67), + [anon_sym_QMARK] = ACTIONS(67), + [anon_sym_EQ_EQ] = ACTIONS(67), + [anon_sym_LT] = ACTIONS(65), + [anon_sym_GT] = ACTIONS(65), + [anon_sym_LT_EQ] = ACTIONS(65), + [anon_sym_GT_EQ] = ACTIONS(67), + [anon_sym_BANG_EQ] = ACTIONS(67), + [anon_sym_LT_EQ_GT] = ACTIONS(67), + [anon_sym_LT_LT] = ACTIONS(65), + [anon_sym_GT_GT] = ACTIONS(65), + [anon_sym_TILDE_GT_GT] = ACTIONS(65), + [anon_sym_CARET_GT_GT] = ACTIONS(65), + [anon_sym_DASH] = ACTIONS(65), + [anon_sym_PLUS] = ACTIONS(65), + [anon_sym_PIPE] = ACTIONS(65), + [anon_sym_CARET] = ACTIONS(65), + [anon_sym_STAR] = ACTIONS(65), + [anon_sym_SLASH] = ACTIONS(65), + [anon_sym_PERCENT] = ACTIONS(65), + [anon_sym_TILDE_SLASH] = ACTIONS(65), + [anon_sym_CARET_SLASH] = ACTIONS(65), + [anon_sym_TILDE_PERCENT] = ACTIONS(65), + [anon_sym_CARET_PERCENT] = ACTIONS(65), + [anon_sym_SLASH_PERCENT] = ACTIONS(67), + [anon_sym_AMP] = ACTIONS(65), + [anon_sym_TILDE] = ACTIONS(65), + [anon_sym_DOT] = ACTIONS(67), + [anon_sym_LBRACK] = ACTIONS(67), + [anon_sym_int] = ACTIONS(65), + [anon_sym_cell] = ACTIONS(65), + [anon_sym_slice] = ACTIONS(65), + [anon_sym_builder] = ACTIONS(65), + [anon_sym_cont] = ACTIONS(65), + [anon_sym_tuple] = ACTIONS(65), + [sym_var_type] = ACTIONS(65), + [aux_sym_number_literal_token1] = ACTIONS(65), + [sym_string_literal] = ACTIONS(65), + [sym_number_string_literal] = ACTIONS(67), + [sym_slice_string_literal] = ACTIONS(67), + [sym_underscore] = ACTIONS(65), [sym_comment] = ACTIONS(3), }, [STATE(8)] = { - [sym__statement] = STATE(8), - [sym_return_statement] = STATE(8), - [sym_block_statement] = STATE(8), - [sym_expression_statement] = STATE(8), - [sym_empty_statement] = STATE(8), - [sym_repeat_statement] = STATE(8), - [sym_if_statement] = STATE(8), - [sym_do_while_statement] = STATE(8), - [sym_while_statement] = STATE(8), - [sym_try_catch_statement] = STATE(8), - [sym__expression] = STATE(437), - [sym__expr10] = STATE(437), - [sym_ternary_condition] = STATE(421), - [sym_ternary_expression] = STATE(175), - [sym__expr13] = STATE(175), - [sym__expr15] = STATE(116), - [sym__expr17] = STATE(157), - [sym__expr20] = STATE(150), - [sym__expr30] = STATE(140), - [sym__expr75] = STATE(107), - [sym__expr80] = STATE(107), - [sym__expr90] = STATE(72), - [sym_function_application] = STATE(72), - [sym_var_declaration] = STATE(73), - [sym_tensor_vars_declaration] = STATE(73), - [sym__multiple_vars_declaration] = STATE(73), - [sym_local_vars_declaration] = STATE(46), - [sym_tuple_vars_declaration] = STATE(73), - [sym__nontype_expr100] = STATE(46), - [sym__expr100] = STATE(72), - [sym_parenthesized_expression] = STATE(46), - [sym_tensor_expression] = STATE(46), - [sym_typed_tuple] = STATE(46), - [sym__type_hint] = STATE(417), - [sym_function_type] = STATE(417), - [sym__atomic_type] = STATE(257), - [sym_primitive_type] = STATE(257), - [sym_tensor_type] = STATE(257), - [sym_tuple_type] = STATE(257), - [sym_hole_type] = STATE(257), - [sym_type_identifier] = STATE(257), - [sym_number_literal] = STATE(46), - [aux_sym_block_statement_repeat1] = STATE(8), - [sym_identifier] = ACTIONS(107), - [anon_sym_SEMI] = ACTIONS(110), - [anon_sym_LPAREN] = ACTIONS(113), - [anon_sym_return] = ACTIONS(116), - [anon_sym_LBRACE] = ACTIONS(119), - [anon_sym_RBRACE] = ACTIONS(122), - [anon_sym_repeat] = ACTIONS(124), - [anon_sym_if] = ACTIONS(127), - [anon_sym_ifnot] = ACTIONS(127), - [anon_sym_do] = ACTIONS(130), - [anon_sym_while] = ACTIONS(133), - [anon_sym_try] = ACTIONS(136), - [anon_sym_DASH] = ACTIONS(139), - [anon_sym_TILDE] = ACTIONS(142), - [anon_sym_LBRACK] = ACTIONS(145), - [anon_sym_int] = ACTIONS(148), - [anon_sym_cell] = ACTIONS(148), - [anon_sym_slice] = ACTIONS(148), - [anon_sym_builder] = ACTIONS(148), - [anon_sym_cont] = ACTIONS(148), - [anon_sym_tuple] = ACTIONS(148), - [sym_var_type] = ACTIONS(151), - [aux_sym_number_literal_token1] = ACTIONS(154), - [sym_string_literal] = ACTIONS(157), - [sym_number_string_literal] = ACTIONS(160), - [sym_slice_string_literal] = ACTIONS(163), - [sym_underscore] = ACTIONS(166), + [sym_identifier] = ACTIONS(65), + [anon_sym_SEMI] = ACTIONS(65), + [anon_sym_EQ] = ACTIONS(65), + [anon_sym_LPAREN] = ACTIONS(67), + [anon_sym_DASH_GT] = ACTIONS(71), + [anon_sym_return] = ACTIONS(65), + [anon_sym_LBRACE] = ACTIONS(65), + [anon_sym_RBRACE] = ACTIONS(67), + [anon_sym_repeat] = ACTIONS(65), + [anon_sym_if] = ACTIONS(65), + [anon_sym_ifnot] = ACTIONS(65), + [anon_sym_do] = ACTIONS(65), + [anon_sym_while] = ACTIONS(65), + [anon_sym_try] = ACTIONS(65), + [anon_sym_PLUS_EQ] = ACTIONS(67), + [anon_sym_DASH_EQ] = ACTIONS(67), + [anon_sym_STAR_EQ] = ACTIONS(67), + [anon_sym_SLASH_EQ] = ACTIONS(67), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(67), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(67), + [anon_sym_PERCENT_EQ] = ACTIONS(67), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(67), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(67), + [anon_sym_LT_LT_EQ] = ACTIONS(67), + [anon_sym_GT_GT_EQ] = ACTIONS(67), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(67), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(67), + [anon_sym_AMP_EQ] = ACTIONS(67), + [anon_sym_PIPE_EQ] = ACTIONS(67), + [anon_sym_CARET_EQ] = ACTIONS(67), + [anon_sym_QMARK] = ACTIONS(67), + [anon_sym_EQ_EQ] = ACTIONS(67), + [anon_sym_LT] = ACTIONS(65), + [anon_sym_GT] = ACTIONS(65), + [anon_sym_LT_EQ] = ACTIONS(65), + [anon_sym_GT_EQ] = ACTIONS(67), + [anon_sym_BANG_EQ] = ACTIONS(67), + [anon_sym_LT_EQ_GT] = ACTIONS(67), + [anon_sym_LT_LT] = ACTIONS(65), + [anon_sym_GT_GT] = ACTIONS(65), + [anon_sym_TILDE_GT_GT] = ACTIONS(65), + [anon_sym_CARET_GT_GT] = ACTIONS(65), + [anon_sym_DASH] = ACTIONS(65), + [anon_sym_PLUS] = ACTIONS(65), + [anon_sym_PIPE] = ACTIONS(65), + [anon_sym_CARET] = ACTIONS(65), + [anon_sym_STAR] = ACTIONS(65), + [anon_sym_SLASH] = ACTIONS(65), + [anon_sym_PERCENT] = ACTIONS(65), + [anon_sym_TILDE_SLASH] = ACTIONS(65), + [anon_sym_CARET_SLASH] = ACTIONS(65), + [anon_sym_TILDE_PERCENT] = ACTIONS(65), + [anon_sym_CARET_PERCENT] = ACTIONS(65), + [anon_sym_SLASH_PERCENT] = ACTIONS(67), + [anon_sym_AMP] = ACTIONS(65), + [anon_sym_TILDE] = ACTIONS(65), + [anon_sym_DOT] = ACTIONS(67), + [anon_sym_LBRACK] = ACTIONS(67), + [anon_sym_int] = ACTIONS(65), + [anon_sym_cell] = ACTIONS(65), + [anon_sym_slice] = ACTIONS(65), + [anon_sym_builder] = ACTIONS(65), + [anon_sym_cont] = ACTIONS(65), + [anon_sym_tuple] = ACTIONS(65), + [sym_var_type] = ACTIONS(65), + [aux_sym_number_literal_token1] = ACTIONS(65), + [sym_string_literal] = ACTIONS(65), + [sym_number_string_literal] = ACTIONS(67), + [sym_slice_string_literal] = ACTIONS(67), + [sym_underscore] = ACTIONS(65), [sym_comment] = ACTIONS(3), }, [STATE(9)] = { - [sym__statement] = STATE(8), - [sym_return_statement] = STATE(8), - [sym_block_statement] = STATE(8), - [sym_expression_statement] = STATE(8), - [sym_empty_statement] = STATE(8), - [sym_repeat_statement] = STATE(8), - [sym_if_statement] = STATE(8), - [sym_do_while_statement] = STATE(8), - [sym_while_statement] = STATE(8), - [sym_try_catch_statement] = STATE(8), - [sym__expression] = STATE(437), - [sym__expr10] = STATE(437), - [sym_ternary_condition] = STATE(421), - [sym_ternary_expression] = STATE(175), - [sym__expr13] = STATE(175), - [sym__expr15] = STATE(116), - [sym__expr17] = STATE(157), - [sym__expr20] = STATE(150), - [sym__expr30] = STATE(140), - [sym__expr75] = STATE(107), - [sym__expr80] = STATE(107), - [sym__expr90] = STATE(72), - [sym_function_application] = STATE(72), - [sym_var_declaration] = STATE(73), - [sym_tensor_vars_declaration] = STATE(73), - [sym__multiple_vars_declaration] = STATE(73), - [sym_local_vars_declaration] = STATE(46), - [sym_tuple_vars_declaration] = STATE(73), - [sym__nontype_expr100] = STATE(46), - [sym__expr100] = STATE(72), - [sym_parenthesized_expression] = STATE(46), - [sym_tensor_expression] = STATE(46), - [sym_typed_tuple] = STATE(46), - [sym__type_hint] = STATE(417), - [sym_function_type] = STATE(417), - [sym__atomic_type] = STATE(257), - [sym_primitive_type] = STATE(257), - [sym_tensor_type] = STATE(257), - [sym_tuple_type] = STATE(257), - [sym_hole_type] = STATE(257), - [sym_type_identifier] = STATE(257), - [sym_number_literal] = STATE(46), - [aux_sym_block_statement_repeat1] = STATE(8), - [sym_identifier] = ACTIONS(65), - [anon_sym_SEMI] = ACTIONS(67), - [anon_sym_LPAREN] = ACTIONS(69), - [anon_sym_return] = ACTIONS(71), - [anon_sym_LBRACE] = ACTIONS(73), - [anon_sym_RBRACE] = ACTIONS(169), - [anon_sym_repeat] = ACTIONS(77), - [anon_sym_if] = ACTIONS(79), - [anon_sym_ifnot] = ACTIONS(79), - [anon_sym_do] = ACTIONS(81), - [anon_sym_while] = ACTIONS(83), - [anon_sym_try] = ACTIONS(85), - [anon_sym_DASH] = ACTIONS(87), - [anon_sym_TILDE] = ACTIONS(89), - [anon_sym_LBRACK] = ACTIONS(91), - [anon_sym_int] = ACTIONS(93), - [anon_sym_cell] = ACTIONS(93), - [anon_sym_slice] = ACTIONS(93), - [anon_sym_builder] = ACTIONS(93), - [anon_sym_cont] = ACTIONS(93), - [anon_sym_tuple] = ACTIONS(93), - [sym_var_type] = ACTIONS(95), - [aux_sym_number_literal_token1] = ACTIONS(97), - [sym_string_literal] = ACTIONS(99), - [sym_number_string_literal] = ACTIONS(101), - [sym_slice_string_literal] = ACTIONS(103), - [sym_underscore] = ACTIONS(105), + [sym_identifier] = ACTIONS(73), + [anon_sym_SEMI] = ACTIONS(76), + [anon_sym_EQ] = ACTIONS(76), + [anon_sym_LPAREN] = ACTIONS(78), + [anon_sym_DASH_GT] = ACTIONS(80), + [anon_sym_return] = ACTIONS(76), + [anon_sym_LBRACE] = ACTIONS(76), + [anon_sym_RBRACE] = ACTIONS(78), + [anon_sym_repeat] = ACTIONS(76), + [anon_sym_if] = ACTIONS(76), + [anon_sym_ifnot] = ACTIONS(76), + [anon_sym_do] = ACTIONS(76), + [anon_sym_while] = ACTIONS(76), + [anon_sym_try] = ACTIONS(76), + [anon_sym_PLUS_EQ] = ACTIONS(78), + [anon_sym_DASH_EQ] = ACTIONS(78), + [anon_sym_STAR_EQ] = ACTIONS(78), + [anon_sym_SLASH_EQ] = ACTIONS(78), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(78), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(78), + [anon_sym_PERCENT_EQ] = ACTIONS(78), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(78), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(78), + [anon_sym_LT_LT_EQ] = ACTIONS(78), + [anon_sym_GT_GT_EQ] = ACTIONS(78), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(78), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(78), + [anon_sym_AMP_EQ] = ACTIONS(78), + [anon_sym_PIPE_EQ] = ACTIONS(78), + [anon_sym_CARET_EQ] = ACTIONS(78), + [anon_sym_QMARK] = ACTIONS(78), + [anon_sym_EQ_EQ] = ACTIONS(78), + [anon_sym_LT] = ACTIONS(76), + [anon_sym_GT] = ACTIONS(76), + [anon_sym_LT_EQ] = ACTIONS(76), + [anon_sym_GT_EQ] = ACTIONS(78), + [anon_sym_BANG_EQ] = ACTIONS(78), + [anon_sym_LT_EQ_GT] = ACTIONS(78), + [anon_sym_LT_LT] = ACTIONS(76), + [anon_sym_GT_GT] = ACTIONS(76), + [anon_sym_TILDE_GT_GT] = ACTIONS(76), + [anon_sym_CARET_GT_GT] = ACTIONS(76), + [anon_sym_DASH] = ACTIONS(76), + [anon_sym_PLUS] = ACTIONS(76), + [anon_sym_PIPE] = ACTIONS(76), + [anon_sym_CARET] = ACTIONS(76), + [anon_sym_STAR] = ACTIONS(76), + [anon_sym_SLASH] = ACTIONS(76), + [anon_sym_PERCENT] = ACTIONS(76), + [anon_sym_TILDE_SLASH] = ACTIONS(76), + [anon_sym_CARET_SLASH] = ACTIONS(76), + [anon_sym_TILDE_PERCENT] = ACTIONS(76), + [anon_sym_CARET_PERCENT] = ACTIONS(76), + [anon_sym_SLASH_PERCENT] = ACTIONS(78), + [anon_sym_AMP] = ACTIONS(76), + [anon_sym_TILDE] = ACTIONS(76), + [anon_sym_DOT] = ACTIONS(78), + [anon_sym_LBRACK] = ACTIONS(78), + [anon_sym_int] = ACTIONS(76), + [anon_sym_cell] = ACTIONS(76), + [anon_sym_slice] = ACTIONS(76), + [anon_sym_builder] = ACTIONS(76), + [anon_sym_cont] = ACTIONS(76), + [anon_sym_tuple] = ACTIONS(76), + [sym_var_type] = ACTIONS(76), + [aux_sym_number_literal_token1] = ACTIONS(76), + [sym_string_literal] = ACTIONS(76), + [sym_number_string_literal] = ACTIONS(78), + [sym_slice_string_literal] = ACTIONS(78), + [sym_underscore] = ACTIONS(76), [sym_comment] = ACTIONS(3), }, [STATE(10)] = { - [sym_identifier] = ACTIONS(171), - [anon_sym_SEMI] = ACTIONS(171), - [anon_sym_EQ] = ACTIONS(171), - [anon_sym_LPAREN] = ACTIONS(173), - [anon_sym_DASH_GT] = ACTIONS(175), - [anon_sym_return] = ACTIONS(171), - [anon_sym_LBRACE] = ACTIONS(171), - [anon_sym_RBRACE] = ACTIONS(173), - [anon_sym_repeat] = ACTIONS(171), - [anon_sym_if] = ACTIONS(171), - [anon_sym_ifnot] = ACTIONS(171), - [anon_sym_do] = ACTIONS(171), - [anon_sym_while] = ACTIONS(171), - [anon_sym_try] = ACTIONS(171), - [anon_sym_PLUS_EQ] = ACTIONS(173), - [anon_sym_DASH_EQ] = ACTIONS(173), - [anon_sym_STAR_EQ] = ACTIONS(173), - [anon_sym_SLASH_EQ] = ACTIONS(173), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(173), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(173), - [anon_sym_PERCENT_EQ] = ACTIONS(173), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(173), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(173), - [anon_sym_LT_LT_EQ] = ACTIONS(173), - [anon_sym_GT_GT_EQ] = ACTIONS(173), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(173), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(173), - [anon_sym_AMP_EQ] = ACTIONS(173), - [anon_sym_PIPE_EQ] = ACTIONS(173), - [anon_sym_CARET_EQ] = ACTIONS(173), - [anon_sym_QMARK] = ACTIONS(173), - [anon_sym_EQ_EQ] = ACTIONS(173), - [anon_sym_LT] = ACTIONS(171), - [anon_sym_GT] = ACTIONS(171), - [anon_sym_LT_EQ] = ACTIONS(171), - [anon_sym_GT_EQ] = ACTIONS(173), - [anon_sym_BANG_EQ] = ACTIONS(173), - [anon_sym_LT_EQ_GT] = ACTIONS(173), - [anon_sym_LT_LT] = ACTIONS(171), - [anon_sym_GT_GT] = ACTIONS(171), - [anon_sym_TILDE_GT_GT] = ACTIONS(171), - [anon_sym_CARET_GT_GT] = ACTIONS(171), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_PIPE] = ACTIONS(171), - [anon_sym_CARET] = ACTIONS(171), - [anon_sym_STAR] = ACTIONS(171), - [anon_sym_SLASH] = ACTIONS(171), - [anon_sym_PERCENT] = ACTIONS(171), - [anon_sym_TILDE_SLASH] = ACTIONS(171), - [anon_sym_CARET_SLASH] = ACTIONS(171), - [anon_sym_TILDE_PERCENT] = ACTIONS(171), - [anon_sym_CARET_PERCENT] = ACTIONS(171), - [anon_sym_SLASH_PERCENT] = ACTIONS(173), - [anon_sym_AMP] = ACTIONS(171), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_DOT] = ACTIONS(173), - [anon_sym_LBRACK] = ACTIONS(173), - [anon_sym_int] = ACTIONS(171), - [anon_sym_cell] = ACTIONS(171), - [anon_sym_slice] = ACTIONS(171), - [anon_sym_builder] = ACTIONS(171), - [anon_sym_cont] = ACTIONS(171), - [anon_sym_tuple] = ACTIONS(171), - [sym_var_type] = ACTIONS(171), - [aux_sym_number_literal_token1] = ACTIONS(171), - [sym_string_literal] = ACTIONS(171), - [sym_number_string_literal] = ACTIONS(173), - [sym_slice_string_literal] = ACTIONS(173), - [sym_underscore] = ACTIONS(171), + [sym_identifier] = ACTIONS(82), + [anon_sym_SEMI] = ACTIONS(85), + [anon_sym_EQ] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(87), + [anon_sym_DASH_GT] = ACTIONS(89), + [anon_sym_return] = ACTIONS(85), + [anon_sym_LBRACE] = ACTIONS(85), + [anon_sym_RBRACE] = ACTIONS(87), + [anon_sym_repeat] = ACTIONS(85), + [anon_sym_if] = ACTIONS(85), + [anon_sym_ifnot] = ACTIONS(85), + [anon_sym_do] = ACTIONS(85), + [anon_sym_while] = ACTIONS(85), + [anon_sym_try] = ACTIONS(85), + [anon_sym_PLUS_EQ] = ACTIONS(87), + [anon_sym_DASH_EQ] = ACTIONS(87), + [anon_sym_STAR_EQ] = ACTIONS(87), + [anon_sym_SLASH_EQ] = ACTIONS(87), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(87), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(87), + [anon_sym_PERCENT_EQ] = ACTIONS(87), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(87), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(87), + [anon_sym_LT_LT_EQ] = ACTIONS(87), + [anon_sym_GT_GT_EQ] = ACTIONS(87), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(87), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(87), + [anon_sym_AMP_EQ] = ACTIONS(87), + [anon_sym_PIPE_EQ] = ACTIONS(87), + [anon_sym_CARET_EQ] = ACTIONS(87), + [anon_sym_QMARK] = ACTIONS(87), + [anon_sym_EQ_EQ] = ACTIONS(87), + [anon_sym_LT] = ACTIONS(85), + [anon_sym_GT] = ACTIONS(85), + [anon_sym_LT_EQ] = ACTIONS(85), + [anon_sym_GT_EQ] = ACTIONS(87), + [anon_sym_BANG_EQ] = ACTIONS(87), + [anon_sym_LT_EQ_GT] = ACTIONS(87), + [anon_sym_LT_LT] = ACTIONS(85), + [anon_sym_GT_GT] = ACTIONS(85), + [anon_sym_TILDE_GT_GT] = ACTIONS(85), + [anon_sym_CARET_GT_GT] = ACTIONS(85), + [anon_sym_DASH] = ACTIONS(85), + [anon_sym_PLUS] = ACTIONS(85), + [anon_sym_PIPE] = ACTIONS(85), + [anon_sym_CARET] = ACTIONS(85), + [anon_sym_STAR] = ACTIONS(85), + [anon_sym_SLASH] = ACTIONS(85), + [anon_sym_PERCENT] = ACTIONS(85), + [anon_sym_TILDE_SLASH] = ACTIONS(85), + [anon_sym_CARET_SLASH] = ACTIONS(85), + [anon_sym_TILDE_PERCENT] = ACTIONS(85), + [anon_sym_CARET_PERCENT] = ACTIONS(85), + [anon_sym_SLASH_PERCENT] = ACTIONS(87), + [anon_sym_AMP] = ACTIONS(85), + [anon_sym_TILDE] = ACTIONS(85), + [anon_sym_DOT] = ACTIONS(87), + [anon_sym_LBRACK] = ACTIONS(87), + [anon_sym_int] = ACTIONS(85), + [anon_sym_cell] = ACTIONS(85), + [anon_sym_slice] = ACTIONS(85), + [anon_sym_builder] = ACTIONS(85), + [anon_sym_cont] = ACTIONS(85), + [anon_sym_tuple] = ACTIONS(85), + [sym_var_type] = ACTIONS(85), + [aux_sym_number_literal_token1] = ACTIONS(85), + [sym_string_literal] = ACTIONS(85), + [sym_number_string_literal] = ACTIONS(87), + [sym_slice_string_literal] = ACTIONS(87), + [sym_underscore] = ACTIONS(85), [sym_comment] = ACTIONS(3), }, [STATE(11)] = { - [sym_identifier] = ACTIONS(171), - [anon_sym_SEMI] = ACTIONS(171), - [anon_sym_EQ] = ACTIONS(171), - [anon_sym_LPAREN] = ACTIONS(173), - [anon_sym_DASH_GT] = ACTIONS(177), - [anon_sym_return] = ACTIONS(171), - [anon_sym_LBRACE] = ACTIONS(171), - [anon_sym_RBRACE] = ACTIONS(173), - [anon_sym_repeat] = ACTIONS(171), - [anon_sym_if] = ACTIONS(171), - [anon_sym_ifnot] = ACTIONS(171), - [anon_sym_do] = ACTIONS(171), - [anon_sym_while] = ACTIONS(171), - [anon_sym_try] = ACTIONS(171), - [anon_sym_PLUS_EQ] = ACTIONS(173), - [anon_sym_DASH_EQ] = ACTIONS(173), - [anon_sym_STAR_EQ] = ACTIONS(173), - [anon_sym_SLASH_EQ] = ACTIONS(173), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(173), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(173), - [anon_sym_PERCENT_EQ] = ACTIONS(173), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(173), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(173), - [anon_sym_LT_LT_EQ] = ACTIONS(173), - [anon_sym_GT_GT_EQ] = ACTIONS(173), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(173), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(173), - [anon_sym_AMP_EQ] = ACTIONS(173), - [anon_sym_PIPE_EQ] = ACTIONS(173), - [anon_sym_CARET_EQ] = ACTIONS(173), - [anon_sym_QMARK] = ACTIONS(173), - [anon_sym_EQ_EQ] = ACTIONS(173), - [anon_sym_LT] = ACTIONS(171), - [anon_sym_GT] = ACTIONS(171), - [anon_sym_LT_EQ] = ACTIONS(171), - [anon_sym_GT_EQ] = ACTIONS(173), - [anon_sym_BANG_EQ] = ACTIONS(173), - [anon_sym_LT_EQ_GT] = ACTIONS(173), - [anon_sym_LT_LT] = ACTIONS(171), - [anon_sym_GT_GT] = ACTIONS(171), - [anon_sym_TILDE_GT_GT] = ACTIONS(171), - [anon_sym_CARET_GT_GT] = ACTIONS(171), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_PIPE] = ACTIONS(171), - [anon_sym_CARET] = ACTIONS(171), - [anon_sym_STAR] = ACTIONS(171), - [anon_sym_SLASH] = ACTIONS(171), - [anon_sym_PERCENT] = ACTIONS(171), - [anon_sym_TILDE_SLASH] = ACTIONS(171), - [anon_sym_CARET_SLASH] = ACTIONS(171), - [anon_sym_TILDE_PERCENT] = ACTIONS(171), - [anon_sym_CARET_PERCENT] = ACTIONS(171), - [anon_sym_SLASH_PERCENT] = ACTIONS(173), - [anon_sym_AMP] = ACTIONS(171), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_DOT] = ACTIONS(173), - [anon_sym_LBRACK] = ACTIONS(173), - [anon_sym_int] = ACTIONS(171), - [anon_sym_cell] = ACTIONS(171), - [anon_sym_slice] = ACTIONS(171), - [anon_sym_builder] = ACTIONS(171), - [anon_sym_cont] = ACTIONS(171), - [anon_sym_tuple] = ACTIONS(171), - [sym_var_type] = ACTIONS(171), - [aux_sym_number_literal_token1] = ACTIONS(171), - [sym_string_literal] = ACTIONS(171), - [sym_number_string_literal] = ACTIONS(173), - [sym_slice_string_literal] = ACTIONS(173), - [sym_underscore] = ACTIONS(171), + [sym_identifier] = ACTIONS(91), + [anon_sym_SEMI] = ACTIONS(91), + [anon_sym_EQ] = ACTIONS(91), + [anon_sym_LPAREN] = ACTIONS(93), + [anon_sym_return] = ACTIONS(91), + [anon_sym_LBRACE] = ACTIONS(91), + [anon_sym_RBRACE] = ACTIONS(93), + [anon_sym_repeat] = ACTIONS(91), + [anon_sym_if] = ACTIONS(91), + [anon_sym_ifnot] = ACTIONS(91), + [anon_sym_do] = ACTIONS(91), + [anon_sym_while] = ACTIONS(91), + [anon_sym_try] = ACTIONS(91), + [anon_sym_PLUS_EQ] = ACTIONS(93), + [anon_sym_DASH_EQ] = ACTIONS(93), + [anon_sym_STAR_EQ] = ACTIONS(93), + [anon_sym_SLASH_EQ] = ACTIONS(93), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(93), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(93), + [anon_sym_PERCENT_EQ] = ACTIONS(93), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(93), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(93), + [anon_sym_LT_LT_EQ] = ACTIONS(93), + [anon_sym_GT_GT_EQ] = ACTIONS(93), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(93), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(93), + [anon_sym_AMP_EQ] = ACTIONS(93), + [anon_sym_PIPE_EQ] = ACTIONS(93), + [anon_sym_CARET_EQ] = ACTIONS(93), + [anon_sym_QMARK] = ACTIONS(93), + [anon_sym_EQ_EQ] = ACTIONS(93), + [anon_sym_LT] = ACTIONS(91), + [anon_sym_GT] = ACTIONS(91), + [anon_sym_LT_EQ] = ACTIONS(91), + [anon_sym_GT_EQ] = ACTIONS(93), + [anon_sym_BANG_EQ] = ACTIONS(93), + [anon_sym_LT_EQ_GT] = ACTIONS(93), + [anon_sym_LT_LT] = ACTIONS(91), + [anon_sym_GT_GT] = ACTIONS(91), + [anon_sym_TILDE_GT_GT] = ACTIONS(91), + [anon_sym_CARET_GT_GT] = ACTIONS(91), + [anon_sym_DASH] = ACTIONS(91), + [anon_sym_PLUS] = ACTIONS(91), + [anon_sym_PIPE] = ACTIONS(91), + [anon_sym_CARET] = ACTIONS(91), + [anon_sym_STAR] = ACTIONS(91), + [anon_sym_SLASH] = ACTIONS(91), + [anon_sym_PERCENT] = ACTIONS(91), + [anon_sym_TILDE_SLASH] = ACTIONS(91), + [anon_sym_CARET_SLASH] = ACTIONS(91), + [anon_sym_TILDE_PERCENT] = ACTIONS(91), + [anon_sym_CARET_PERCENT] = ACTIONS(91), + [anon_sym_SLASH_PERCENT] = ACTIONS(93), + [anon_sym_AMP] = ACTIONS(91), + [anon_sym_TILDE] = ACTIONS(91), + [anon_sym_DOT] = ACTIONS(93), + [anon_sym_LBRACK] = ACTIONS(93), + [anon_sym_int] = ACTIONS(91), + [anon_sym_cell] = ACTIONS(91), + [anon_sym_slice] = ACTIONS(91), + [anon_sym_builder] = ACTIONS(91), + [anon_sym_cont] = ACTIONS(91), + [anon_sym_tuple] = ACTIONS(91), + [sym_var_type] = ACTIONS(91), + [aux_sym_number_literal_token1] = ACTIONS(91), + [sym_string_literal] = ACTIONS(91), + [sym_number_string_literal] = ACTIONS(93), + [sym_slice_string_literal] = ACTIONS(93), + [sym_underscore] = ACTIONS(91), [sym_comment] = ACTIONS(3), }, [STATE(12)] = { - [sym__statement] = STATE(8), - [sym_return_statement] = STATE(8), - [sym_block_statement] = STATE(8), - [sym_expression_statement] = STATE(8), - [sym_empty_statement] = STATE(8), - [sym_repeat_statement] = STATE(8), - [sym_if_statement] = STATE(8), - [sym_do_while_statement] = STATE(8), - [sym_while_statement] = STATE(8), - [sym_try_catch_statement] = STATE(8), - [sym__expression] = STATE(437), - [sym__expr10] = STATE(437), - [sym_ternary_condition] = STATE(421), - [sym_ternary_expression] = STATE(175), - [sym__expr13] = STATE(175), - [sym__expr15] = STATE(116), - [sym__expr17] = STATE(157), - [sym__expr20] = STATE(150), - [sym__expr30] = STATE(140), - [sym__expr75] = STATE(107), - [sym__expr80] = STATE(107), - [sym__expr90] = STATE(72), - [sym_function_application] = STATE(72), - [sym_var_declaration] = STATE(73), - [sym_tensor_vars_declaration] = STATE(73), - [sym__multiple_vars_declaration] = STATE(73), - [sym_local_vars_declaration] = STATE(46), - [sym_tuple_vars_declaration] = STATE(73), - [sym__nontype_expr100] = STATE(46), - [sym__expr100] = STATE(72), - [sym_parenthesized_expression] = STATE(46), - [sym_tensor_expression] = STATE(46), - [sym_typed_tuple] = STATE(46), - [sym__type_hint] = STATE(417), - [sym_function_type] = STATE(417), - [sym__atomic_type] = STATE(257), - [sym_primitive_type] = STATE(257), - [sym_tensor_type] = STATE(257), - [sym_tuple_type] = STATE(257), - [sym_hole_type] = STATE(257), - [sym_type_identifier] = STATE(257), - [sym_number_literal] = STATE(46), - [aux_sym_block_statement_repeat1] = STATE(8), - [sym_identifier] = ACTIONS(65), - [anon_sym_SEMI] = ACTIONS(67), - [anon_sym_LPAREN] = ACTIONS(69), - [anon_sym_return] = ACTIONS(71), - [anon_sym_LBRACE] = ACTIONS(73), - [anon_sym_RBRACE] = ACTIONS(179), - [anon_sym_repeat] = ACTIONS(77), - [anon_sym_if] = ACTIONS(79), - [anon_sym_ifnot] = ACTIONS(79), - [anon_sym_do] = ACTIONS(81), - [anon_sym_while] = ACTIONS(83), - [anon_sym_try] = ACTIONS(85), - [anon_sym_DASH] = ACTIONS(87), - [anon_sym_TILDE] = ACTIONS(89), - [anon_sym_LBRACK] = ACTIONS(91), - [anon_sym_int] = ACTIONS(93), - [anon_sym_cell] = ACTIONS(93), - [anon_sym_slice] = ACTIONS(93), - [anon_sym_builder] = ACTIONS(93), - [anon_sym_cont] = ACTIONS(93), - [anon_sym_tuple] = ACTIONS(93), - [sym_var_type] = ACTIONS(95), - [aux_sym_number_literal_token1] = ACTIONS(97), - [sym_string_literal] = ACTIONS(99), - [sym_number_string_literal] = ACTIONS(101), - [sym_slice_string_literal] = ACTIONS(103), - [sym_underscore] = ACTIONS(105), + [sym__statement] = STATE(17), + [sym_return_statement] = STATE(17), + [sym_block_statement] = STATE(17), + [sym_expression_statement] = STATE(17), + [sym_empty_statement] = STATE(17), + [sym_repeat_statement] = STATE(17), + [sym_if_statement] = STATE(17), + [sym_do_while_statement] = STATE(17), + [sym_while_statement] = STATE(17), + [sym_try_catch_statement] = STATE(17), + [sym__expression] = STATE(170), + [sym__expr10] = STATE(170), + [sym__expr13] = STATE(139), + [sym__expr15] = STATE(136), + [sym__expr17] = STATE(77), + [sym__expr20] = STATE(47), + [sym__expr30] = STATE(38), + [sym__expr75] = STATE(13), + [sym__expr80] = STATE(13), + [sym__expr90] = STATE(4), + [sym_function_application] = STATE(4), + [sym_local_vars_declaration] = STATE(4), + [sym_tuple_vars_declaration] = STATE(14), + [sym_tensor_vars_declaration] = STATE(14), + [sym_var_declaration] = STATE(14), + [sym__var_declaration_lhs] = STATE(14), + [sym__nontype_expr100] = STATE(4), + [sym__expr100] = STATE(4), + [sym_parenthesized_expression] = STATE(4), + [sym_tensor_expression] = STATE(4), + [sym_typed_tuple] = STATE(4), + [sym__type_hint] = STATE(391), + [sym_function_type] = STATE(391), + [sym__atomic_type] = STATE(250), + [sym__parenthesized_type] = STATE(250), + [sym_primitive_type] = STATE(250), + [sym_tensor_type] = STATE(250), + [sym_tuple_type] = STATE(250), + [sym_hole_type] = STATE(250), + [sym_type_identifier] = STATE(250), + [sym_number_literal] = STATE(4), + [aux_sym_block_statement_repeat1] = STATE(17), + [sym_identifier] = ACTIONS(95), + [anon_sym_SEMI] = ACTIONS(97), + [anon_sym_LPAREN] = ACTIONS(99), + [anon_sym_return] = ACTIONS(101), + [anon_sym_LBRACE] = ACTIONS(103), + [anon_sym_RBRACE] = ACTIONS(105), + [anon_sym_repeat] = ACTIONS(107), + [anon_sym_if] = ACTIONS(109), + [anon_sym_ifnot] = ACTIONS(109), + [anon_sym_do] = ACTIONS(111), + [anon_sym_while] = ACTIONS(113), + [anon_sym_try] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(117), + [anon_sym_TILDE] = ACTIONS(119), + [anon_sym_LBRACK] = ACTIONS(121), + [anon_sym_int] = ACTIONS(25), + [anon_sym_cell] = ACTIONS(25), + [anon_sym_slice] = ACTIONS(25), + [anon_sym_builder] = ACTIONS(25), + [anon_sym_cont] = ACTIONS(25), + [anon_sym_tuple] = ACTIONS(25), + [sym_var_type] = ACTIONS(27), + [aux_sym_number_literal_token1] = ACTIONS(123), + [sym_string_literal] = ACTIONS(125), + [sym_number_string_literal] = ACTIONS(127), + [sym_slice_string_literal] = ACTIONS(129), + [sym_underscore] = ACTIONS(131), [sym_comment] = ACTIONS(3), }, [STATE(13)] = { - [sym_identifier] = ACTIONS(181), - [anon_sym_SEMI] = ACTIONS(184), - [anon_sym_EQ] = ACTIONS(184), - [anon_sym_LPAREN] = ACTIONS(186), - [anon_sym_DASH_GT] = ACTIONS(189), - [anon_sym_return] = ACTIONS(184), - [anon_sym_LBRACE] = ACTIONS(184), - [anon_sym_RBRACE] = ACTIONS(191), - [anon_sym_repeat] = ACTIONS(184), - [anon_sym_if] = ACTIONS(184), - [anon_sym_ifnot] = ACTIONS(184), - [anon_sym_do] = ACTIONS(184), - [anon_sym_while] = ACTIONS(184), - [anon_sym_try] = ACTIONS(184), - [anon_sym_PLUS_EQ] = ACTIONS(191), - [anon_sym_DASH_EQ] = ACTIONS(191), - [anon_sym_STAR_EQ] = ACTIONS(191), - [anon_sym_SLASH_EQ] = ACTIONS(191), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(191), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(191), - [anon_sym_PERCENT_EQ] = ACTIONS(191), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(191), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(191), - [anon_sym_LT_LT_EQ] = ACTIONS(191), - [anon_sym_GT_GT_EQ] = ACTIONS(191), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(191), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(191), - [anon_sym_AMP_EQ] = ACTIONS(191), - [anon_sym_PIPE_EQ] = ACTIONS(191), - [anon_sym_CARET_EQ] = ACTIONS(191), - [anon_sym_QMARK] = ACTIONS(191), - [anon_sym_EQ_EQ] = ACTIONS(191), - [anon_sym_LT] = ACTIONS(184), - [anon_sym_GT] = ACTIONS(184), - [anon_sym_LT_EQ] = ACTIONS(184), - [anon_sym_GT_EQ] = ACTIONS(191), - [anon_sym_BANG_EQ] = ACTIONS(191), - [anon_sym_LT_EQ_GT] = ACTIONS(191), - [anon_sym_LT_LT] = ACTIONS(184), - [anon_sym_GT_GT] = ACTIONS(184), - [anon_sym_TILDE_GT_GT] = ACTIONS(184), - [anon_sym_CARET_GT_GT] = ACTIONS(184), - [anon_sym_DASH] = ACTIONS(184), - [anon_sym_PLUS] = ACTIONS(184), - [anon_sym_PIPE] = ACTIONS(184), - [anon_sym_CARET] = ACTIONS(184), - [anon_sym_STAR] = ACTIONS(184), - [anon_sym_SLASH] = ACTIONS(184), - [anon_sym_PERCENT] = ACTIONS(184), - [anon_sym_TILDE_SLASH] = ACTIONS(184), - [anon_sym_CARET_SLASH] = ACTIONS(184), - [anon_sym_TILDE_PERCENT] = ACTIONS(184), - [anon_sym_CARET_PERCENT] = ACTIONS(184), - [anon_sym_SLASH_PERCENT] = ACTIONS(191), - [anon_sym_AMP] = ACTIONS(184), - [anon_sym_TILDE] = ACTIONS(184), - [anon_sym_DOT] = ACTIONS(191), - [anon_sym_LBRACK] = ACTIONS(191), - [anon_sym_int] = ACTIONS(184), - [anon_sym_cell] = ACTIONS(184), - [anon_sym_slice] = ACTIONS(184), - [anon_sym_builder] = ACTIONS(184), - [anon_sym_cont] = ACTIONS(184), - [anon_sym_tuple] = ACTIONS(184), - [sym_var_type] = ACTIONS(184), - [aux_sym_number_literal_token1] = ACTIONS(184), - [sym_string_literal] = ACTIONS(184), - [sym_number_string_literal] = ACTIONS(191), - [sym_slice_string_literal] = ACTIONS(191), - [sym_underscore] = ACTIONS(184), + [aux_sym__expr30_repeat1] = STATE(15), + [sym_identifier] = ACTIONS(133), + [anon_sym_SEMI] = ACTIONS(133), + [anon_sym_EQ] = ACTIONS(133), + [anon_sym_LPAREN] = ACTIONS(135), + [anon_sym_return] = ACTIONS(133), + [anon_sym_LBRACE] = ACTIONS(133), + [anon_sym_RBRACE] = ACTIONS(135), + [anon_sym_repeat] = ACTIONS(133), + [anon_sym_if] = ACTIONS(133), + [anon_sym_ifnot] = ACTIONS(133), + [anon_sym_do] = ACTIONS(133), + [anon_sym_while] = ACTIONS(133), + [anon_sym_try] = ACTIONS(133), + [anon_sym_PLUS_EQ] = ACTIONS(135), + [anon_sym_DASH_EQ] = ACTIONS(135), + [anon_sym_STAR_EQ] = ACTIONS(135), + [anon_sym_SLASH_EQ] = ACTIONS(135), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(135), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(135), + [anon_sym_PERCENT_EQ] = ACTIONS(135), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(135), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(135), + [anon_sym_LT_LT_EQ] = ACTIONS(135), + [anon_sym_GT_GT_EQ] = ACTIONS(135), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(135), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(135), + [anon_sym_AMP_EQ] = ACTIONS(135), + [anon_sym_PIPE_EQ] = ACTIONS(135), + [anon_sym_CARET_EQ] = ACTIONS(135), + [anon_sym_QMARK] = ACTIONS(135), + [anon_sym_EQ_EQ] = ACTIONS(135), + [anon_sym_LT] = ACTIONS(133), + [anon_sym_GT] = ACTIONS(133), + [anon_sym_LT_EQ] = ACTIONS(133), + [anon_sym_GT_EQ] = ACTIONS(135), + [anon_sym_BANG_EQ] = ACTIONS(135), + [anon_sym_LT_EQ_GT] = ACTIONS(135), + [anon_sym_LT_LT] = ACTIONS(133), + [anon_sym_GT_GT] = ACTIONS(133), + [anon_sym_TILDE_GT_GT] = ACTIONS(133), + [anon_sym_CARET_GT_GT] = ACTIONS(133), + [anon_sym_DASH] = ACTIONS(133), + [anon_sym_PLUS] = ACTIONS(133), + [anon_sym_PIPE] = ACTIONS(133), + [anon_sym_CARET] = ACTIONS(133), + [anon_sym_STAR] = ACTIONS(137), + [anon_sym_SLASH] = ACTIONS(137), + [anon_sym_PERCENT] = ACTIONS(137), + [anon_sym_TILDE_SLASH] = ACTIONS(137), + [anon_sym_CARET_SLASH] = ACTIONS(137), + [anon_sym_TILDE_PERCENT] = ACTIONS(137), + [anon_sym_CARET_PERCENT] = ACTIONS(137), + [anon_sym_SLASH_PERCENT] = ACTIONS(139), + [anon_sym_AMP] = ACTIONS(137), + [anon_sym_TILDE] = ACTIONS(133), + [anon_sym_LBRACK] = ACTIONS(135), + [anon_sym_int] = ACTIONS(133), + [anon_sym_cell] = ACTIONS(133), + [anon_sym_slice] = ACTIONS(133), + [anon_sym_builder] = ACTIONS(133), + [anon_sym_cont] = ACTIONS(133), + [anon_sym_tuple] = ACTIONS(133), + [sym_var_type] = ACTIONS(133), + [aux_sym_number_literal_token1] = ACTIONS(133), + [sym_string_literal] = ACTIONS(133), + [sym_number_string_literal] = ACTIONS(135), + [sym_slice_string_literal] = ACTIONS(135), + [sym_underscore] = ACTIONS(133), [sym_comment] = ACTIONS(3), }, [STATE(14)] = { - [sym_identifier] = ACTIONS(193), - [anon_sym_SEMI] = ACTIONS(196), - [anon_sym_EQ] = ACTIONS(196), - [anon_sym_LPAREN] = ACTIONS(198), - [anon_sym_DASH_GT] = ACTIONS(201), - [anon_sym_return] = ACTIONS(196), - [anon_sym_LBRACE] = ACTIONS(196), - [anon_sym_RBRACE] = ACTIONS(203), - [anon_sym_repeat] = ACTIONS(196), - [anon_sym_if] = ACTIONS(196), - [anon_sym_ifnot] = ACTIONS(196), - [anon_sym_do] = ACTIONS(196), - [anon_sym_while] = ACTIONS(196), - [anon_sym_try] = ACTIONS(196), - [anon_sym_PLUS_EQ] = ACTIONS(203), - [anon_sym_DASH_EQ] = ACTIONS(203), - [anon_sym_STAR_EQ] = ACTIONS(203), - [anon_sym_SLASH_EQ] = ACTIONS(203), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(203), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(203), - [anon_sym_PERCENT_EQ] = ACTIONS(203), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(203), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(203), - [anon_sym_LT_LT_EQ] = ACTIONS(203), - [anon_sym_GT_GT_EQ] = ACTIONS(203), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(203), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(203), - [anon_sym_AMP_EQ] = ACTIONS(203), - [anon_sym_PIPE_EQ] = ACTIONS(203), - [anon_sym_CARET_EQ] = ACTIONS(203), - [anon_sym_QMARK] = ACTIONS(203), - [anon_sym_EQ_EQ] = ACTIONS(203), - [anon_sym_LT] = ACTIONS(196), - [anon_sym_GT] = ACTIONS(196), - [anon_sym_LT_EQ] = ACTIONS(196), - [anon_sym_GT_EQ] = ACTIONS(203), - [anon_sym_BANG_EQ] = ACTIONS(203), - [anon_sym_LT_EQ_GT] = ACTIONS(203), - [anon_sym_LT_LT] = ACTIONS(196), - [anon_sym_GT_GT] = ACTIONS(196), - [anon_sym_TILDE_GT_GT] = ACTIONS(196), - [anon_sym_CARET_GT_GT] = ACTIONS(196), - [anon_sym_DASH] = ACTIONS(196), - [anon_sym_PLUS] = ACTIONS(196), - [anon_sym_PIPE] = ACTIONS(196), - [anon_sym_CARET] = ACTIONS(196), - [anon_sym_STAR] = ACTIONS(196), - [anon_sym_SLASH] = ACTIONS(196), - [anon_sym_PERCENT] = ACTIONS(196), - [anon_sym_TILDE_SLASH] = ACTIONS(196), - [anon_sym_CARET_SLASH] = ACTIONS(196), - [anon_sym_TILDE_PERCENT] = ACTIONS(196), - [anon_sym_CARET_PERCENT] = ACTIONS(196), - [anon_sym_SLASH_PERCENT] = ACTIONS(203), - [anon_sym_AMP] = ACTIONS(196), - [anon_sym_TILDE] = ACTIONS(196), - [anon_sym_DOT] = ACTIONS(203), - [anon_sym_LBRACK] = ACTIONS(203), - [anon_sym_int] = ACTIONS(196), - [anon_sym_cell] = ACTIONS(196), - [anon_sym_slice] = ACTIONS(196), - [anon_sym_builder] = ACTIONS(196), - [anon_sym_cont] = ACTIONS(196), - [anon_sym_tuple] = ACTIONS(196), - [sym_var_type] = ACTIONS(196), - [aux_sym_number_literal_token1] = ACTIONS(196), - [sym_string_literal] = ACTIONS(196), - [sym_number_string_literal] = ACTIONS(203), - [sym_slice_string_literal] = ACTIONS(203), - [sym_underscore] = ACTIONS(196), + [sym_identifier] = ACTIONS(141), + [anon_sym_SEMI] = ACTIONS(141), + [anon_sym_EQ] = ACTIONS(141), + [anon_sym_LPAREN] = ACTIONS(143), + [anon_sym_return] = ACTIONS(141), + [anon_sym_LBRACE] = ACTIONS(141), + [anon_sym_RBRACE] = ACTIONS(143), + [anon_sym_repeat] = ACTIONS(141), + [anon_sym_if] = ACTIONS(141), + [anon_sym_ifnot] = ACTIONS(141), + [anon_sym_do] = ACTIONS(141), + [anon_sym_while] = ACTIONS(141), + [anon_sym_try] = ACTIONS(141), + [anon_sym_PLUS_EQ] = ACTIONS(143), + [anon_sym_DASH_EQ] = ACTIONS(143), + [anon_sym_STAR_EQ] = ACTIONS(143), + [anon_sym_SLASH_EQ] = ACTIONS(143), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(143), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(143), + [anon_sym_PERCENT_EQ] = ACTIONS(143), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(143), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(143), + [anon_sym_LT_LT_EQ] = ACTIONS(143), + [anon_sym_GT_GT_EQ] = ACTIONS(143), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(143), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(143), + [anon_sym_AMP_EQ] = ACTIONS(143), + [anon_sym_PIPE_EQ] = ACTIONS(143), + [anon_sym_CARET_EQ] = ACTIONS(143), + [anon_sym_QMARK] = ACTIONS(143), + [anon_sym_EQ_EQ] = ACTIONS(143), + [anon_sym_LT] = ACTIONS(141), + [anon_sym_GT] = ACTIONS(141), + [anon_sym_LT_EQ] = ACTIONS(141), + [anon_sym_GT_EQ] = ACTIONS(143), + [anon_sym_BANG_EQ] = ACTIONS(143), + [anon_sym_LT_EQ_GT] = ACTIONS(143), + [anon_sym_LT_LT] = ACTIONS(141), + [anon_sym_GT_GT] = ACTIONS(141), + [anon_sym_TILDE_GT_GT] = ACTIONS(141), + [anon_sym_CARET_GT_GT] = ACTIONS(141), + [anon_sym_DASH] = ACTIONS(141), + [anon_sym_PLUS] = ACTIONS(141), + [anon_sym_PIPE] = ACTIONS(141), + [anon_sym_CARET] = ACTIONS(141), + [anon_sym_STAR] = ACTIONS(141), + [anon_sym_SLASH] = ACTIONS(141), + [anon_sym_PERCENT] = ACTIONS(141), + [anon_sym_TILDE_SLASH] = ACTIONS(141), + [anon_sym_CARET_SLASH] = ACTIONS(141), + [anon_sym_TILDE_PERCENT] = ACTIONS(141), + [anon_sym_CARET_PERCENT] = ACTIONS(141), + [anon_sym_SLASH_PERCENT] = ACTIONS(143), + [anon_sym_AMP] = ACTIONS(141), + [anon_sym_TILDE] = ACTIONS(141), + [anon_sym_DOT] = ACTIONS(143), + [anon_sym_LBRACK] = ACTIONS(143), + [anon_sym_int] = ACTIONS(141), + [anon_sym_cell] = ACTIONS(141), + [anon_sym_slice] = ACTIONS(141), + [anon_sym_builder] = ACTIONS(141), + [anon_sym_cont] = ACTIONS(141), + [anon_sym_tuple] = ACTIONS(141), + [sym_var_type] = ACTIONS(141), + [aux_sym_number_literal_token1] = ACTIONS(141), + [sym_string_literal] = ACTIONS(141), + [sym_number_string_literal] = ACTIONS(143), + [sym_slice_string_literal] = ACTIONS(143), + [sym_underscore] = ACTIONS(141), [sym_comment] = ACTIONS(3), }, [STATE(15)] = { - [sym__statement] = STATE(12), - [sym_return_statement] = STATE(12), - [sym_block_statement] = STATE(12), - [sym_expression_statement] = STATE(12), - [sym_empty_statement] = STATE(12), - [sym_repeat_statement] = STATE(12), - [sym_if_statement] = STATE(12), - [sym_do_while_statement] = STATE(12), - [sym_while_statement] = STATE(12), - [sym_try_catch_statement] = STATE(12), - [sym__expression] = STATE(437), - [sym__expr10] = STATE(437), - [sym_ternary_condition] = STATE(421), - [sym_ternary_expression] = STATE(175), - [sym__expr13] = STATE(175), - [sym__expr15] = STATE(116), - [sym__expr17] = STATE(157), - [sym__expr20] = STATE(150), - [sym__expr30] = STATE(140), - [sym__expr75] = STATE(107), - [sym__expr80] = STATE(107), - [sym__expr90] = STATE(72), - [sym_function_application] = STATE(72), - [sym_var_declaration] = STATE(73), - [sym_tensor_vars_declaration] = STATE(73), - [sym__multiple_vars_declaration] = STATE(73), - [sym_local_vars_declaration] = STATE(46), - [sym_tuple_vars_declaration] = STATE(73), - [sym__nontype_expr100] = STATE(46), - [sym__expr100] = STATE(72), - [sym_parenthesized_expression] = STATE(46), - [sym_tensor_expression] = STATE(46), - [sym_typed_tuple] = STATE(46), - [sym__type_hint] = STATE(417), - [sym_function_type] = STATE(417), - [sym__atomic_type] = STATE(257), - [sym_primitive_type] = STATE(257), - [sym_tensor_type] = STATE(257), - [sym_tuple_type] = STATE(257), - [sym_hole_type] = STATE(257), - [sym_type_identifier] = STATE(257), - [sym_number_literal] = STATE(46), - [aux_sym_block_statement_repeat1] = STATE(12), - [sym_identifier] = ACTIONS(65), - [anon_sym_SEMI] = ACTIONS(67), - [anon_sym_LPAREN] = ACTIONS(69), - [anon_sym_return] = ACTIONS(71), - [anon_sym_LBRACE] = ACTIONS(73), - [anon_sym_RBRACE] = ACTIONS(205), - [anon_sym_repeat] = ACTIONS(77), - [anon_sym_if] = ACTIONS(79), - [anon_sym_ifnot] = ACTIONS(79), - [anon_sym_do] = ACTIONS(81), - [anon_sym_while] = ACTIONS(83), - [anon_sym_try] = ACTIONS(85), - [anon_sym_DASH] = ACTIONS(87), - [anon_sym_TILDE] = ACTIONS(89), - [anon_sym_LBRACK] = ACTIONS(91), - [anon_sym_int] = ACTIONS(93), - [anon_sym_cell] = ACTIONS(93), - [anon_sym_slice] = ACTIONS(93), - [anon_sym_builder] = ACTIONS(93), - [anon_sym_cont] = ACTIONS(93), - [anon_sym_tuple] = ACTIONS(93), - [sym_var_type] = ACTIONS(95), - [aux_sym_number_literal_token1] = ACTIONS(97), - [sym_string_literal] = ACTIONS(99), - [sym_number_string_literal] = ACTIONS(101), - [sym_slice_string_literal] = ACTIONS(103), - [sym_underscore] = ACTIONS(105), + [aux_sym__expr30_repeat1] = STATE(22), + [sym_identifier] = ACTIONS(145), + [anon_sym_SEMI] = ACTIONS(145), + [anon_sym_EQ] = ACTIONS(145), + [anon_sym_LPAREN] = ACTIONS(147), + [anon_sym_return] = ACTIONS(145), + [anon_sym_LBRACE] = ACTIONS(145), + [anon_sym_RBRACE] = ACTIONS(147), + [anon_sym_repeat] = ACTIONS(145), + [anon_sym_if] = ACTIONS(145), + [anon_sym_ifnot] = ACTIONS(145), + [anon_sym_do] = ACTIONS(145), + [anon_sym_while] = ACTIONS(145), + [anon_sym_try] = ACTIONS(145), + [anon_sym_PLUS_EQ] = ACTIONS(147), + [anon_sym_DASH_EQ] = ACTIONS(147), + [anon_sym_STAR_EQ] = ACTIONS(147), + [anon_sym_SLASH_EQ] = ACTIONS(147), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(147), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(147), + [anon_sym_PERCENT_EQ] = ACTIONS(147), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(147), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(147), + [anon_sym_LT_LT_EQ] = ACTIONS(147), + [anon_sym_GT_GT_EQ] = ACTIONS(147), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(147), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(147), + [anon_sym_AMP_EQ] = ACTIONS(147), + [anon_sym_PIPE_EQ] = ACTIONS(147), + [anon_sym_CARET_EQ] = ACTIONS(147), + [anon_sym_QMARK] = ACTIONS(147), + [anon_sym_EQ_EQ] = ACTIONS(147), + [anon_sym_LT] = ACTIONS(145), + [anon_sym_GT] = ACTIONS(145), + [anon_sym_LT_EQ] = ACTIONS(145), + [anon_sym_GT_EQ] = ACTIONS(147), + [anon_sym_BANG_EQ] = ACTIONS(147), + [anon_sym_LT_EQ_GT] = ACTIONS(147), + [anon_sym_LT_LT] = ACTIONS(145), + [anon_sym_GT_GT] = ACTIONS(145), + [anon_sym_TILDE_GT_GT] = ACTIONS(145), + [anon_sym_CARET_GT_GT] = ACTIONS(145), + [anon_sym_DASH] = ACTIONS(145), + [anon_sym_PLUS] = ACTIONS(145), + [anon_sym_PIPE] = ACTIONS(145), + [anon_sym_CARET] = ACTIONS(145), + [anon_sym_STAR] = ACTIONS(137), + [anon_sym_SLASH] = ACTIONS(137), + [anon_sym_PERCENT] = ACTIONS(137), + [anon_sym_TILDE_SLASH] = ACTIONS(137), + [anon_sym_CARET_SLASH] = ACTIONS(137), + [anon_sym_TILDE_PERCENT] = ACTIONS(137), + [anon_sym_CARET_PERCENT] = ACTIONS(137), + [anon_sym_SLASH_PERCENT] = ACTIONS(139), + [anon_sym_AMP] = ACTIONS(137), + [anon_sym_TILDE] = ACTIONS(145), + [anon_sym_LBRACK] = ACTIONS(147), + [anon_sym_int] = ACTIONS(145), + [anon_sym_cell] = ACTIONS(145), + [anon_sym_slice] = ACTIONS(145), + [anon_sym_builder] = ACTIONS(145), + [anon_sym_cont] = ACTIONS(145), + [anon_sym_tuple] = ACTIONS(145), + [sym_var_type] = ACTIONS(145), + [aux_sym_number_literal_token1] = ACTIONS(145), + [sym_string_literal] = ACTIONS(145), + [sym_number_string_literal] = ACTIONS(147), + [sym_slice_string_literal] = ACTIONS(147), + [sym_underscore] = ACTIONS(145), [sym_comment] = ACTIONS(3), }, [STATE(16)] = { - [sym_identifier] = ACTIONS(207), - [anon_sym_SEMI] = ACTIONS(207), - [anon_sym_EQ] = ACTIONS(207), - [anon_sym_LPAREN] = ACTIONS(209), - [anon_sym_return] = ACTIONS(207), - [anon_sym_LBRACE] = ACTIONS(207), - [anon_sym_RBRACE] = ACTIONS(209), - [anon_sym_repeat] = ACTIONS(207), - [anon_sym_if] = ACTIONS(207), - [anon_sym_ifnot] = ACTIONS(207), - [anon_sym_do] = ACTIONS(207), - [anon_sym_while] = ACTIONS(207), - [anon_sym_try] = ACTIONS(207), - [anon_sym_PLUS_EQ] = ACTIONS(209), - [anon_sym_DASH_EQ] = ACTIONS(209), - [anon_sym_STAR_EQ] = ACTIONS(209), - [anon_sym_SLASH_EQ] = ACTIONS(209), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(209), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(209), - [anon_sym_PERCENT_EQ] = ACTIONS(209), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(209), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(209), - [anon_sym_LT_LT_EQ] = ACTIONS(209), - [anon_sym_GT_GT_EQ] = ACTIONS(209), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(209), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(209), - [anon_sym_AMP_EQ] = ACTIONS(209), - [anon_sym_PIPE_EQ] = ACTIONS(209), - [anon_sym_CARET_EQ] = ACTIONS(209), - [anon_sym_QMARK] = ACTIONS(209), - [anon_sym_EQ_EQ] = ACTIONS(209), - [anon_sym_LT] = ACTIONS(207), - [anon_sym_GT] = ACTIONS(207), - [anon_sym_LT_EQ] = ACTIONS(207), - [anon_sym_GT_EQ] = ACTIONS(209), - [anon_sym_BANG_EQ] = ACTIONS(209), - [anon_sym_LT_EQ_GT] = ACTIONS(209), - [anon_sym_LT_LT] = ACTIONS(207), - [anon_sym_GT_GT] = ACTIONS(207), - [anon_sym_TILDE_GT_GT] = ACTIONS(207), - [anon_sym_CARET_GT_GT] = ACTIONS(207), - [anon_sym_DASH] = ACTIONS(207), - [anon_sym_PLUS] = ACTIONS(207), - [anon_sym_PIPE] = ACTIONS(207), - [anon_sym_CARET] = ACTIONS(207), - [anon_sym_STAR] = ACTIONS(207), - [anon_sym_SLASH] = ACTIONS(207), - [anon_sym_PERCENT] = ACTIONS(207), - [anon_sym_TILDE_SLASH] = ACTIONS(207), - [anon_sym_CARET_SLASH] = ACTIONS(207), - [anon_sym_TILDE_PERCENT] = ACTIONS(207), - [anon_sym_CARET_PERCENT] = ACTIONS(207), - [anon_sym_SLASH_PERCENT] = ACTIONS(209), - [anon_sym_AMP] = ACTIONS(207), - [anon_sym_TILDE] = ACTIONS(207), - [anon_sym_DOT] = ACTIONS(209), - [anon_sym_LBRACK] = ACTIONS(209), - [anon_sym_int] = ACTIONS(207), - [anon_sym_cell] = ACTIONS(207), - [anon_sym_slice] = ACTIONS(207), - [anon_sym_builder] = ACTIONS(207), - [anon_sym_cont] = ACTIONS(207), - [anon_sym_tuple] = ACTIONS(207), - [sym_var_type] = ACTIONS(207), - [aux_sym_number_literal_token1] = ACTIONS(207), - [sym_string_literal] = ACTIONS(207), - [sym_number_string_literal] = ACTIONS(209), - [sym_slice_string_literal] = ACTIONS(209), - [sym_underscore] = ACTIONS(207), + [sym__statement] = STATE(24), + [sym_return_statement] = STATE(24), + [sym_block_statement] = STATE(24), + [sym_expression_statement] = STATE(24), + [sym_empty_statement] = STATE(24), + [sym_repeat_statement] = STATE(24), + [sym_if_statement] = STATE(24), + [sym_do_while_statement] = STATE(24), + [sym_while_statement] = STATE(24), + [sym_try_catch_statement] = STATE(24), + [sym__expression] = STATE(170), + [sym__expr10] = STATE(170), + [sym__expr13] = STATE(139), + [sym__expr15] = STATE(136), + [sym__expr17] = STATE(77), + [sym__expr20] = STATE(47), + [sym__expr30] = STATE(38), + [sym__expr75] = STATE(13), + [sym__expr80] = STATE(13), + [sym__expr90] = STATE(4), + [sym_function_application] = STATE(4), + [sym_local_vars_declaration] = STATE(4), + [sym_tuple_vars_declaration] = STATE(14), + [sym_tensor_vars_declaration] = STATE(14), + [sym_var_declaration] = STATE(14), + [sym__var_declaration_lhs] = STATE(14), + [sym__nontype_expr100] = STATE(4), + [sym__expr100] = STATE(4), + [sym_parenthesized_expression] = STATE(4), + [sym_tensor_expression] = STATE(4), + [sym_typed_tuple] = STATE(4), + [sym__type_hint] = STATE(391), + [sym_function_type] = STATE(391), + [sym__atomic_type] = STATE(250), + [sym__parenthesized_type] = STATE(250), + [sym_primitive_type] = STATE(250), + [sym_tensor_type] = STATE(250), + [sym_tuple_type] = STATE(250), + [sym_hole_type] = STATE(250), + [sym_type_identifier] = STATE(250), + [sym_number_literal] = STATE(4), + [aux_sym_block_statement_repeat1] = STATE(24), + [sym_identifier] = ACTIONS(95), + [anon_sym_SEMI] = ACTIONS(97), + [anon_sym_LPAREN] = ACTIONS(99), + [anon_sym_return] = ACTIONS(101), + [anon_sym_LBRACE] = ACTIONS(103), + [anon_sym_RBRACE] = ACTIONS(149), + [anon_sym_repeat] = ACTIONS(107), + [anon_sym_if] = ACTIONS(109), + [anon_sym_ifnot] = ACTIONS(109), + [anon_sym_do] = ACTIONS(111), + [anon_sym_while] = ACTIONS(113), + [anon_sym_try] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(117), + [anon_sym_TILDE] = ACTIONS(119), + [anon_sym_LBRACK] = ACTIONS(121), + [anon_sym_int] = ACTIONS(25), + [anon_sym_cell] = ACTIONS(25), + [anon_sym_slice] = ACTIONS(25), + [anon_sym_builder] = ACTIONS(25), + [anon_sym_cont] = ACTIONS(25), + [anon_sym_tuple] = ACTIONS(25), + [sym_var_type] = ACTIONS(27), + [aux_sym_number_literal_token1] = ACTIONS(123), + [sym_string_literal] = ACTIONS(125), + [sym_number_string_literal] = ACTIONS(127), + [sym_slice_string_literal] = ACTIONS(129), + [sym_underscore] = ACTIONS(131), [sym_comment] = ACTIONS(3), }, [STATE(17)] = { - [sym_identifier] = ACTIONS(211), - [anon_sym_SEMI] = ACTIONS(211), - [anon_sym_EQ] = ACTIONS(211), - [anon_sym_LPAREN] = ACTIONS(213), - [anon_sym_return] = ACTIONS(211), - [anon_sym_LBRACE] = ACTIONS(211), - [anon_sym_RBRACE] = ACTIONS(213), - [anon_sym_repeat] = ACTIONS(211), - [anon_sym_if] = ACTIONS(211), - [anon_sym_ifnot] = ACTIONS(211), - [anon_sym_do] = ACTIONS(211), - [anon_sym_while] = ACTIONS(211), - [anon_sym_try] = ACTIONS(211), - [anon_sym_PLUS_EQ] = ACTIONS(213), - [anon_sym_DASH_EQ] = ACTIONS(213), - [anon_sym_STAR_EQ] = ACTIONS(213), - [anon_sym_SLASH_EQ] = ACTIONS(213), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(213), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(213), - [anon_sym_PERCENT_EQ] = ACTIONS(213), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(213), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(213), - [anon_sym_LT_LT_EQ] = ACTIONS(213), - [anon_sym_GT_GT_EQ] = ACTIONS(213), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(213), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(213), - [anon_sym_AMP_EQ] = ACTIONS(213), - [anon_sym_PIPE_EQ] = ACTIONS(213), - [anon_sym_CARET_EQ] = ACTIONS(213), - [anon_sym_QMARK] = ACTIONS(213), - [anon_sym_EQ_EQ] = ACTIONS(213), - [anon_sym_LT] = ACTIONS(211), - [anon_sym_GT] = ACTIONS(211), - [anon_sym_LT_EQ] = ACTIONS(211), - [anon_sym_GT_EQ] = ACTIONS(213), - [anon_sym_BANG_EQ] = ACTIONS(213), - [anon_sym_LT_EQ_GT] = ACTIONS(213), - [anon_sym_LT_LT] = ACTIONS(211), - [anon_sym_GT_GT] = ACTIONS(211), - [anon_sym_TILDE_GT_GT] = ACTIONS(211), - [anon_sym_CARET_GT_GT] = ACTIONS(211), - [anon_sym_DASH] = ACTIONS(211), - [anon_sym_PLUS] = ACTIONS(211), - [anon_sym_PIPE] = ACTIONS(211), - [anon_sym_CARET] = ACTIONS(211), - [anon_sym_STAR] = ACTIONS(211), - [anon_sym_SLASH] = ACTIONS(211), - [anon_sym_PERCENT] = ACTIONS(211), - [anon_sym_TILDE_SLASH] = ACTIONS(211), - [anon_sym_CARET_SLASH] = ACTIONS(211), - [anon_sym_TILDE_PERCENT] = ACTIONS(211), - [anon_sym_CARET_PERCENT] = ACTIONS(211), - [anon_sym_SLASH_PERCENT] = ACTIONS(213), - [anon_sym_AMP] = ACTIONS(211), - [anon_sym_TILDE] = ACTIONS(211), - [anon_sym_DOT] = ACTIONS(213), - [anon_sym_LBRACK] = ACTIONS(213), - [anon_sym_int] = ACTIONS(211), - [anon_sym_cell] = ACTIONS(211), - [anon_sym_slice] = ACTIONS(211), - [anon_sym_builder] = ACTIONS(211), - [anon_sym_cont] = ACTIONS(211), - [anon_sym_tuple] = ACTIONS(211), - [sym_var_type] = ACTIONS(211), - [aux_sym_number_literal_token1] = ACTIONS(211), - [sym_string_literal] = ACTIONS(211), - [sym_number_string_literal] = ACTIONS(213), - [sym_slice_string_literal] = ACTIONS(213), - [sym_underscore] = ACTIONS(211), + [sym__statement] = STATE(24), + [sym_return_statement] = STATE(24), + [sym_block_statement] = STATE(24), + [sym_expression_statement] = STATE(24), + [sym_empty_statement] = STATE(24), + [sym_repeat_statement] = STATE(24), + [sym_if_statement] = STATE(24), + [sym_do_while_statement] = STATE(24), + [sym_while_statement] = STATE(24), + [sym_try_catch_statement] = STATE(24), + [sym__expression] = STATE(170), + [sym__expr10] = STATE(170), + [sym__expr13] = STATE(139), + [sym__expr15] = STATE(136), + [sym__expr17] = STATE(77), + [sym__expr20] = STATE(47), + [sym__expr30] = STATE(38), + [sym__expr75] = STATE(13), + [sym__expr80] = STATE(13), + [sym__expr90] = STATE(4), + [sym_function_application] = STATE(4), + [sym_local_vars_declaration] = STATE(4), + [sym_tuple_vars_declaration] = STATE(14), + [sym_tensor_vars_declaration] = STATE(14), + [sym_var_declaration] = STATE(14), + [sym__var_declaration_lhs] = STATE(14), + [sym__nontype_expr100] = STATE(4), + [sym__expr100] = STATE(4), + [sym_parenthesized_expression] = STATE(4), + [sym_tensor_expression] = STATE(4), + [sym_typed_tuple] = STATE(4), + [sym__type_hint] = STATE(391), + [sym_function_type] = STATE(391), + [sym__atomic_type] = STATE(250), + [sym__parenthesized_type] = STATE(250), + [sym_primitive_type] = STATE(250), + [sym_tensor_type] = STATE(250), + [sym_tuple_type] = STATE(250), + [sym_hole_type] = STATE(250), + [sym_type_identifier] = STATE(250), + [sym_number_literal] = STATE(4), + [aux_sym_block_statement_repeat1] = STATE(24), + [sym_identifier] = ACTIONS(95), + [anon_sym_SEMI] = ACTIONS(97), + [anon_sym_LPAREN] = ACTIONS(99), + [anon_sym_return] = ACTIONS(101), + [anon_sym_LBRACE] = ACTIONS(103), + [anon_sym_RBRACE] = ACTIONS(151), + [anon_sym_repeat] = ACTIONS(107), + [anon_sym_if] = ACTIONS(109), + [anon_sym_ifnot] = ACTIONS(109), + [anon_sym_do] = ACTIONS(111), + [anon_sym_while] = ACTIONS(113), + [anon_sym_try] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(117), + [anon_sym_TILDE] = ACTIONS(119), + [anon_sym_LBRACK] = ACTIONS(121), + [anon_sym_int] = ACTIONS(25), + [anon_sym_cell] = ACTIONS(25), + [anon_sym_slice] = ACTIONS(25), + [anon_sym_builder] = ACTIONS(25), + [anon_sym_cont] = ACTIONS(25), + [anon_sym_tuple] = ACTIONS(25), + [sym_var_type] = ACTIONS(27), + [aux_sym_number_literal_token1] = ACTIONS(123), + [sym_string_literal] = ACTIONS(125), + [sym_number_string_literal] = ACTIONS(127), + [sym_slice_string_literal] = ACTIONS(129), + [sym_underscore] = ACTIONS(131), [sym_comment] = ACTIONS(3), }, [STATE(18)] = { - [aux_sym__expr30_repeat1] = STATE(19), - [sym_identifier] = ACTIONS(215), - [anon_sym_SEMI] = ACTIONS(215), - [anon_sym_EQ] = ACTIONS(215), - [anon_sym_LPAREN] = ACTIONS(217), - [anon_sym_return] = ACTIONS(215), - [anon_sym_LBRACE] = ACTIONS(215), - [anon_sym_RBRACE] = ACTIONS(217), - [anon_sym_repeat] = ACTIONS(215), - [anon_sym_if] = ACTIONS(215), - [anon_sym_ifnot] = ACTIONS(215), - [anon_sym_do] = ACTIONS(215), - [anon_sym_while] = ACTIONS(215), - [anon_sym_try] = ACTIONS(215), - [anon_sym_PLUS_EQ] = ACTIONS(217), - [anon_sym_DASH_EQ] = ACTIONS(217), - [anon_sym_STAR_EQ] = ACTIONS(217), - [anon_sym_SLASH_EQ] = ACTIONS(217), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(217), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(217), - [anon_sym_PERCENT_EQ] = ACTIONS(217), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(217), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(217), - [anon_sym_LT_LT_EQ] = ACTIONS(217), - [anon_sym_GT_GT_EQ] = ACTIONS(217), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(217), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(217), - [anon_sym_AMP_EQ] = ACTIONS(217), - [anon_sym_PIPE_EQ] = ACTIONS(217), - [anon_sym_CARET_EQ] = ACTIONS(217), - [anon_sym_QMARK] = ACTIONS(217), - [anon_sym_EQ_EQ] = ACTIONS(217), - [anon_sym_LT] = ACTIONS(215), - [anon_sym_GT] = ACTIONS(215), - [anon_sym_LT_EQ] = ACTIONS(215), - [anon_sym_GT_EQ] = ACTIONS(217), - [anon_sym_BANG_EQ] = ACTIONS(217), - [anon_sym_LT_EQ_GT] = ACTIONS(217), - [anon_sym_LT_LT] = ACTIONS(215), - [anon_sym_GT_GT] = ACTIONS(215), - [anon_sym_TILDE_GT_GT] = ACTIONS(215), - [anon_sym_CARET_GT_GT] = ACTIONS(215), - [anon_sym_DASH] = ACTIONS(215), - [anon_sym_PLUS] = ACTIONS(215), - [anon_sym_PIPE] = ACTIONS(215), - [anon_sym_CARET] = ACTIONS(215), - [anon_sym_STAR] = ACTIONS(219), - [anon_sym_SLASH] = ACTIONS(219), - [anon_sym_PERCENT] = ACTIONS(219), - [anon_sym_TILDE_SLASH] = ACTIONS(219), - [anon_sym_CARET_SLASH] = ACTIONS(219), - [anon_sym_TILDE_PERCENT] = ACTIONS(219), - [anon_sym_CARET_PERCENT] = ACTIONS(219), - [anon_sym_SLASH_PERCENT] = ACTIONS(221), - [anon_sym_AMP] = ACTIONS(219), - [anon_sym_TILDE] = ACTIONS(215), - [anon_sym_LBRACK] = ACTIONS(217), - [anon_sym_int] = ACTIONS(215), - [anon_sym_cell] = ACTIONS(215), - [anon_sym_slice] = ACTIONS(215), - [anon_sym_builder] = ACTIONS(215), - [anon_sym_cont] = ACTIONS(215), - [anon_sym_tuple] = ACTIONS(215), - [sym_var_type] = ACTIONS(215), - [aux_sym_number_literal_token1] = ACTIONS(215), - [sym_string_literal] = ACTIONS(215), - [sym_number_string_literal] = ACTIONS(217), - [sym_slice_string_literal] = ACTIONS(217), - [sym_underscore] = ACTIONS(215), + [sym_identifier] = ACTIONS(153), + [anon_sym_SEMI] = ACTIONS(153), + [anon_sym_EQ] = ACTIONS(153), + [anon_sym_LPAREN] = ACTIONS(155), + [anon_sym_return] = ACTIONS(153), + [anon_sym_LBRACE] = ACTIONS(153), + [anon_sym_RBRACE] = ACTIONS(155), + [anon_sym_repeat] = ACTIONS(153), + [anon_sym_if] = ACTIONS(153), + [anon_sym_ifnot] = ACTIONS(153), + [anon_sym_do] = ACTIONS(153), + [anon_sym_while] = ACTIONS(153), + [anon_sym_try] = ACTIONS(153), + [anon_sym_PLUS_EQ] = ACTIONS(155), + [anon_sym_DASH_EQ] = ACTIONS(155), + [anon_sym_STAR_EQ] = ACTIONS(155), + [anon_sym_SLASH_EQ] = ACTIONS(155), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(155), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(155), + [anon_sym_PERCENT_EQ] = ACTIONS(155), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(155), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(155), + [anon_sym_LT_LT_EQ] = ACTIONS(155), + [anon_sym_GT_GT_EQ] = ACTIONS(155), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(155), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(155), + [anon_sym_AMP_EQ] = ACTIONS(155), + [anon_sym_PIPE_EQ] = ACTIONS(155), + [anon_sym_CARET_EQ] = ACTIONS(155), + [anon_sym_QMARK] = ACTIONS(155), + [anon_sym_EQ_EQ] = ACTIONS(155), + [anon_sym_LT] = ACTIONS(153), + [anon_sym_GT] = ACTIONS(153), + [anon_sym_LT_EQ] = ACTIONS(153), + [anon_sym_GT_EQ] = ACTIONS(155), + [anon_sym_BANG_EQ] = ACTIONS(155), + [anon_sym_LT_EQ_GT] = ACTIONS(155), + [anon_sym_LT_LT] = ACTIONS(153), + [anon_sym_GT_GT] = ACTIONS(153), + [anon_sym_TILDE_GT_GT] = ACTIONS(153), + [anon_sym_CARET_GT_GT] = ACTIONS(153), + [anon_sym_DASH] = ACTIONS(153), + [anon_sym_PLUS] = ACTIONS(153), + [anon_sym_PIPE] = ACTIONS(153), + [anon_sym_CARET] = ACTIONS(153), + [anon_sym_STAR] = ACTIONS(153), + [anon_sym_SLASH] = ACTIONS(153), + [anon_sym_PERCENT] = ACTIONS(153), + [anon_sym_TILDE_SLASH] = ACTIONS(153), + [anon_sym_CARET_SLASH] = ACTIONS(153), + [anon_sym_TILDE_PERCENT] = ACTIONS(153), + [anon_sym_CARET_PERCENT] = ACTIONS(153), + [anon_sym_SLASH_PERCENT] = ACTIONS(155), + [anon_sym_AMP] = ACTIONS(153), + [anon_sym_TILDE] = ACTIONS(153), + [anon_sym_DOT] = ACTIONS(155), + [anon_sym_LBRACK] = ACTIONS(155), + [anon_sym_int] = ACTIONS(153), + [anon_sym_cell] = ACTIONS(153), + [anon_sym_slice] = ACTIONS(153), + [anon_sym_builder] = ACTIONS(153), + [anon_sym_cont] = ACTIONS(153), + [anon_sym_tuple] = ACTIONS(153), + [sym_var_type] = ACTIONS(153), + [aux_sym_number_literal_token1] = ACTIONS(153), + [sym_string_literal] = ACTIONS(153), + [sym_number_string_literal] = ACTIONS(155), + [sym_slice_string_literal] = ACTIONS(155), + [sym_underscore] = ACTIONS(153), [sym_comment] = ACTIONS(3), }, [STATE(19)] = { - [aux_sym__expr30_repeat1] = STATE(19), - [sym_identifier] = ACTIONS(223), - [anon_sym_SEMI] = ACTIONS(223), - [anon_sym_EQ] = ACTIONS(223), - [anon_sym_LPAREN] = ACTIONS(225), - [anon_sym_return] = ACTIONS(223), - [anon_sym_LBRACE] = ACTIONS(223), - [anon_sym_RBRACE] = ACTIONS(225), - [anon_sym_repeat] = ACTIONS(223), - [anon_sym_if] = ACTIONS(223), - [anon_sym_ifnot] = ACTIONS(223), - [anon_sym_do] = ACTIONS(223), - [anon_sym_while] = ACTIONS(223), - [anon_sym_try] = ACTIONS(223), - [anon_sym_PLUS_EQ] = ACTIONS(225), - [anon_sym_DASH_EQ] = ACTIONS(225), - [anon_sym_STAR_EQ] = ACTIONS(225), - [anon_sym_SLASH_EQ] = ACTIONS(225), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(225), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(225), - [anon_sym_PERCENT_EQ] = ACTIONS(225), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(225), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(225), - [anon_sym_LT_LT_EQ] = ACTIONS(225), - [anon_sym_GT_GT_EQ] = ACTIONS(225), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(225), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(225), - [anon_sym_AMP_EQ] = ACTIONS(225), - [anon_sym_PIPE_EQ] = ACTIONS(225), - [anon_sym_CARET_EQ] = ACTIONS(225), - [anon_sym_QMARK] = ACTIONS(225), - [anon_sym_EQ_EQ] = ACTIONS(225), - [anon_sym_LT] = ACTIONS(223), - [anon_sym_GT] = ACTIONS(223), - [anon_sym_LT_EQ] = ACTIONS(223), - [anon_sym_GT_EQ] = ACTIONS(225), - [anon_sym_BANG_EQ] = ACTIONS(225), - [anon_sym_LT_EQ_GT] = ACTIONS(225), - [anon_sym_LT_LT] = ACTIONS(223), - [anon_sym_GT_GT] = ACTIONS(223), - [anon_sym_TILDE_GT_GT] = ACTIONS(223), - [anon_sym_CARET_GT_GT] = ACTIONS(223), - [anon_sym_DASH] = ACTIONS(223), - [anon_sym_PLUS] = ACTIONS(223), - [anon_sym_PIPE] = ACTIONS(223), - [anon_sym_CARET] = ACTIONS(223), - [anon_sym_STAR] = ACTIONS(227), - [anon_sym_SLASH] = ACTIONS(227), - [anon_sym_PERCENT] = ACTIONS(227), - [anon_sym_TILDE_SLASH] = ACTIONS(227), - [anon_sym_CARET_SLASH] = ACTIONS(227), - [anon_sym_TILDE_PERCENT] = ACTIONS(227), - [anon_sym_CARET_PERCENT] = ACTIONS(227), - [anon_sym_SLASH_PERCENT] = ACTIONS(230), - [anon_sym_AMP] = ACTIONS(227), - [anon_sym_TILDE] = ACTIONS(223), - [anon_sym_LBRACK] = ACTIONS(225), - [anon_sym_int] = ACTIONS(223), - [anon_sym_cell] = ACTIONS(223), - [anon_sym_slice] = ACTIONS(223), - [anon_sym_builder] = ACTIONS(223), - [anon_sym_cont] = ACTIONS(223), - [anon_sym_tuple] = ACTIONS(223), - [sym_var_type] = ACTIONS(223), - [aux_sym_number_literal_token1] = ACTIONS(223), - [sym_string_literal] = ACTIONS(223), - [sym_number_string_literal] = ACTIONS(225), - [sym_slice_string_literal] = ACTIONS(225), - [sym_underscore] = ACTIONS(223), + [sym_identifier] = ACTIONS(157), + [anon_sym_SEMI] = ACTIONS(157), + [anon_sym_EQ] = ACTIONS(157), + [anon_sym_LPAREN] = ACTIONS(159), + [anon_sym_return] = ACTIONS(157), + [anon_sym_LBRACE] = ACTIONS(157), + [anon_sym_RBRACE] = ACTIONS(159), + [anon_sym_repeat] = ACTIONS(157), + [anon_sym_if] = ACTIONS(157), + [anon_sym_ifnot] = ACTIONS(157), + [anon_sym_do] = ACTIONS(157), + [anon_sym_while] = ACTIONS(157), + [anon_sym_try] = ACTIONS(157), + [anon_sym_PLUS_EQ] = ACTIONS(159), + [anon_sym_DASH_EQ] = ACTIONS(159), + [anon_sym_STAR_EQ] = ACTIONS(159), + [anon_sym_SLASH_EQ] = ACTIONS(159), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(159), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(159), + [anon_sym_PERCENT_EQ] = ACTIONS(159), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(159), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(159), + [anon_sym_LT_LT_EQ] = ACTIONS(159), + [anon_sym_GT_GT_EQ] = ACTIONS(159), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(159), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(159), + [anon_sym_AMP_EQ] = ACTIONS(159), + [anon_sym_PIPE_EQ] = ACTIONS(159), + [anon_sym_CARET_EQ] = ACTIONS(159), + [anon_sym_QMARK] = ACTIONS(159), + [anon_sym_EQ_EQ] = ACTIONS(159), + [anon_sym_LT] = ACTIONS(157), + [anon_sym_GT] = ACTIONS(157), + [anon_sym_LT_EQ] = ACTIONS(157), + [anon_sym_GT_EQ] = ACTIONS(159), + [anon_sym_BANG_EQ] = ACTIONS(159), + [anon_sym_LT_EQ_GT] = ACTIONS(159), + [anon_sym_LT_LT] = ACTIONS(157), + [anon_sym_GT_GT] = ACTIONS(157), + [anon_sym_TILDE_GT_GT] = ACTIONS(157), + [anon_sym_CARET_GT_GT] = ACTIONS(157), + [anon_sym_DASH] = ACTIONS(157), + [anon_sym_PLUS] = ACTIONS(157), + [anon_sym_PIPE] = ACTIONS(157), + [anon_sym_CARET] = ACTIONS(157), + [anon_sym_STAR] = ACTIONS(157), + [anon_sym_SLASH] = ACTIONS(157), + [anon_sym_PERCENT] = ACTIONS(157), + [anon_sym_TILDE_SLASH] = ACTIONS(157), + [anon_sym_CARET_SLASH] = ACTIONS(157), + [anon_sym_TILDE_PERCENT] = ACTIONS(157), + [anon_sym_CARET_PERCENT] = ACTIONS(157), + [anon_sym_SLASH_PERCENT] = ACTIONS(159), + [anon_sym_AMP] = ACTIONS(157), + [anon_sym_TILDE] = ACTIONS(157), + [anon_sym_DOT] = ACTIONS(159), + [anon_sym_LBRACK] = ACTIONS(159), + [anon_sym_int] = ACTIONS(157), + [anon_sym_cell] = ACTIONS(157), + [anon_sym_slice] = ACTIONS(157), + [anon_sym_builder] = ACTIONS(157), + [anon_sym_cont] = ACTIONS(157), + [anon_sym_tuple] = ACTIONS(157), + [sym_var_type] = ACTIONS(157), + [aux_sym_number_literal_token1] = ACTIONS(157), + [sym_string_literal] = ACTIONS(157), + [sym_number_string_literal] = ACTIONS(159), + [sym_slice_string_literal] = ACTIONS(159), + [sym_underscore] = ACTIONS(157), [sym_comment] = ACTIONS(3), }, [STATE(20)] = { - [sym_identifier] = ACTIONS(184), - [anon_sym_SEMI] = ACTIONS(184), - [anon_sym_EQ] = ACTIONS(184), - [anon_sym_LPAREN] = ACTIONS(191), - [anon_sym_return] = ACTIONS(184), - [anon_sym_LBRACE] = ACTIONS(184), - [anon_sym_RBRACE] = ACTIONS(191), - [anon_sym_repeat] = ACTIONS(184), - [anon_sym_if] = ACTIONS(184), - [anon_sym_ifnot] = ACTIONS(184), - [anon_sym_do] = ACTIONS(184), - [anon_sym_while] = ACTIONS(184), - [anon_sym_try] = ACTIONS(184), - [anon_sym_PLUS_EQ] = ACTIONS(191), - [anon_sym_DASH_EQ] = ACTIONS(191), - [anon_sym_STAR_EQ] = ACTIONS(191), - [anon_sym_SLASH_EQ] = ACTIONS(191), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(191), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(191), - [anon_sym_PERCENT_EQ] = ACTIONS(191), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(191), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(191), - [anon_sym_LT_LT_EQ] = ACTIONS(191), - [anon_sym_GT_GT_EQ] = ACTIONS(191), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(191), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(191), - [anon_sym_AMP_EQ] = ACTIONS(191), - [anon_sym_PIPE_EQ] = ACTIONS(191), - [anon_sym_CARET_EQ] = ACTIONS(191), - [anon_sym_QMARK] = ACTIONS(191), - [anon_sym_EQ_EQ] = ACTIONS(191), - [anon_sym_LT] = ACTIONS(184), - [anon_sym_GT] = ACTIONS(184), - [anon_sym_LT_EQ] = ACTIONS(184), - [anon_sym_GT_EQ] = ACTIONS(191), - [anon_sym_BANG_EQ] = ACTIONS(191), - [anon_sym_LT_EQ_GT] = ACTIONS(191), - [anon_sym_LT_LT] = ACTIONS(184), - [anon_sym_GT_GT] = ACTIONS(184), - [anon_sym_TILDE_GT_GT] = ACTIONS(184), - [anon_sym_CARET_GT_GT] = ACTIONS(184), - [anon_sym_DASH] = ACTIONS(184), - [anon_sym_PLUS] = ACTIONS(184), - [anon_sym_PIPE] = ACTIONS(184), - [anon_sym_CARET] = ACTIONS(184), - [anon_sym_STAR] = ACTIONS(184), - [anon_sym_SLASH] = ACTIONS(184), - [anon_sym_PERCENT] = ACTIONS(184), - [anon_sym_TILDE_SLASH] = ACTIONS(184), - [anon_sym_CARET_SLASH] = ACTIONS(184), - [anon_sym_TILDE_PERCENT] = ACTIONS(184), - [anon_sym_CARET_PERCENT] = ACTIONS(184), - [anon_sym_SLASH_PERCENT] = ACTIONS(191), - [anon_sym_AMP] = ACTIONS(184), - [anon_sym_TILDE] = ACTIONS(184), - [anon_sym_DOT] = ACTIONS(191), - [anon_sym_LBRACK] = ACTIONS(191), - [anon_sym_int] = ACTIONS(184), - [anon_sym_cell] = ACTIONS(184), - [anon_sym_slice] = ACTIONS(184), - [anon_sym_builder] = ACTIONS(184), - [anon_sym_cont] = ACTIONS(184), - [anon_sym_tuple] = ACTIONS(184), - [sym_var_type] = ACTIONS(184), - [aux_sym_number_literal_token1] = ACTIONS(184), - [sym_string_literal] = ACTIONS(184), - [sym_number_string_literal] = ACTIONS(191), - [sym_slice_string_literal] = ACTIONS(191), - [sym_underscore] = ACTIONS(184), + [sym__statement] = STATE(16), + [sym_return_statement] = STATE(16), + [sym_block_statement] = STATE(16), + [sym_expression_statement] = STATE(16), + [sym_empty_statement] = STATE(16), + [sym_repeat_statement] = STATE(16), + [sym_if_statement] = STATE(16), + [sym_do_while_statement] = STATE(16), + [sym_while_statement] = STATE(16), + [sym_try_catch_statement] = STATE(16), + [sym__expression] = STATE(170), + [sym__expr10] = STATE(170), + [sym__expr13] = STATE(139), + [sym__expr15] = STATE(136), + [sym__expr17] = STATE(77), + [sym__expr20] = STATE(47), + [sym__expr30] = STATE(38), + [sym__expr75] = STATE(13), + [sym__expr80] = STATE(13), + [sym__expr90] = STATE(4), + [sym_function_application] = STATE(4), + [sym_local_vars_declaration] = STATE(4), + [sym_tuple_vars_declaration] = STATE(14), + [sym_tensor_vars_declaration] = STATE(14), + [sym_var_declaration] = STATE(14), + [sym__var_declaration_lhs] = STATE(14), + [sym__nontype_expr100] = STATE(4), + [sym__expr100] = STATE(4), + [sym_parenthesized_expression] = STATE(4), + [sym_tensor_expression] = STATE(4), + [sym_typed_tuple] = STATE(4), + [sym__type_hint] = STATE(391), + [sym_function_type] = STATE(391), + [sym__atomic_type] = STATE(250), + [sym__parenthesized_type] = STATE(250), + [sym_primitive_type] = STATE(250), + [sym_tensor_type] = STATE(250), + [sym_tuple_type] = STATE(250), + [sym_hole_type] = STATE(250), + [sym_type_identifier] = STATE(250), + [sym_number_literal] = STATE(4), + [aux_sym_block_statement_repeat1] = STATE(16), + [sym_identifier] = ACTIONS(95), + [anon_sym_SEMI] = ACTIONS(97), + [anon_sym_LPAREN] = ACTIONS(99), + [anon_sym_return] = ACTIONS(101), + [anon_sym_LBRACE] = ACTIONS(103), + [anon_sym_RBRACE] = ACTIONS(161), + [anon_sym_repeat] = ACTIONS(107), + [anon_sym_if] = ACTIONS(109), + [anon_sym_ifnot] = ACTIONS(109), + [anon_sym_do] = ACTIONS(111), + [anon_sym_while] = ACTIONS(113), + [anon_sym_try] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(117), + [anon_sym_TILDE] = ACTIONS(119), + [anon_sym_LBRACK] = ACTIONS(121), + [anon_sym_int] = ACTIONS(25), + [anon_sym_cell] = ACTIONS(25), + [anon_sym_slice] = ACTIONS(25), + [anon_sym_builder] = ACTIONS(25), + [anon_sym_cont] = ACTIONS(25), + [anon_sym_tuple] = ACTIONS(25), + [sym_var_type] = ACTIONS(27), + [aux_sym_number_literal_token1] = ACTIONS(123), + [sym_string_literal] = ACTIONS(125), + [sym_number_string_literal] = ACTIONS(127), + [sym_slice_string_literal] = ACTIONS(129), + [sym_underscore] = ACTIONS(131), [sym_comment] = ACTIONS(3), }, [STATE(21)] = { - [sym_identifier] = ACTIONS(233), - [anon_sym_SEMI] = ACTIONS(233), - [anon_sym_EQ] = ACTIONS(233), - [anon_sym_LPAREN] = ACTIONS(235), - [anon_sym_return] = ACTIONS(233), - [anon_sym_LBRACE] = ACTIONS(233), - [anon_sym_RBRACE] = ACTIONS(235), - [anon_sym_repeat] = ACTIONS(233), - [anon_sym_if] = ACTIONS(233), - [anon_sym_ifnot] = ACTIONS(233), - [anon_sym_do] = ACTIONS(233), - [anon_sym_while] = ACTIONS(233), - [anon_sym_try] = ACTIONS(233), - [anon_sym_PLUS_EQ] = ACTIONS(235), - [anon_sym_DASH_EQ] = ACTIONS(235), - [anon_sym_STAR_EQ] = ACTIONS(235), - [anon_sym_SLASH_EQ] = ACTIONS(235), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(235), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(235), - [anon_sym_PERCENT_EQ] = ACTIONS(235), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(235), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(235), - [anon_sym_LT_LT_EQ] = ACTIONS(235), - [anon_sym_GT_GT_EQ] = ACTIONS(235), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(235), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(235), - [anon_sym_AMP_EQ] = ACTIONS(235), - [anon_sym_PIPE_EQ] = ACTIONS(235), - [anon_sym_CARET_EQ] = ACTIONS(235), - [anon_sym_QMARK] = ACTIONS(235), - [anon_sym_EQ_EQ] = ACTIONS(235), - [anon_sym_LT] = ACTIONS(233), - [anon_sym_GT] = ACTIONS(233), - [anon_sym_LT_EQ] = ACTIONS(233), - [anon_sym_GT_EQ] = ACTIONS(235), - [anon_sym_BANG_EQ] = ACTIONS(235), - [anon_sym_LT_EQ_GT] = ACTIONS(235), - [anon_sym_LT_LT] = ACTIONS(233), - [anon_sym_GT_GT] = ACTIONS(233), - [anon_sym_TILDE_GT_GT] = ACTIONS(233), - [anon_sym_CARET_GT_GT] = ACTIONS(233), - [anon_sym_DASH] = ACTIONS(233), - [anon_sym_PLUS] = ACTIONS(233), - [anon_sym_PIPE] = ACTIONS(233), - [anon_sym_CARET] = ACTIONS(233), - [anon_sym_STAR] = ACTIONS(233), - [anon_sym_SLASH] = ACTIONS(233), - [anon_sym_PERCENT] = ACTIONS(233), - [anon_sym_TILDE_SLASH] = ACTIONS(233), - [anon_sym_CARET_SLASH] = ACTIONS(233), - [anon_sym_TILDE_PERCENT] = ACTIONS(233), - [anon_sym_CARET_PERCENT] = ACTIONS(233), - [anon_sym_SLASH_PERCENT] = ACTIONS(235), - [anon_sym_AMP] = ACTIONS(233), - [anon_sym_TILDE] = ACTIONS(233), - [anon_sym_DOT] = ACTIONS(235), - [anon_sym_LBRACK] = ACTIONS(235), - [anon_sym_int] = ACTIONS(233), - [anon_sym_cell] = ACTIONS(233), - [anon_sym_slice] = ACTIONS(233), - [anon_sym_builder] = ACTIONS(233), - [anon_sym_cont] = ACTIONS(233), - [anon_sym_tuple] = ACTIONS(233), - [sym_var_type] = ACTIONS(233), - [aux_sym_number_literal_token1] = ACTIONS(233), - [sym_string_literal] = ACTIONS(233), - [sym_number_string_literal] = ACTIONS(235), - [sym_slice_string_literal] = ACTIONS(235), - [sym_underscore] = ACTIONS(233), + [sym_identifier] = ACTIONS(163), + [anon_sym_SEMI] = ACTIONS(163), + [anon_sym_EQ] = ACTIONS(163), + [anon_sym_LPAREN] = ACTIONS(165), + [anon_sym_return] = ACTIONS(163), + [anon_sym_LBRACE] = ACTIONS(163), + [anon_sym_RBRACE] = ACTIONS(165), + [anon_sym_repeat] = ACTIONS(163), + [anon_sym_if] = ACTIONS(163), + [anon_sym_ifnot] = ACTIONS(163), + [anon_sym_do] = ACTIONS(163), + [anon_sym_while] = ACTIONS(163), + [anon_sym_try] = ACTIONS(163), + [anon_sym_PLUS_EQ] = ACTIONS(165), + [anon_sym_DASH_EQ] = ACTIONS(165), + [anon_sym_STAR_EQ] = ACTIONS(165), + [anon_sym_SLASH_EQ] = ACTIONS(165), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(165), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(165), + [anon_sym_PERCENT_EQ] = ACTIONS(165), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(165), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(165), + [anon_sym_LT_LT_EQ] = ACTIONS(165), + [anon_sym_GT_GT_EQ] = ACTIONS(165), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(165), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(165), + [anon_sym_AMP_EQ] = ACTIONS(165), + [anon_sym_PIPE_EQ] = ACTIONS(165), + [anon_sym_CARET_EQ] = ACTIONS(165), + [anon_sym_QMARK] = ACTIONS(165), + [anon_sym_EQ_EQ] = ACTIONS(165), + [anon_sym_LT] = ACTIONS(163), + [anon_sym_GT] = ACTIONS(163), + [anon_sym_LT_EQ] = ACTIONS(163), + [anon_sym_GT_EQ] = ACTIONS(165), + [anon_sym_BANG_EQ] = ACTIONS(165), + [anon_sym_LT_EQ_GT] = ACTIONS(165), + [anon_sym_LT_LT] = ACTIONS(163), + [anon_sym_GT_GT] = ACTIONS(163), + [anon_sym_TILDE_GT_GT] = ACTIONS(163), + [anon_sym_CARET_GT_GT] = ACTIONS(163), + [anon_sym_DASH] = ACTIONS(163), + [anon_sym_PLUS] = ACTIONS(163), + [anon_sym_PIPE] = ACTIONS(163), + [anon_sym_CARET] = ACTIONS(163), + [anon_sym_STAR] = ACTIONS(163), + [anon_sym_SLASH] = ACTIONS(163), + [anon_sym_PERCENT] = ACTIONS(163), + [anon_sym_TILDE_SLASH] = ACTIONS(163), + [anon_sym_CARET_SLASH] = ACTIONS(163), + [anon_sym_TILDE_PERCENT] = ACTIONS(163), + [anon_sym_CARET_PERCENT] = ACTIONS(163), + [anon_sym_SLASH_PERCENT] = ACTIONS(165), + [anon_sym_AMP] = ACTIONS(163), + [anon_sym_TILDE] = ACTIONS(163), + [anon_sym_DOT] = ACTIONS(165), + [anon_sym_LBRACK] = ACTIONS(165), + [anon_sym_int] = ACTIONS(163), + [anon_sym_cell] = ACTIONS(163), + [anon_sym_slice] = ACTIONS(163), + [anon_sym_builder] = ACTIONS(163), + [anon_sym_cont] = ACTIONS(163), + [anon_sym_tuple] = ACTIONS(163), + [sym_var_type] = ACTIONS(163), + [aux_sym_number_literal_token1] = ACTIONS(163), + [sym_string_literal] = ACTIONS(163), + [sym_number_string_literal] = ACTIONS(165), + [sym_slice_string_literal] = ACTIONS(165), + [sym_underscore] = ACTIONS(163), [sym_comment] = ACTIONS(3), }, [STATE(22)] = { - [sym_identifier] = ACTIONS(237), - [anon_sym_SEMI] = ACTIONS(237), - [anon_sym_EQ] = ACTIONS(237), - [anon_sym_LPAREN] = ACTIONS(239), - [anon_sym_return] = ACTIONS(237), - [anon_sym_LBRACE] = ACTIONS(237), - [anon_sym_RBRACE] = ACTIONS(239), - [anon_sym_repeat] = ACTIONS(237), - [anon_sym_if] = ACTIONS(237), - [anon_sym_ifnot] = ACTIONS(237), - [anon_sym_do] = ACTIONS(237), - [anon_sym_while] = ACTIONS(237), - [anon_sym_try] = ACTIONS(237), - [anon_sym_PLUS_EQ] = ACTIONS(239), - [anon_sym_DASH_EQ] = ACTIONS(239), - [anon_sym_STAR_EQ] = ACTIONS(239), - [anon_sym_SLASH_EQ] = ACTIONS(239), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(239), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(239), - [anon_sym_PERCENT_EQ] = ACTIONS(239), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(239), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(239), - [anon_sym_LT_LT_EQ] = ACTIONS(239), - [anon_sym_GT_GT_EQ] = ACTIONS(239), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(239), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(239), - [anon_sym_AMP_EQ] = ACTIONS(239), - [anon_sym_PIPE_EQ] = ACTIONS(239), - [anon_sym_CARET_EQ] = ACTIONS(239), - [anon_sym_QMARK] = ACTIONS(239), - [anon_sym_EQ_EQ] = ACTIONS(239), - [anon_sym_LT] = ACTIONS(237), - [anon_sym_GT] = ACTIONS(237), - [anon_sym_LT_EQ] = ACTIONS(237), - [anon_sym_GT_EQ] = ACTIONS(239), - [anon_sym_BANG_EQ] = ACTIONS(239), - [anon_sym_LT_EQ_GT] = ACTIONS(239), - [anon_sym_LT_LT] = ACTIONS(237), - [anon_sym_GT_GT] = ACTIONS(237), - [anon_sym_TILDE_GT_GT] = ACTIONS(237), - [anon_sym_CARET_GT_GT] = ACTIONS(237), - [anon_sym_DASH] = ACTIONS(237), - [anon_sym_PLUS] = ACTIONS(237), - [anon_sym_PIPE] = ACTIONS(237), - [anon_sym_CARET] = ACTIONS(237), - [anon_sym_STAR] = ACTIONS(237), - [anon_sym_SLASH] = ACTIONS(237), - [anon_sym_PERCENT] = ACTIONS(237), - [anon_sym_TILDE_SLASH] = ACTIONS(237), - [anon_sym_CARET_SLASH] = ACTIONS(237), - [anon_sym_TILDE_PERCENT] = ACTIONS(237), - [anon_sym_CARET_PERCENT] = ACTIONS(237), - [anon_sym_SLASH_PERCENT] = ACTIONS(239), - [anon_sym_AMP] = ACTIONS(237), - [anon_sym_TILDE] = ACTIONS(237), - [anon_sym_DOT] = ACTIONS(239), - [anon_sym_LBRACK] = ACTIONS(239), - [anon_sym_int] = ACTIONS(237), - [anon_sym_cell] = ACTIONS(237), - [anon_sym_slice] = ACTIONS(237), - [anon_sym_builder] = ACTIONS(237), - [anon_sym_cont] = ACTIONS(237), - [anon_sym_tuple] = ACTIONS(237), - [sym_var_type] = ACTIONS(237), - [aux_sym_number_literal_token1] = ACTIONS(237), - [sym_string_literal] = ACTIONS(237), - [sym_number_string_literal] = ACTIONS(239), - [sym_slice_string_literal] = ACTIONS(239), - [sym_underscore] = ACTIONS(237), + [aux_sym__expr30_repeat1] = STATE(22), + [sym_identifier] = ACTIONS(167), + [anon_sym_SEMI] = ACTIONS(167), + [anon_sym_EQ] = ACTIONS(167), + [anon_sym_LPAREN] = ACTIONS(169), + [anon_sym_return] = ACTIONS(167), + [anon_sym_LBRACE] = ACTIONS(167), + [anon_sym_RBRACE] = ACTIONS(169), + [anon_sym_repeat] = ACTIONS(167), + [anon_sym_if] = ACTIONS(167), + [anon_sym_ifnot] = ACTIONS(167), + [anon_sym_do] = ACTIONS(167), + [anon_sym_while] = ACTIONS(167), + [anon_sym_try] = ACTIONS(167), + [anon_sym_PLUS_EQ] = ACTIONS(169), + [anon_sym_DASH_EQ] = ACTIONS(169), + [anon_sym_STAR_EQ] = ACTIONS(169), + [anon_sym_SLASH_EQ] = ACTIONS(169), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(169), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(169), + [anon_sym_PERCENT_EQ] = ACTIONS(169), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(169), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(169), + [anon_sym_LT_LT_EQ] = ACTIONS(169), + [anon_sym_GT_GT_EQ] = ACTIONS(169), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(169), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(169), + [anon_sym_AMP_EQ] = ACTIONS(169), + [anon_sym_PIPE_EQ] = ACTIONS(169), + [anon_sym_CARET_EQ] = ACTIONS(169), + [anon_sym_QMARK] = ACTIONS(169), + [anon_sym_EQ_EQ] = ACTIONS(169), + [anon_sym_LT] = ACTIONS(167), + [anon_sym_GT] = ACTIONS(167), + [anon_sym_LT_EQ] = ACTIONS(167), + [anon_sym_GT_EQ] = ACTIONS(169), + [anon_sym_BANG_EQ] = ACTIONS(169), + [anon_sym_LT_EQ_GT] = ACTIONS(169), + [anon_sym_LT_LT] = ACTIONS(167), + [anon_sym_GT_GT] = ACTIONS(167), + [anon_sym_TILDE_GT_GT] = ACTIONS(167), + [anon_sym_CARET_GT_GT] = ACTIONS(167), + [anon_sym_DASH] = ACTIONS(167), + [anon_sym_PLUS] = ACTIONS(167), + [anon_sym_PIPE] = ACTIONS(167), + [anon_sym_CARET] = ACTIONS(167), + [anon_sym_STAR] = ACTIONS(171), + [anon_sym_SLASH] = ACTIONS(171), + [anon_sym_PERCENT] = ACTIONS(171), + [anon_sym_TILDE_SLASH] = ACTIONS(171), + [anon_sym_CARET_SLASH] = ACTIONS(171), + [anon_sym_TILDE_PERCENT] = ACTIONS(171), + [anon_sym_CARET_PERCENT] = ACTIONS(171), + [anon_sym_SLASH_PERCENT] = ACTIONS(174), + [anon_sym_AMP] = ACTIONS(171), + [anon_sym_TILDE] = ACTIONS(167), + [anon_sym_LBRACK] = ACTIONS(169), + [anon_sym_int] = ACTIONS(167), + [anon_sym_cell] = ACTIONS(167), + [anon_sym_slice] = ACTIONS(167), + [anon_sym_builder] = ACTIONS(167), + [anon_sym_cont] = ACTIONS(167), + [anon_sym_tuple] = ACTIONS(167), + [sym_var_type] = ACTIONS(167), + [aux_sym_number_literal_token1] = ACTIONS(167), + [sym_string_literal] = ACTIONS(167), + [sym_number_string_literal] = ACTIONS(169), + [sym_slice_string_literal] = ACTIONS(169), + [sym_underscore] = ACTIONS(167), [sym_comment] = ACTIONS(3), }, [STATE(23)] = { - [sym_identifier] = ACTIONS(241), - [anon_sym_SEMI] = ACTIONS(241), - [anon_sym_EQ] = ACTIONS(241), - [anon_sym_LPAREN] = ACTIONS(243), - [anon_sym_return] = ACTIONS(241), - [anon_sym_LBRACE] = ACTIONS(241), - [anon_sym_RBRACE] = ACTIONS(243), - [anon_sym_repeat] = ACTIONS(241), - [anon_sym_if] = ACTIONS(241), - [anon_sym_ifnot] = ACTIONS(241), - [anon_sym_do] = ACTIONS(241), - [anon_sym_while] = ACTIONS(241), - [anon_sym_try] = ACTIONS(241), - [anon_sym_PLUS_EQ] = ACTIONS(243), - [anon_sym_DASH_EQ] = ACTIONS(243), - [anon_sym_STAR_EQ] = ACTIONS(243), - [anon_sym_SLASH_EQ] = ACTIONS(243), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(243), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(243), - [anon_sym_PERCENT_EQ] = ACTIONS(243), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(243), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(243), - [anon_sym_LT_LT_EQ] = ACTIONS(243), - [anon_sym_GT_GT_EQ] = ACTIONS(243), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(243), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(243), - [anon_sym_AMP_EQ] = ACTIONS(243), - [anon_sym_PIPE_EQ] = ACTIONS(243), - [anon_sym_CARET_EQ] = ACTIONS(243), - [anon_sym_QMARK] = ACTIONS(243), - [anon_sym_EQ_EQ] = ACTIONS(243), - [anon_sym_LT] = ACTIONS(241), - [anon_sym_GT] = ACTIONS(241), - [anon_sym_LT_EQ] = ACTIONS(241), - [anon_sym_GT_EQ] = ACTIONS(243), - [anon_sym_BANG_EQ] = ACTIONS(243), - [anon_sym_LT_EQ_GT] = ACTIONS(243), - [anon_sym_LT_LT] = ACTIONS(241), - [anon_sym_GT_GT] = ACTIONS(241), - [anon_sym_TILDE_GT_GT] = ACTIONS(241), - [anon_sym_CARET_GT_GT] = ACTIONS(241), - [anon_sym_DASH] = ACTIONS(241), - [anon_sym_PLUS] = ACTIONS(241), - [anon_sym_PIPE] = ACTIONS(241), - [anon_sym_CARET] = ACTIONS(241), - [anon_sym_STAR] = ACTIONS(241), - [anon_sym_SLASH] = ACTIONS(241), - [anon_sym_PERCENT] = ACTIONS(241), - [anon_sym_TILDE_SLASH] = ACTIONS(241), - [anon_sym_CARET_SLASH] = ACTIONS(241), - [anon_sym_TILDE_PERCENT] = ACTIONS(241), - [anon_sym_CARET_PERCENT] = ACTIONS(241), - [anon_sym_SLASH_PERCENT] = ACTIONS(243), - [anon_sym_AMP] = ACTIONS(241), - [anon_sym_TILDE] = ACTIONS(241), - [anon_sym_DOT] = ACTIONS(243), - [anon_sym_LBRACK] = ACTIONS(243), - [anon_sym_int] = ACTIONS(241), - [anon_sym_cell] = ACTIONS(241), - [anon_sym_slice] = ACTIONS(241), - [anon_sym_builder] = ACTIONS(241), - [anon_sym_cont] = ACTIONS(241), - [anon_sym_tuple] = ACTIONS(241), - [sym_var_type] = ACTIONS(241), - [aux_sym_number_literal_token1] = ACTIONS(241), - [sym_string_literal] = ACTIONS(241), - [sym_number_string_literal] = ACTIONS(243), - [sym_slice_string_literal] = ACTIONS(243), - [sym_underscore] = ACTIONS(241), + [sym_identifier] = ACTIONS(76), + [anon_sym_SEMI] = ACTIONS(76), + [anon_sym_EQ] = ACTIONS(76), + [anon_sym_LPAREN] = ACTIONS(78), + [anon_sym_return] = ACTIONS(76), + [anon_sym_LBRACE] = ACTIONS(76), + [anon_sym_RBRACE] = ACTIONS(78), + [anon_sym_repeat] = ACTIONS(76), + [anon_sym_if] = ACTIONS(76), + [anon_sym_ifnot] = ACTIONS(76), + [anon_sym_do] = ACTIONS(76), + [anon_sym_while] = ACTIONS(76), + [anon_sym_try] = ACTIONS(76), + [anon_sym_PLUS_EQ] = ACTIONS(78), + [anon_sym_DASH_EQ] = ACTIONS(78), + [anon_sym_STAR_EQ] = ACTIONS(78), + [anon_sym_SLASH_EQ] = ACTIONS(78), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(78), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(78), + [anon_sym_PERCENT_EQ] = ACTIONS(78), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(78), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(78), + [anon_sym_LT_LT_EQ] = ACTIONS(78), + [anon_sym_GT_GT_EQ] = ACTIONS(78), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(78), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(78), + [anon_sym_AMP_EQ] = ACTIONS(78), + [anon_sym_PIPE_EQ] = ACTIONS(78), + [anon_sym_CARET_EQ] = ACTIONS(78), + [anon_sym_QMARK] = ACTIONS(78), + [anon_sym_EQ_EQ] = ACTIONS(78), + [anon_sym_LT] = ACTIONS(76), + [anon_sym_GT] = ACTIONS(76), + [anon_sym_LT_EQ] = ACTIONS(76), + [anon_sym_GT_EQ] = ACTIONS(78), + [anon_sym_BANG_EQ] = ACTIONS(78), + [anon_sym_LT_EQ_GT] = ACTIONS(78), + [anon_sym_LT_LT] = ACTIONS(76), + [anon_sym_GT_GT] = ACTIONS(76), + [anon_sym_TILDE_GT_GT] = ACTIONS(76), + [anon_sym_CARET_GT_GT] = ACTIONS(76), + [anon_sym_DASH] = ACTIONS(76), + [anon_sym_PLUS] = ACTIONS(76), + [anon_sym_PIPE] = ACTIONS(76), + [anon_sym_CARET] = ACTIONS(76), + [anon_sym_STAR] = ACTIONS(76), + [anon_sym_SLASH] = ACTIONS(76), + [anon_sym_PERCENT] = ACTIONS(76), + [anon_sym_TILDE_SLASH] = ACTIONS(76), + [anon_sym_CARET_SLASH] = ACTIONS(76), + [anon_sym_TILDE_PERCENT] = ACTIONS(76), + [anon_sym_CARET_PERCENT] = ACTIONS(76), + [anon_sym_SLASH_PERCENT] = ACTIONS(78), + [anon_sym_AMP] = ACTIONS(76), + [anon_sym_TILDE] = ACTIONS(76), + [anon_sym_DOT] = ACTIONS(78), + [anon_sym_LBRACK] = ACTIONS(78), + [anon_sym_int] = ACTIONS(76), + [anon_sym_cell] = ACTIONS(76), + [anon_sym_slice] = ACTIONS(76), + [anon_sym_builder] = ACTIONS(76), + [anon_sym_cont] = ACTIONS(76), + [anon_sym_tuple] = ACTIONS(76), + [sym_var_type] = ACTIONS(76), + [aux_sym_number_literal_token1] = ACTIONS(76), + [sym_string_literal] = ACTIONS(76), + [sym_number_string_literal] = ACTIONS(78), + [sym_slice_string_literal] = ACTIONS(78), + [sym_underscore] = ACTIONS(76), [sym_comment] = ACTIONS(3), }, [STATE(24)] = { - [sym_identifier] = ACTIONS(245), - [anon_sym_SEMI] = ACTIONS(245), - [anon_sym_EQ] = ACTIONS(245), - [anon_sym_LPAREN] = ACTIONS(247), - [anon_sym_return] = ACTIONS(245), - [anon_sym_LBRACE] = ACTIONS(245), - [anon_sym_RBRACE] = ACTIONS(247), - [anon_sym_repeat] = ACTIONS(245), - [anon_sym_if] = ACTIONS(245), - [anon_sym_ifnot] = ACTIONS(245), - [anon_sym_do] = ACTIONS(245), - [anon_sym_while] = ACTIONS(245), - [anon_sym_try] = ACTIONS(245), - [anon_sym_PLUS_EQ] = ACTIONS(247), - [anon_sym_DASH_EQ] = ACTIONS(247), - [anon_sym_STAR_EQ] = ACTIONS(247), - [anon_sym_SLASH_EQ] = ACTIONS(247), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(247), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(247), - [anon_sym_PERCENT_EQ] = ACTIONS(247), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(247), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(247), - [anon_sym_LT_LT_EQ] = ACTIONS(247), - [anon_sym_GT_GT_EQ] = ACTIONS(247), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(247), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(247), - [anon_sym_AMP_EQ] = ACTIONS(247), - [anon_sym_PIPE_EQ] = ACTIONS(247), - [anon_sym_CARET_EQ] = ACTIONS(247), - [anon_sym_QMARK] = ACTIONS(247), - [anon_sym_EQ_EQ] = ACTIONS(247), - [anon_sym_LT] = ACTIONS(245), - [anon_sym_GT] = ACTIONS(245), - [anon_sym_LT_EQ] = ACTIONS(245), - [anon_sym_GT_EQ] = ACTIONS(247), - [anon_sym_BANG_EQ] = ACTIONS(247), - [anon_sym_LT_EQ_GT] = ACTIONS(247), - [anon_sym_LT_LT] = ACTIONS(245), - [anon_sym_GT_GT] = ACTIONS(245), - [anon_sym_TILDE_GT_GT] = ACTIONS(245), - [anon_sym_CARET_GT_GT] = ACTIONS(245), - [anon_sym_DASH] = ACTIONS(245), - [anon_sym_PLUS] = ACTIONS(245), - [anon_sym_PIPE] = ACTIONS(245), - [anon_sym_CARET] = ACTIONS(245), - [anon_sym_STAR] = ACTIONS(245), - [anon_sym_SLASH] = ACTIONS(245), - [anon_sym_PERCENT] = ACTIONS(245), - [anon_sym_TILDE_SLASH] = ACTIONS(245), - [anon_sym_CARET_SLASH] = ACTIONS(245), - [anon_sym_TILDE_PERCENT] = ACTIONS(245), - [anon_sym_CARET_PERCENT] = ACTIONS(245), - [anon_sym_SLASH_PERCENT] = ACTIONS(247), - [anon_sym_AMP] = ACTIONS(245), - [anon_sym_TILDE] = ACTIONS(245), - [anon_sym_DOT] = ACTIONS(247), - [anon_sym_LBRACK] = ACTIONS(247), - [anon_sym_int] = ACTIONS(245), - [anon_sym_cell] = ACTIONS(245), - [anon_sym_slice] = ACTIONS(245), - [anon_sym_builder] = ACTIONS(245), - [anon_sym_cont] = ACTIONS(245), - [anon_sym_tuple] = ACTIONS(245), - [sym_var_type] = ACTIONS(245), - [aux_sym_number_literal_token1] = ACTIONS(245), - [sym_string_literal] = ACTIONS(245), - [sym_number_string_literal] = ACTIONS(247), - [sym_slice_string_literal] = ACTIONS(247), - [sym_underscore] = ACTIONS(245), + [sym__statement] = STATE(24), + [sym_return_statement] = STATE(24), + [sym_block_statement] = STATE(24), + [sym_expression_statement] = STATE(24), + [sym_empty_statement] = STATE(24), + [sym_repeat_statement] = STATE(24), + [sym_if_statement] = STATE(24), + [sym_do_while_statement] = STATE(24), + [sym_while_statement] = STATE(24), + [sym_try_catch_statement] = STATE(24), + [sym__expression] = STATE(170), + [sym__expr10] = STATE(170), + [sym__expr13] = STATE(139), + [sym__expr15] = STATE(136), + [sym__expr17] = STATE(77), + [sym__expr20] = STATE(47), + [sym__expr30] = STATE(38), + [sym__expr75] = STATE(13), + [sym__expr80] = STATE(13), + [sym__expr90] = STATE(4), + [sym_function_application] = STATE(4), + [sym_local_vars_declaration] = STATE(4), + [sym_tuple_vars_declaration] = STATE(14), + [sym_tensor_vars_declaration] = STATE(14), + [sym_var_declaration] = STATE(14), + [sym__var_declaration_lhs] = STATE(14), + [sym__nontype_expr100] = STATE(4), + [sym__expr100] = STATE(4), + [sym_parenthesized_expression] = STATE(4), + [sym_tensor_expression] = STATE(4), + [sym_typed_tuple] = STATE(4), + [sym__type_hint] = STATE(391), + [sym_function_type] = STATE(391), + [sym__atomic_type] = STATE(250), + [sym__parenthesized_type] = STATE(250), + [sym_primitive_type] = STATE(250), + [sym_tensor_type] = STATE(250), + [sym_tuple_type] = STATE(250), + [sym_hole_type] = STATE(250), + [sym_type_identifier] = STATE(250), + [sym_number_literal] = STATE(4), + [aux_sym_block_statement_repeat1] = STATE(24), + [sym_identifier] = ACTIONS(177), + [anon_sym_SEMI] = ACTIONS(180), + [anon_sym_LPAREN] = ACTIONS(183), + [anon_sym_return] = ACTIONS(186), + [anon_sym_LBRACE] = ACTIONS(189), + [anon_sym_RBRACE] = ACTIONS(192), + [anon_sym_repeat] = ACTIONS(194), + [anon_sym_if] = ACTIONS(197), + [anon_sym_ifnot] = ACTIONS(197), + [anon_sym_do] = ACTIONS(200), + [anon_sym_while] = ACTIONS(203), + [anon_sym_try] = ACTIONS(206), + [anon_sym_DASH] = ACTIONS(209), + [anon_sym_TILDE] = ACTIONS(212), + [anon_sym_LBRACK] = ACTIONS(215), + [anon_sym_int] = ACTIONS(218), + [anon_sym_cell] = ACTIONS(218), + [anon_sym_slice] = ACTIONS(218), + [anon_sym_builder] = ACTIONS(218), + [anon_sym_cont] = ACTIONS(218), + [anon_sym_tuple] = ACTIONS(218), + [sym_var_type] = ACTIONS(221), + [aux_sym_number_literal_token1] = ACTIONS(224), + [sym_string_literal] = ACTIONS(227), + [sym_number_string_literal] = ACTIONS(230), + [sym_slice_string_literal] = ACTIONS(233), + [sym_underscore] = ACTIONS(236), [sym_comment] = ACTIONS(3), }, [STATE(25)] = { - [sym_identifier] = ACTIONS(249), - [anon_sym_SEMI] = ACTIONS(249), - [anon_sym_EQ] = ACTIONS(249), - [anon_sym_LPAREN] = ACTIONS(251), - [anon_sym_return] = ACTIONS(249), - [anon_sym_LBRACE] = ACTIONS(249), - [anon_sym_RBRACE] = ACTIONS(251), - [anon_sym_repeat] = ACTIONS(249), - [anon_sym_if] = ACTIONS(249), - [anon_sym_ifnot] = ACTIONS(249), - [anon_sym_do] = ACTIONS(249), - [anon_sym_while] = ACTIONS(249), - [anon_sym_try] = ACTIONS(249), - [anon_sym_PLUS_EQ] = ACTIONS(251), - [anon_sym_DASH_EQ] = ACTIONS(251), - [anon_sym_STAR_EQ] = ACTIONS(251), - [anon_sym_SLASH_EQ] = ACTIONS(251), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(251), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(251), - [anon_sym_PERCENT_EQ] = ACTIONS(251), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(251), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(251), - [anon_sym_LT_LT_EQ] = ACTIONS(251), - [anon_sym_GT_GT_EQ] = ACTIONS(251), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(251), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(251), - [anon_sym_AMP_EQ] = ACTIONS(251), - [anon_sym_PIPE_EQ] = ACTIONS(251), - [anon_sym_CARET_EQ] = ACTIONS(251), - [anon_sym_QMARK] = ACTIONS(251), - [anon_sym_EQ_EQ] = ACTIONS(251), - [anon_sym_LT] = ACTIONS(249), - [anon_sym_GT] = ACTIONS(249), - [anon_sym_LT_EQ] = ACTIONS(249), - [anon_sym_GT_EQ] = ACTIONS(251), - [anon_sym_BANG_EQ] = ACTIONS(251), - [anon_sym_LT_EQ_GT] = ACTIONS(251), - [anon_sym_LT_LT] = ACTIONS(249), - [anon_sym_GT_GT] = ACTIONS(249), - [anon_sym_TILDE_GT_GT] = ACTIONS(249), - [anon_sym_CARET_GT_GT] = ACTIONS(249), - [anon_sym_DASH] = ACTIONS(249), - [anon_sym_PLUS] = ACTIONS(249), - [anon_sym_PIPE] = ACTIONS(249), - [anon_sym_CARET] = ACTIONS(249), - [anon_sym_STAR] = ACTIONS(249), - [anon_sym_SLASH] = ACTIONS(249), - [anon_sym_PERCENT] = ACTIONS(249), - [anon_sym_TILDE_SLASH] = ACTIONS(249), - [anon_sym_CARET_SLASH] = ACTIONS(249), - [anon_sym_TILDE_PERCENT] = ACTIONS(249), - [anon_sym_CARET_PERCENT] = ACTIONS(249), - [anon_sym_SLASH_PERCENT] = ACTIONS(251), - [anon_sym_AMP] = ACTIONS(249), - [anon_sym_TILDE] = ACTIONS(249), - [anon_sym_DOT] = ACTIONS(251), - [anon_sym_LBRACK] = ACTIONS(251), - [anon_sym_int] = ACTIONS(249), - [anon_sym_cell] = ACTIONS(249), - [anon_sym_slice] = ACTIONS(249), - [anon_sym_builder] = ACTIONS(249), - [anon_sym_cont] = ACTIONS(249), - [anon_sym_tuple] = ACTIONS(249), - [sym_var_type] = ACTIONS(249), - [aux_sym_number_literal_token1] = ACTIONS(249), - [sym_string_literal] = ACTIONS(249), - [sym_number_string_literal] = ACTIONS(251), - [sym_slice_string_literal] = ACTIONS(251), - [sym_underscore] = ACTIONS(249), + [sym_identifier] = ACTIONS(239), + [anon_sym_SEMI] = ACTIONS(239), + [anon_sym_EQ] = ACTIONS(239), + [anon_sym_LPAREN] = ACTIONS(241), + [anon_sym_return] = ACTIONS(239), + [anon_sym_LBRACE] = ACTIONS(239), + [anon_sym_RBRACE] = ACTIONS(241), + [anon_sym_repeat] = ACTIONS(239), + [anon_sym_if] = ACTIONS(239), + [anon_sym_ifnot] = ACTIONS(239), + [anon_sym_do] = ACTIONS(239), + [anon_sym_while] = ACTIONS(239), + [anon_sym_try] = ACTIONS(239), + [anon_sym_PLUS_EQ] = ACTIONS(241), + [anon_sym_DASH_EQ] = ACTIONS(241), + [anon_sym_STAR_EQ] = ACTIONS(241), + [anon_sym_SLASH_EQ] = ACTIONS(241), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(241), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(241), + [anon_sym_PERCENT_EQ] = ACTIONS(241), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(241), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(241), + [anon_sym_LT_LT_EQ] = ACTIONS(241), + [anon_sym_GT_GT_EQ] = ACTIONS(241), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(241), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(241), + [anon_sym_AMP_EQ] = ACTIONS(241), + [anon_sym_PIPE_EQ] = ACTIONS(241), + [anon_sym_CARET_EQ] = ACTIONS(241), + [anon_sym_QMARK] = ACTIONS(241), + [anon_sym_EQ_EQ] = ACTIONS(241), + [anon_sym_LT] = ACTIONS(239), + [anon_sym_GT] = ACTIONS(239), + [anon_sym_LT_EQ] = ACTIONS(239), + [anon_sym_GT_EQ] = ACTIONS(241), + [anon_sym_BANG_EQ] = ACTIONS(241), + [anon_sym_LT_EQ_GT] = ACTIONS(241), + [anon_sym_LT_LT] = ACTIONS(239), + [anon_sym_GT_GT] = ACTIONS(239), + [anon_sym_TILDE_GT_GT] = ACTIONS(239), + [anon_sym_CARET_GT_GT] = ACTIONS(239), + [anon_sym_DASH] = ACTIONS(239), + [anon_sym_PLUS] = ACTIONS(239), + [anon_sym_PIPE] = ACTIONS(239), + [anon_sym_CARET] = ACTIONS(239), + [anon_sym_STAR] = ACTIONS(239), + [anon_sym_SLASH] = ACTIONS(239), + [anon_sym_PERCENT] = ACTIONS(239), + [anon_sym_TILDE_SLASH] = ACTIONS(239), + [anon_sym_CARET_SLASH] = ACTIONS(239), + [anon_sym_TILDE_PERCENT] = ACTIONS(239), + [anon_sym_CARET_PERCENT] = ACTIONS(239), + [anon_sym_SLASH_PERCENT] = ACTIONS(241), + [anon_sym_AMP] = ACTIONS(239), + [anon_sym_TILDE] = ACTIONS(239), + [anon_sym_DOT] = ACTIONS(241), + [anon_sym_LBRACK] = ACTIONS(241), + [anon_sym_int] = ACTIONS(239), + [anon_sym_cell] = ACTIONS(239), + [anon_sym_slice] = ACTIONS(239), + [anon_sym_builder] = ACTIONS(239), + [anon_sym_cont] = ACTIONS(239), + [anon_sym_tuple] = ACTIONS(239), + [sym_var_type] = ACTIONS(239), + [aux_sym_number_literal_token1] = ACTIONS(239), + [sym_string_literal] = ACTIONS(239), + [sym_number_string_literal] = ACTIONS(241), + [sym_slice_string_literal] = ACTIONS(241), + [sym_underscore] = ACTIONS(239), [sym_comment] = ACTIONS(3), }, [STATE(26)] = { - [sym_identifier] = ACTIONS(253), - [anon_sym_SEMI] = ACTIONS(253), - [anon_sym_EQ] = ACTIONS(253), - [anon_sym_LPAREN] = ACTIONS(255), - [anon_sym_return] = ACTIONS(253), - [anon_sym_LBRACE] = ACTIONS(253), - [anon_sym_RBRACE] = ACTIONS(255), - [anon_sym_repeat] = ACTIONS(253), - [anon_sym_if] = ACTIONS(253), - [anon_sym_ifnot] = ACTIONS(253), - [anon_sym_do] = ACTIONS(253), - [anon_sym_while] = ACTIONS(253), - [anon_sym_try] = ACTIONS(253), - [anon_sym_PLUS_EQ] = ACTIONS(255), - [anon_sym_DASH_EQ] = ACTIONS(255), - [anon_sym_STAR_EQ] = ACTIONS(255), - [anon_sym_SLASH_EQ] = ACTIONS(255), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(255), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(255), - [anon_sym_PERCENT_EQ] = ACTIONS(255), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(255), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(255), - [anon_sym_LT_LT_EQ] = ACTIONS(255), - [anon_sym_GT_GT_EQ] = ACTIONS(255), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(255), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(255), - [anon_sym_AMP_EQ] = ACTIONS(255), - [anon_sym_PIPE_EQ] = ACTIONS(255), - [anon_sym_CARET_EQ] = ACTIONS(255), - [anon_sym_QMARK] = ACTIONS(255), - [anon_sym_EQ_EQ] = ACTIONS(255), - [anon_sym_LT] = ACTIONS(253), - [anon_sym_GT] = ACTIONS(253), - [anon_sym_LT_EQ] = ACTIONS(253), - [anon_sym_GT_EQ] = ACTIONS(255), - [anon_sym_BANG_EQ] = ACTIONS(255), - [anon_sym_LT_EQ_GT] = ACTIONS(255), - [anon_sym_LT_LT] = ACTIONS(253), - [anon_sym_GT_GT] = ACTIONS(253), - [anon_sym_TILDE_GT_GT] = ACTIONS(253), - [anon_sym_CARET_GT_GT] = ACTIONS(253), - [anon_sym_DASH] = ACTIONS(253), - [anon_sym_PLUS] = ACTIONS(253), - [anon_sym_PIPE] = ACTIONS(253), - [anon_sym_CARET] = ACTIONS(253), - [anon_sym_STAR] = ACTIONS(253), - [anon_sym_SLASH] = ACTIONS(253), - [anon_sym_PERCENT] = ACTIONS(253), - [anon_sym_TILDE_SLASH] = ACTIONS(253), - [anon_sym_CARET_SLASH] = ACTIONS(253), - [anon_sym_TILDE_PERCENT] = ACTIONS(253), - [anon_sym_CARET_PERCENT] = ACTIONS(253), - [anon_sym_SLASH_PERCENT] = ACTIONS(255), - [anon_sym_AMP] = ACTIONS(253), - [anon_sym_TILDE] = ACTIONS(253), - [anon_sym_DOT] = ACTIONS(255), - [anon_sym_LBRACK] = ACTIONS(255), - [anon_sym_int] = ACTIONS(253), - [anon_sym_cell] = ACTIONS(253), - [anon_sym_slice] = ACTIONS(253), - [anon_sym_builder] = ACTIONS(253), - [anon_sym_cont] = ACTIONS(253), - [anon_sym_tuple] = ACTIONS(253), - [sym_var_type] = ACTIONS(253), - [aux_sym_number_literal_token1] = ACTIONS(253), - [sym_string_literal] = ACTIONS(253), - [sym_number_string_literal] = ACTIONS(255), - [sym_slice_string_literal] = ACTIONS(255), - [sym_underscore] = ACTIONS(253), + [sym_identifier] = ACTIONS(243), + [anon_sym_SEMI] = ACTIONS(243), + [anon_sym_EQ] = ACTIONS(243), + [anon_sym_LPAREN] = ACTIONS(245), + [anon_sym_return] = ACTIONS(243), + [anon_sym_LBRACE] = ACTIONS(243), + [anon_sym_RBRACE] = ACTIONS(245), + [anon_sym_repeat] = ACTIONS(243), + [anon_sym_if] = ACTIONS(243), + [anon_sym_ifnot] = ACTIONS(243), + [anon_sym_do] = ACTIONS(243), + [anon_sym_while] = ACTIONS(243), + [anon_sym_try] = ACTIONS(243), + [anon_sym_PLUS_EQ] = ACTIONS(245), + [anon_sym_DASH_EQ] = ACTIONS(245), + [anon_sym_STAR_EQ] = ACTIONS(245), + [anon_sym_SLASH_EQ] = ACTIONS(245), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(245), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(245), + [anon_sym_PERCENT_EQ] = ACTIONS(245), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(245), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(245), + [anon_sym_LT_LT_EQ] = ACTIONS(245), + [anon_sym_GT_GT_EQ] = ACTIONS(245), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(245), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(245), + [anon_sym_AMP_EQ] = ACTIONS(245), + [anon_sym_PIPE_EQ] = ACTIONS(245), + [anon_sym_CARET_EQ] = ACTIONS(245), + [anon_sym_QMARK] = ACTIONS(245), + [anon_sym_EQ_EQ] = ACTIONS(245), + [anon_sym_LT] = ACTIONS(243), + [anon_sym_GT] = ACTIONS(243), + [anon_sym_LT_EQ] = ACTIONS(243), + [anon_sym_GT_EQ] = ACTIONS(245), + [anon_sym_BANG_EQ] = ACTIONS(245), + [anon_sym_LT_EQ_GT] = ACTIONS(245), + [anon_sym_LT_LT] = ACTIONS(243), + [anon_sym_GT_GT] = ACTIONS(243), + [anon_sym_TILDE_GT_GT] = ACTIONS(243), + [anon_sym_CARET_GT_GT] = ACTIONS(243), + [anon_sym_DASH] = ACTIONS(243), + [anon_sym_PLUS] = ACTIONS(243), + [anon_sym_PIPE] = ACTIONS(243), + [anon_sym_CARET] = ACTIONS(243), + [anon_sym_STAR] = ACTIONS(243), + [anon_sym_SLASH] = ACTIONS(243), + [anon_sym_PERCENT] = ACTIONS(243), + [anon_sym_TILDE_SLASH] = ACTIONS(243), + [anon_sym_CARET_SLASH] = ACTIONS(243), + [anon_sym_TILDE_PERCENT] = ACTIONS(243), + [anon_sym_CARET_PERCENT] = ACTIONS(243), + [anon_sym_SLASH_PERCENT] = ACTIONS(245), + [anon_sym_AMP] = ACTIONS(243), + [anon_sym_TILDE] = ACTIONS(243), + [anon_sym_DOT] = ACTIONS(245), + [anon_sym_LBRACK] = ACTIONS(245), + [anon_sym_int] = ACTIONS(243), + [anon_sym_cell] = ACTIONS(243), + [anon_sym_slice] = ACTIONS(243), + [anon_sym_builder] = ACTIONS(243), + [anon_sym_cont] = ACTIONS(243), + [anon_sym_tuple] = ACTIONS(243), + [sym_var_type] = ACTIONS(243), + [aux_sym_number_literal_token1] = ACTIONS(243), + [sym_string_literal] = ACTIONS(243), + [sym_number_string_literal] = ACTIONS(245), + [sym_slice_string_literal] = ACTIONS(245), + [sym_underscore] = ACTIONS(243), [sym_comment] = ACTIONS(3), }, [STATE(27)] = { - [sym_identifier] = ACTIONS(257), - [anon_sym_SEMI] = ACTIONS(257), - [anon_sym_EQ] = ACTIONS(257), - [anon_sym_LPAREN] = ACTIONS(259), - [anon_sym_return] = ACTIONS(257), - [anon_sym_LBRACE] = ACTIONS(257), - [anon_sym_RBRACE] = ACTIONS(259), - [anon_sym_repeat] = ACTIONS(257), - [anon_sym_if] = ACTIONS(257), - [anon_sym_ifnot] = ACTIONS(257), - [anon_sym_do] = ACTIONS(257), - [anon_sym_while] = ACTIONS(257), - [anon_sym_try] = ACTIONS(257), - [anon_sym_PLUS_EQ] = ACTIONS(259), - [anon_sym_DASH_EQ] = ACTIONS(259), - [anon_sym_STAR_EQ] = ACTIONS(259), - [anon_sym_SLASH_EQ] = ACTIONS(259), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(259), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(259), - [anon_sym_PERCENT_EQ] = ACTIONS(259), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(259), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(259), - [anon_sym_LT_LT_EQ] = ACTIONS(259), - [anon_sym_GT_GT_EQ] = ACTIONS(259), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(259), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(259), - [anon_sym_AMP_EQ] = ACTIONS(259), - [anon_sym_PIPE_EQ] = ACTIONS(259), - [anon_sym_CARET_EQ] = ACTIONS(259), - [anon_sym_QMARK] = ACTIONS(259), - [anon_sym_EQ_EQ] = ACTIONS(259), - [anon_sym_LT] = ACTIONS(257), - [anon_sym_GT] = ACTIONS(257), - [anon_sym_LT_EQ] = ACTIONS(257), - [anon_sym_GT_EQ] = ACTIONS(259), - [anon_sym_BANG_EQ] = ACTIONS(259), - [anon_sym_LT_EQ_GT] = ACTIONS(259), - [anon_sym_LT_LT] = ACTIONS(257), - [anon_sym_GT_GT] = ACTIONS(257), - [anon_sym_TILDE_GT_GT] = ACTIONS(257), - [anon_sym_CARET_GT_GT] = ACTIONS(257), - [anon_sym_DASH] = ACTIONS(257), - [anon_sym_PLUS] = ACTIONS(257), - [anon_sym_PIPE] = ACTIONS(257), - [anon_sym_CARET] = ACTIONS(257), - [anon_sym_STAR] = ACTIONS(257), - [anon_sym_SLASH] = ACTIONS(257), - [anon_sym_PERCENT] = ACTIONS(257), - [anon_sym_TILDE_SLASH] = ACTIONS(257), - [anon_sym_CARET_SLASH] = ACTIONS(257), - [anon_sym_TILDE_PERCENT] = ACTIONS(257), - [anon_sym_CARET_PERCENT] = ACTIONS(257), - [anon_sym_SLASH_PERCENT] = ACTIONS(259), - [anon_sym_AMP] = ACTIONS(257), - [anon_sym_TILDE] = ACTIONS(257), - [anon_sym_DOT] = ACTIONS(259), - [anon_sym_LBRACK] = ACTIONS(259), - [anon_sym_int] = ACTIONS(257), - [anon_sym_cell] = ACTIONS(257), - [anon_sym_slice] = ACTIONS(257), - [anon_sym_builder] = ACTIONS(257), - [anon_sym_cont] = ACTIONS(257), - [anon_sym_tuple] = ACTIONS(257), - [sym_var_type] = ACTIONS(257), - [aux_sym_number_literal_token1] = ACTIONS(257), - [sym_string_literal] = ACTIONS(257), - [sym_number_string_literal] = ACTIONS(259), - [sym_slice_string_literal] = ACTIONS(259), - [sym_underscore] = ACTIONS(257), + [sym_identifier] = ACTIONS(247), + [anon_sym_SEMI] = ACTIONS(247), + [anon_sym_EQ] = ACTIONS(247), + [anon_sym_LPAREN] = ACTIONS(249), + [anon_sym_return] = ACTIONS(247), + [anon_sym_LBRACE] = ACTIONS(247), + [anon_sym_RBRACE] = ACTIONS(249), + [anon_sym_repeat] = ACTIONS(247), + [anon_sym_if] = ACTIONS(247), + [anon_sym_ifnot] = ACTIONS(247), + [anon_sym_do] = ACTIONS(247), + [anon_sym_while] = ACTIONS(247), + [anon_sym_try] = ACTIONS(247), + [anon_sym_PLUS_EQ] = ACTIONS(249), + [anon_sym_DASH_EQ] = ACTIONS(249), + [anon_sym_STAR_EQ] = ACTIONS(249), + [anon_sym_SLASH_EQ] = ACTIONS(249), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(249), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(249), + [anon_sym_PERCENT_EQ] = ACTIONS(249), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(249), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(249), + [anon_sym_LT_LT_EQ] = ACTIONS(249), + [anon_sym_GT_GT_EQ] = ACTIONS(249), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(249), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(249), + [anon_sym_AMP_EQ] = ACTIONS(249), + [anon_sym_PIPE_EQ] = ACTIONS(249), + [anon_sym_CARET_EQ] = ACTIONS(249), + [anon_sym_QMARK] = ACTIONS(249), + [anon_sym_EQ_EQ] = ACTIONS(249), + [anon_sym_LT] = ACTIONS(247), + [anon_sym_GT] = ACTIONS(247), + [anon_sym_LT_EQ] = ACTIONS(247), + [anon_sym_GT_EQ] = ACTIONS(249), + [anon_sym_BANG_EQ] = ACTIONS(249), + [anon_sym_LT_EQ_GT] = ACTIONS(249), + [anon_sym_LT_LT] = ACTIONS(247), + [anon_sym_GT_GT] = ACTIONS(247), + [anon_sym_TILDE_GT_GT] = ACTIONS(247), + [anon_sym_CARET_GT_GT] = ACTIONS(247), + [anon_sym_DASH] = ACTIONS(247), + [anon_sym_PLUS] = ACTIONS(247), + [anon_sym_PIPE] = ACTIONS(247), + [anon_sym_CARET] = ACTIONS(247), + [anon_sym_STAR] = ACTIONS(247), + [anon_sym_SLASH] = ACTIONS(247), + [anon_sym_PERCENT] = ACTIONS(247), + [anon_sym_TILDE_SLASH] = ACTIONS(247), + [anon_sym_CARET_SLASH] = ACTIONS(247), + [anon_sym_TILDE_PERCENT] = ACTIONS(247), + [anon_sym_CARET_PERCENT] = ACTIONS(247), + [anon_sym_SLASH_PERCENT] = ACTIONS(249), + [anon_sym_AMP] = ACTIONS(247), + [anon_sym_TILDE] = ACTIONS(247), + [anon_sym_DOT] = ACTIONS(249), + [anon_sym_LBRACK] = ACTIONS(249), + [anon_sym_int] = ACTIONS(247), + [anon_sym_cell] = ACTIONS(247), + [anon_sym_slice] = ACTIONS(247), + [anon_sym_builder] = ACTIONS(247), + [anon_sym_cont] = ACTIONS(247), + [anon_sym_tuple] = ACTIONS(247), + [sym_var_type] = ACTIONS(247), + [aux_sym_number_literal_token1] = ACTIONS(247), + [sym_string_literal] = ACTIONS(247), + [sym_number_string_literal] = ACTIONS(249), + [sym_slice_string_literal] = ACTIONS(249), + [sym_underscore] = ACTIONS(247), [sym_comment] = ACTIONS(3), }, [STATE(28)] = { - [sym_identifier] = ACTIONS(261), - [anon_sym_SEMI] = ACTIONS(261), - [anon_sym_EQ] = ACTIONS(261), - [anon_sym_LPAREN] = ACTIONS(263), - [anon_sym_return] = ACTIONS(261), - [anon_sym_LBRACE] = ACTIONS(261), - [anon_sym_RBRACE] = ACTIONS(263), - [anon_sym_repeat] = ACTIONS(261), - [anon_sym_if] = ACTIONS(261), - [anon_sym_ifnot] = ACTIONS(261), - [anon_sym_do] = ACTIONS(261), - [anon_sym_while] = ACTIONS(261), - [anon_sym_try] = ACTIONS(261), - [anon_sym_PLUS_EQ] = ACTIONS(263), - [anon_sym_DASH_EQ] = ACTIONS(263), - [anon_sym_STAR_EQ] = ACTIONS(263), - [anon_sym_SLASH_EQ] = ACTIONS(263), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(263), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(263), - [anon_sym_PERCENT_EQ] = ACTIONS(263), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(263), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(263), - [anon_sym_LT_LT_EQ] = ACTIONS(263), - [anon_sym_GT_GT_EQ] = ACTIONS(263), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(263), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(263), - [anon_sym_AMP_EQ] = ACTIONS(263), - [anon_sym_PIPE_EQ] = ACTIONS(263), - [anon_sym_CARET_EQ] = ACTIONS(263), - [anon_sym_QMARK] = ACTIONS(263), - [anon_sym_EQ_EQ] = ACTIONS(263), - [anon_sym_LT] = ACTIONS(261), - [anon_sym_GT] = ACTIONS(261), - [anon_sym_LT_EQ] = ACTIONS(261), - [anon_sym_GT_EQ] = ACTIONS(263), - [anon_sym_BANG_EQ] = ACTIONS(263), - [anon_sym_LT_EQ_GT] = ACTIONS(263), - [anon_sym_LT_LT] = ACTIONS(261), - [anon_sym_GT_GT] = ACTIONS(261), - [anon_sym_TILDE_GT_GT] = ACTIONS(261), - [anon_sym_CARET_GT_GT] = ACTIONS(261), - [anon_sym_DASH] = ACTIONS(261), - [anon_sym_PLUS] = ACTIONS(261), - [anon_sym_PIPE] = ACTIONS(261), - [anon_sym_CARET] = ACTIONS(261), - [anon_sym_STAR] = ACTIONS(261), - [anon_sym_SLASH] = ACTIONS(261), - [anon_sym_PERCENT] = ACTIONS(261), - [anon_sym_TILDE_SLASH] = ACTIONS(261), - [anon_sym_CARET_SLASH] = ACTIONS(261), - [anon_sym_TILDE_PERCENT] = ACTIONS(261), - [anon_sym_CARET_PERCENT] = ACTIONS(261), - [anon_sym_SLASH_PERCENT] = ACTIONS(263), - [anon_sym_AMP] = ACTIONS(261), - [anon_sym_TILDE] = ACTIONS(261), - [anon_sym_DOT] = ACTIONS(263), - [anon_sym_LBRACK] = ACTIONS(263), - [anon_sym_int] = ACTIONS(261), - [anon_sym_cell] = ACTIONS(261), - [anon_sym_slice] = ACTIONS(261), - [anon_sym_builder] = ACTIONS(261), - [anon_sym_cont] = ACTIONS(261), - [anon_sym_tuple] = ACTIONS(261), - [sym_var_type] = ACTIONS(261), - [aux_sym_number_literal_token1] = ACTIONS(261), - [sym_string_literal] = ACTIONS(261), - [sym_number_string_literal] = ACTIONS(263), - [sym_slice_string_literal] = ACTIONS(263), - [sym_underscore] = ACTIONS(261), + [sym_identifier] = ACTIONS(251), + [anon_sym_SEMI] = ACTIONS(251), + [anon_sym_EQ] = ACTIONS(251), + [anon_sym_LPAREN] = ACTIONS(253), + [anon_sym_return] = ACTIONS(251), + [anon_sym_LBRACE] = ACTIONS(251), + [anon_sym_RBRACE] = ACTIONS(253), + [anon_sym_repeat] = ACTIONS(251), + [anon_sym_if] = ACTIONS(251), + [anon_sym_ifnot] = ACTIONS(251), + [anon_sym_do] = ACTIONS(251), + [anon_sym_while] = ACTIONS(251), + [anon_sym_try] = ACTIONS(251), + [anon_sym_PLUS_EQ] = ACTIONS(253), + [anon_sym_DASH_EQ] = ACTIONS(253), + [anon_sym_STAR_EQ] = ACTIONS(253), + [anon_sym_SLASH_EQ] = ACTIONS(253), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(253), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(253), + [anon_sym_PERCENT_EQ] = ACTIONS(253), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(253), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(253), + [anon_sym_LT_LT_EQ] = ACTIONS(253), + [anon_sym_GT_GT_EQ] = ACTIONS(253), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(253), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(253), + [anon_sym_AMP_EQ] = ACTIONS(253), + [anon_sym_PIPE_EQ] = ACTIONS(253), + [anon_sym_CARET_EQ] = ACTIONS(253), + [anon_sym_QMARK] = ACTIONS(253), + [anon_sym_EQ_EQ] = ACTIONS(253), + [anon_sym_LT] = ACTIONS(251), + [anon_sym_GT] = ACTIONS(251), + [anon_sym_LT_EQ] = ACTIONS(251), + [anon_sym_GT_EQ] = ACTIONS(253), + [anon_sym_BANG_EQ] = ACTIONS(253), + [anon_sym_LT_EQ_GT] = ACTIONS(253), + [anon_sym_LT_LT] = ACTIONS(251), + [anon_sym_GT_GT] = ACTIONS(251), + [anon_sym_TILDE_GT_GT] = ACTIONS(251), + [anon_sym_CARET_GT_GT] = ACTIONS(251), + [anon_sym_DASH] = ACTIONS(251), + [anon_sym_PLUS] = ACTIONS(251), + [anon_sym_PIPE] = ACTIONS(251), + [anon_sym_CARET] = ACTIONS(251), + [anon_sym_STAR] = ACTIONS(251), + [anon_sym_SLASH] = ACTIONS(251), + [anon_sym_PERCENT] = ACTIONS(251), + [anon_sym_TILDE_SLASH] = ACTIONS(251), + [anon_sym_CARET_SLASH] = ACTIONS(251), + [anon_sym_TILDE_PERCENT] = ACTIONS(251), + [anon_sym_CARET_PERCENT] = ACTIONS(251), + [anon_sym_SLASH_PERCENT] = ACTIONS(253), + [anon_sym_AMP] = ACTIONS(251), + [anon_sym_TILDE] = ACTIONS(251), + [anon_sym_DOT] = ACTIONS(253), + [anon_sym_LBRACK] = ACTIONS(253), + [anon_sym_int] = ACTIONS(251), + [anon_sym_cell] = ACTIONS(251), + [anon_sym_slice] = ACTIONS(251), + [anon_sym_builder] = ACTIONS(251), + [anon_sym_cont] = ACTIONS(251), + [anon_sym_tuple] = ACTIONS(251), + [sym_var_type] = ACTIONS(251), + [aux_sym_number_literal_token1] = ACTIONS(251), + [sym_string_literal] = ACTIONS(251), + [sym_number_string_literal] = ACTIONS(253), + [sym_slice_string_literal] = ACTIONS(253), + [sym_underscore] = ACTIONS(251), [sym_comment] = ACTIONS(3), }, [STATE(29)] = { - [sym_identifier] = ACTIONS(265), - [anon_sym_SEMI] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(267), - [anon_sym_return] = ACTIONS(265), - [anon_sym_LBRACE] = ACTIONS(265), - [anon_sym_RBRACE] = ACTIONS(267), - [anon_sym_repeat] = ACTIONS(265), - [anon_sym_if] = ACTIONS(265), - [anon_sym_ifnot] = ACTIONS(265), - [anon_sym_do] = ACTIONS(265), - [anon_sym_while] = ACTIONS(265), - [anon_sym_try] = ACTIONS(265), - [anon_sym_PLUS_EQ] = ACTIONS(267), - [anon_sym_DASH_EQ] = ACTIONS(267), - [anon_sym_STAR_EQ] = ACTIONS(267), - [anon_sym_SLASH_EQ] = ACTIONS(267), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(267), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(267), - [anon_sym_PERCENT_EQ] = ACTIONS(267), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(267), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(267), - [anon_sym_LT_LT_EQ] = ACTIONS(267), - [anon_sym_GT_GT_EQ] = ACTIONS(267), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(267), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(267), - [anon_sym_AMP_EQ] = ACTIONS(267), - [anon_sym_PIPE_EQ] = ACTIONS(267), - [anon_sym_CARET_EQ] = ACTIONS(267), - [anon_sym_QMARK] = ACTIONS(267), - [anon_sym_EQ_EQ] = ACTIONS(267), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(265), - [anon_sym_GT_EQ] = ACTIONS(267), - [anon_sym_BANG_EQ] = ACTIONS(267), - [anon_sym_LT_EQ_GT] = ACTIONS(267), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_TILDE_GT_GT] = ACTIONS(265), - [anon_sym_CARET_GT_GT] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(265), - [anon_sym_PLUS] = ACTIONS(265), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_TILDE_SLASH] = ACTIONS(265), - [anon_sym_CARET_SLASH] = ACTIONS(265), - [anon_sym_TILDE_PERCENT] = ACTIONS(265), - [anon_sym_CARET_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_PERCENT] = ACTIONS(267), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(265), - [anon_sym_DOT] = ACTIONS(267), - [anon_sym_LBRACK] = ACTIONS(267), - [anon_sym_int] = ACTIONS(265), - [anon_sym_cell] = ACTIONS(265), - [anon_sym_slice] = ACTIONS(265), - [anon_sym_builder] = ACTIONS(265), - [anon_sym_cont] = ACTIONS(265), - [anon_sym_tuple] = ACTIONS(265), - [sym_var_type] = ACTIONS(265), - [aux_sym_number_literal_token1] = ACTIONS(265), - [sym_string_literal] = ACTIONS(265), - [sym_number_string_literal] = ACTIONS(267), - [sym_slice_string_literal] = ACTIONS(267), - [sym_underscore] = ACTIONS(265), + [sym_identifier] = ACTIONS(255), + [anon_sym_SEMI] = ACTIONS(255), + [anon_sym_EQ] = ACTIONS(255), + [anon_sym_LPAREN] = ACTIONS(257), + [anon_sym_return] = ACTIONS(255), + [anon_sym_LBRACE] = ACTIONS(255), + [anon_sym_RBRACE] = ACTIONS(257), + [anon_sym_repeat] = ACTIONS(255), + [anon_sym_if] = ACTIONS(255), + [anon_sym_ifnot] = ACTIONS(255), + [anon_sym_do] = ACTIONS(255), + [anon_sym_while] = ACTIONS(255), + [anon_sym_try] = ACTIONS(255), + [anon_sym_PLUS_EQ] = ACTIONS(257), + [anon_sym_DASH_EQ] = ACTIONS(257), + [anon_sym_STAR_EQ] = ACTIONS(257), + [anon_sym_SLASH_EQ] = ACTIONS(257), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(257), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(257), + [anon_sym_PERCENT_EQ] = ACTIONS(257), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(257), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(257), + [anon_sym_LT_LT_EQ] = ACTIONS(257), + [anon_sym_GT_GT_EQ] = ACTIONS(257), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(257), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(257), + [anon_sym_AMP_EQ] = ACTIONS(257), + [anon_sym_PIPE_EQ] = ACTIONS(257), + [anon_sym_CARET_EQ] = ACTIONS(257), + [anon_sym_QMARK] = ACTIONS(257), + [anon_sym_EQ_EQ] = ACTIONS(257), + [anon_sym_LT] = ACTIONS(255), + [anon_sym_GT] = ACTIONS(255), + [anon_sym_LT_EQ] = ACTIONS(255), + [anon_sym_GT_EQ] = ACTIONS(257), + [anon_sym_BANG_EQ] = ACTIONS(257), + [anon_sym_LT_EQ_GT] = ACTIONS(257), + [anon_sym_LT_LT] = ACTIONS(255), + [anon_sym_GT_GT] = ACTIONS(255), + [anon_sym_TILDE_GT_GT] = ACTIONS(255), + [anon_sym_CARET_GT_GT] = ACTIONS(255), + [anon_sym_DASH] = ACTIONS(255), + [anon_sym_PLUS] = ACTIONS(255), + [anon_sym_PIPE] = ACTIONS(255), + [anon_sym_CARET] = ACTIONS(255), + [anon_sym_STAR] = ACTIONS(255), + [anon_sym_SLASH] = ACTIONS(255), + [anon_sym_PERCENT] = ACTIONS(255), + [anon_sym_TILDE_SLASH] = ACTIONS(255), + [anon_sym_CARET_SLASH] = ACTIONS(255), + [anon_sym_TILDE_PERCENT] = ACTIONS(255), + [anon_sym_CARET_PERCENT] = ACTIONS(255), + [anon_sym_SLASH_PERCENT] = ACTIONS(257), + [anon_sym_AMP] = ACTIONS(255), + [anon_sym_TILDE] = ACTIONS(255), + [anon_sym_DOT] = ACTIONS(257), + [anon_sym_LBRACK] = ACTIONS(257), + [anon_sym_int] = ACTIONS(255), + [anon_sym_cell] = ACTIONS(255), + [anon_sym_slice] = ACTIONS(255), + [anon_sym_builder] = ACTIONS(255), + [anon_sym_cont] = ACTIONS(255), + [anon_sym_tuple] = ACTIONS(255), + [sym_var_type] = ACTIONS(255), + [aux_sym_number_literal_token1] = ACTIONS(255), + [sym_string_literal] = ACTIONS(255), + [sym_number_string_literal] = ACTIONS(257), + [sym_slice_string_literal] = ACTIONS(257), + [sym_underscore] = ACTIONS(255), [sym_comment] = ACTIONS(3), }, [STATE(30)] = { - [sym_identifier] = ACTIONS(269), - [anon_sym_SEMI] = ACTIONS(269), - [anon_sym_EQ] = ACTIONS(269), - [anon_sym_LPAREN] = ACTIONS(271), - [anon_sym_return] = ACTIONS(269), - [anon_sym_LBRACE] = ACTIONS(269), - [anon_sym_RBRACE] = ACTIONS(271), - [anon_sym_repeat] = ACTIONS(269), - [anon_sym_if] = ACTIONS(269), - [anon_sym_ifnot] = ACTIONS(269), - [anon_sym_do] = ACTIONS(269), - [anon_sym_while] = ACTIONS(269), - [anon_sym_try] = ACTIONS(269), - [anon_sym_PLUS_EQ] = ACTIONS(271), - [anon_sym_DASH_EQ] = ACTIONS(271), - [anon_sym_STAR_EQ] = ACTIONS(271), - [anon_sym_SLASH_EQ] = ACTIONS(271), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(271), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(271), - [anon_sym_PERCENT_EQ] = ACTIONS(271), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(271), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(271), - [anon_sym_LT_LT_EQ] = ACTIONS(271), - [anon_sym_GT_GT_EQ] = ACTIONS(271), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(271), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(271), - [anon_sym_AMP_EQ] = ACTIONS(271), - [anon_sym_PIPE_EQ] = ACTIONS(271), - [anon_sym_CARET_EQ] = ACTIONS(271), - [anon_sym_QMARK] = ACTIONS(271), - [anon_sym_EQ_EQ] = ACTIONS(271), - [anon_sym_LT] = ACTIONS(269), - [anon_sym_GT] = ACTIONS(269), - [anon_sym_LT_EQ] = ACTIONS(269), - [anon_sym_GT_EQ] = ACTIONS(271), - [anon_sym_BANG_EQ] = ACTIONS(271), - [anon_sym_LT_EQ_GT] = ACTIONS(271), - [anon_sym_LT_LT] = ACTIONS(269), - [anon_sym_GT_GT] = ACTIONS(269), - [anon_sym_TILDE_GT_GT] = ACTIONS(269), - [anon_sym_CARET_GT_GT] = ACTIONS(269), - [anon_sym_DASH] = ACTIONS(269), - [anon_sym_PLUS] = ACTIONS(269), - [anon_sym_PIPE] = ACTIONS(269), - [anon_sym_CARET] = ACTIONS(269), - [anon_sym_STAR] = ACTIONS(269), - [anon_sym_SLASH] = ACTIONS(269), - [anon_sym_PERCENT] = ACTIONS(269), - [anon_sym_TILDE_SLASH] = ACTIONS(269), - [anon_sym_CARET_SLASH] = ACTIONS(269), - [anon_sym_TILDE_PERCENT] = ACTIONS(269), - [anon_sym_CARET_PERCENT] = ACTIONS(269), - [anon_sym_SLASH_PERCENT] = ACTIONS(271), - [anon_sym_AMP] = ACTIONS(269), - [anon_sym_TILDE] = ACTIONS(269), - [anon_sym_DOT] = ACTIONS(271), - [anon_sym_LBRACK] = ACTIONS(271), - [anon_sym_int] = ACTIONS(269), - [anon_sym_cell] = ACTIONS(269), - [anon_sym_slice] = ACTIONS(269), - [anon_sym_builder] = ACTIONS(269), - [anon_sym_cont] = ACTIONS(269), - [anon_sym_tuple] = ACTIONS(269), - [sym_var_type] = ACTIONS(269), - [aux_sym_number_literal_token1] = ACTIONS(269), - [sym_string_literal] = ACTIONS(269), - [sym_number_string_literal] = ACTIONS(271), - [sym_slice_string_literal] = ACTIONS(271), - [sym_underscore] = ACTIONS(269), + [sym_identifier] = ACTIONS(259), + [anon_sym_SEMI] = ACTIONS(259), + [anon_sym_EQ] = ACTIONS(259), + [anon_sym_LPAREN] = ACTIONS(261), + [anon_sym_return] = ACTIONS(259), + [anon_sym_LBRACE] = ACTIONS(259), + [anon_sym_RBRACE] = ACTIONS(261), + [anon_sym_repeat] = ACTIONS(259), + [anon_sym_if] = ACTIONS(259), + [anon_sym_ifnot] = ACTIONS(259), + [anon_sym_do] = ACTIONS(259), + [anon_sym_while] = ACTIONS(259), + [anon_sym_try] = ACTIONS(259), + [anon_sym_PLUS_EQ] = ACTIONS(261), + [anon_sym_DASH_EQ] = ACTIONS(261), + [anon_sym_STAR_EQ] = ACTIONS(261), + [anon_sym_SLASH_EQ] = ACTIONS(261), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(261), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(261), + [anon_sym_PERCENT_EQ] = ACTIONS(261), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(261), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(261), + [anon_sym_LT_LT_EQ] = ACTIONS(261), + [anon_sym_GT_GT_EQ] = ACTIONS(261), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(261), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(261), + [anon_sym_AMP_EQ] = ACTIONS(261), + [anon_sym_PIPE_EQ] = ACTIONS(261), + [anon_sym_CARET_EQ] = ACTIONS(261), + [anon_sym_QMARK] = ACTIONS(261), + [anon_sym_EQ_EQ] = ACTIONS(261), + [anon_sym_LT] = ACTIONS(259), + [anon_sym_GT] = ACTIONS(259), + [anon_sym_LT_EQ] = ACTIONS(259), + [anon_sym_GT_EQ] = ACTIONS(261), + [anon_sym_BANG_EQ] = ACTIONS(261), + [anon_sym_LT_EQ_GT] = ACTIONS(261), + [anon_sym_LT_LT] = ACTIONS(259), + [anon_sym_GT_GT] = ACTIONS(259), + [anon_sym_TILDE_GT_GT] = ACTIONS(259), + [anon_sym_CARET_GT_GT] = ACTIONS(259), + [anon_sym_DASH] = ACTIONS(259), + [anon_sym_PLUS] = ACTIONS(259), + [anon_sym_PIPE] = ACTIONS(259), + [anon_sym_CARET] = ACTIONS(259), + [anon_sym_STAR] = ACTIONS(259), + [anon_sym_SLASH] = ACTIONS(259), + [anon_sym_PERCENT] = ACTIONS(259), + [anon_sym_TILDE_SLASH] = ACTIONS(259), + [anon_sym_CARET_SLASH] = ACTIONS(259), + [anon_sym_TILDE_PERCENT] = ACTIONS(259), + [anon_sym_CARET_PERCENT] = ACTIONS(259), + [anon_sym_SLASH_PERCENT] = ACTIONS(261), + [anon_sym_AMP] = ACTIONS(259), + [anon_sym_TILDE] = ACTIONS(259), + [anon_sym_DOT] = ACTIONS(261), + [anon_sym_LBRACK] = ACTIONS(261), + [anon_sym_int] = ACTIONS(259), + [anon_sym_cell] = ACTIONS(259), + [anon_sym_slice] = ACTIONS(259), + [anon_sym_builder] = ACTIONS(259), + [anon_sym_cont] = ACTIONS(259), + [anon_sym_tuple] = ACTIONS(259), + [sym_var_type] = ACTIONS(259), + [aux_sym_number_literal_token1] = ACTIONS(259), + [sym_string_literal] = ACTIONS(259), + [sym_number_string_literal] = ACTIONS(261), + [sym_slice_string_literal] = ACTIONS(261), + [sym_underscore] = ACTIONS(259), [sym_comment] = ACTIONS(3), }, [STATE(31)] = { - [sym_identifier] = ACTIONS(273), - [anon_sym_SEMI] = ACTIONS(273), - [anon_sym_EQ] = ACTIONS(273), - [anon_sym_LPAREN] = ACTIONS(275), - [anon_sym_return] = ACTIONS(273), - [anon_sym_LBRACE] = ACTIONS(273), - [anon_sym_RBRACE] = ACTIONS(275), - [anon_sym_repeat] = ACTIONS(273), - [anon_sym_if] = ACTIONS(273), - [anon_sym_ifnot] = ACTIONS(273), - [anon_sym_do] = ACTIONS(273), - [anon_sym_while] = ACTIONS(273), - [anon_sym_try] = ACTIONS(273), - [anon_sym_PLUS_EQ] = ACTIONS(275), - [anon_sym_DASH_EQ] = ACTIONS(275), - [anon_sym_STAR_EQ] = ACTIONS(275), - [anon_sym_SLASH_EQ] = ACTIONS(275), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(275), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(275), - [anon_sym_PERCENT_EQ] = ACTIONS(275), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(275), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(275), - [anon_sym_LT_LT_EQ] = ACTIONS(275), - [anon_sym_GT_GT_EQ] = ACTIONS(275), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(275), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(275), - [anon_sym_AMP_EQ] = ACTIONS(275), - [anon_sym_PIPE_EQ] = ACTIONS(275), - [anon_sym_CARET_EQ] = ACTIONS(275), - [anon_sym_QMARK] = ACTIONS(275), - [anon_sym_EQ_EQ] = ACTIONS(275), - [anon_sym_LT] = ACTIONS(273), - [anon_sym_GT] = ACTIONS(273), - [anon_sym_LT_EQ] = ACTIONS(273), - [anon_sym_GT_EQ] = ACTIONS(275), - [anon_sym_BANG_EQ] = ACTIONS(275), - [anon_sym_LT_EQ_GT] = ACTIONS(275), - [anon_sym_LT_LT] = ACTIONS(273), - [anon_sym_GT_GT] = ACTIONS(273), - [anon_sym_TILDE_GT_GT] = ACTIONS(273), - [anon_sym_CARET_GT_GT] = ACTIONS(273), - [anon_sym_DASH] = ACTIONS(273), - [anon_sym_PLUS] = ACTIONS(273), - [anon_sym_PIPE] = ACTIONS(273), - [anon_sym_CARET] = ACTIONS(273), - [anon_sym_STAR] = ACTIONS(273), - [anon_sym_SLASH] = ACTIONS(273), - [anon_sym_PERCENT] = ACTIONS(273), - [anon_sym_TILDE_SLASH] = ACTIONS(273), - [anon_sym_CARET_SLASH] = ACTIONS(273), - [anon_sym_TILDE_PERCENT] = ACTIONS(273), - [anon_sym_CARET_PERCENT] = ACTIONS(273), - [anon_sym_SLASH_PERCENT] = ACTIONS(275), - [anon_sym_AMP] = ACTIONS(273), - [anon_sym_TILDE] = ACTIONS(273), - [anon_sym_DOT] = ACTIONS(275), - [anon_sym_LBRACK] = ACTIONS(275), - [anon_sym_int] = ACTIONS(273), - [anon_sym_cell] = ACTIONS(273), - [anon_sym_slice] = ACTIONS(273), - [anon_sym_builder] = ACTIONS(273), - [anon_sym_cont] = ACTIONS(273), - [anon_sym_tuple] = ACTIONS(273), - [sym_var_type] = ACTIONS(273), - [aux_sym_number_literal_token1] = ACTIONS(273), - [sym_string_literal] = ACTIONS(273), - [sym_number_string_literal] = ACTIONS(275), - [sym_slice_string_literal] = ACTIONS(275), - [sym_underscore] = ACTIONS(273), + [sym_identifier] = ACTIONS(263), + [anon_sym_SEMI] = ACTIONS(263), + [anon_sym_EQ] = ACTIONS(263), + [anon_sym_LPAREN] = ACTIONS(265), + [anon_sym_return] = ACTIONS(263), + [anon_sym_LBRACE] = ACTIONS(263), + [anon_sym_RBRACE] = ACTIONS(265), + [anon_sym_repeat] = ACTIONS(263), + [anon_sym_if] = ACTIONS(263), + [anon_sym_ifnot] = ACTIONS(263), + [anon_sym_do] = ACTIONS(263), + [anon_sym_while] = ACTIONS(263), + [anon_sym_try] = ACTIONS(263), + [anon_sym_PLUS_EQ] = ACTIONS(265), + [anon_sym_DASH_EQ] = ACTIONS(265), + [anon_sym_STAR_EQ] = ACTIONS(265), + [anon_sym_SLASH_EQ] = ACTIONS(265), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(265), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(265), + [anon_sym_PERCENT_EQ] = ACTIONS(265), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(265), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(265), + [anon_sym_LT_LT_EQ] = ACTIONS(265), + [anon_sym_GT_GT_EQ] = ACTIONS(265), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(265), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(265), + [anon_sym_AMP_EQ] = ACTIONS(265), + [anon_sym_PIPE_EQ] = ACTIONS(265), + [anon_sym_CARET_EQ] = ACTIONS(265), + [anon_sym_QMARK] = ACTIONS(265), + [anon_sym_EQ_EQ] = ACTIONS(265), + [anon_sym_LT] = ACTIONS(263), + [anon_sym_GT] = ACTIONS(263), + [anon_sym_LT_EQ] = ACTIONS(263), + [anon_sym_GT_EQ] = ACTIONS(265), + [anon_sym_BANG_EQ] = ACTIONS(265), + [anon_sym_LT_EQ_GT] = ACTIONS(265), + [anon_sym_LT_LT] = ACTIONS(263), + [anon_sym_GT_GT] = ACTIONS(263), + [anon_sym_TILDE_GT_GT] = ACTIONS(263), + [anon_sym_CARET_GT_GT] = ACTIONS(263), + [anon_sym_DASH] = ACTIONS(263), + [anon_sym_PLUS] = ACTIONS(263), + [anon_sym_PIPE] = ACTIONS(263), + [anon_sym_CARET] = ACTIONS(263), + [anon_sym_STAR] = ACTIONS(263), + [anon_sym_SLASH] = ACTIONS(263), + [anon_sym_PERCENT] = ACTIONS(263), + [anon_sym_TILDE_SLASH] = ACTIONS(263), + [anon_sym_CARET_SLASH] = ACTIONS(263), + [anon_sym_TILDE_PERCENT] = ACTIONS(263), + [anon_sym_CARET_PERCENT] = ACTIONS(263), + [anon_sym_SLASH_PERCENT] = ACTIONS(265), + [anon_sym_AMP] = ACTIONS(263), + [anon_sym_TILDE] = ACTIONS(263), + [anon_sym_DOT] = ACTIONS(265), + [anon_sym_LBRACK] = ACTIONS(265), + [anon_sym_int] = ACTIONS(263), + [anon_sym_cell] = ACTIONS(263), + [anon_sym_slice] = ACTIONS(263), + [anon_sym_builder] = ACTIONS(263), + [anon_sym_cont] = ACTIONS(263), + [anon_sym_tuple] = ACTIONS(263), + [sym_var_type] = ACTIONS(263), + [aux_sym_number_literal_token1] = ACTIONS(263), + [sym_string_literal] = ACTIONS(263), + [sym_number_string_literal] = ACTIONS(265), + [sym_slice_string_literal] = ACTIONS(265), + [sym_underscore] = ACTIONS(263), [sym_comment] = ACTIONS(3), }, [STATE(32)] = { - [sym_identifier] = ACTIONS(277), - [anon_sym_SEMI] = ACTIONS(277), - [anon_sym_EQ] = ACTIONS(277), - [anon_sym_LPAREN] = ACTIONS(279), - [anon_sym_return] = ACTIONS(277), - [anon_sym_LBRACE] = ACTIONS(277), - [anon_sym_RBRACE] = ACTIONS(279), - [anon_sym_repeat] = ACTIONS(277), - [anon_sym_if] = ACTIONS(277), - [anon_sym_ifnot] = ACTIONS(277), - [anon_sym_do] = ACTIONS(277), - [anon_sym_while] = ACTIONS(277), - [anon_sym_try] = ACTIONS(277), - [anon_sym_PLUS_EQ] = ACTIONS(279), - [anon_sym_DASH_EQ] = ACTIONS(279), - [anon_sym_STAR_EQ] = ACTIONS(279), - [anon_sym_SLASH_EQ] = ACTIONS(279), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(279), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(279), - [anon_sym_PERCENT_EQ] = ACTIONS(279), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(279), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(279), - [anon_sym_LT_LT_EQ] = ACTIONS(279), - [anon_sym_GT_GT_EQ] = ACTIONS(279), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(279), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(279), - [anon_sym_AMP_EQ] = ACTIONS(279), - [anon_sym_PIPE_EQ] = ACTIONS(279), - [anon_sym_CARET_EQ] = ACTIONS(279), - [anon_sym_QMARK] = ACTIONS(279), - [anon_sym_EQ_EQ] = ACTIONS(279), - [anon_sym_LT] = ACTIONS(277), - [anon_sym_GT] = ACTIONS(277), - [anon_sym_LT_EQ] = ACTIONS(277), - [anon_sym_GT_EQ] = ACTIONS(279), - [anon_sym_BANG_EQ] = ACTIONS(279), - [anon_sym_LT_EQ_GT] = ACTIONS(279), - [anon_sym_LT_LT] = ACTIONS(277), - [anon_sym_GT_GT] = ACTIONS(277), - [anon_sym_TILDE_GT_GT] = ACTIONS(277), - [anon_sym_CARET_GT_GT] = ACTIONS(277), - [anon_sym_DASH] = ACTIONS(277), - [anon_sym_PLUS] = ACTIONS(277), - [anon_sym_PIPE] = ACTIONS(277), - [anon_sym_CARET] = ACTIONS(277), - [anon_sym_STAR] = ACTIONS(277), - [anon_sym_SLASH] = ACTIONS(277), - [anon_sym_PERCENT] = ACTIONS(277), - [anon_sym_TILDE_SLASH] = ACTIONS(277), - [anon_sym_CARET_SLASH] = ACTIONS(277), - [anon_sym_TILDE_PERCENT] = ACTIONS(277), - [anon_sym_CARET_PERCENT] = ACTIONS(277), - [anon_sym_SLASH_PERCENT] = ACTIONS(279), - [anon_sym_AMP] = ACTIONS(277), - [anon_sym_TILDE] = ACTIONS(277), - [anon_sym_DOT] = ACTIONS(279), - [anon_sym_LBRACK] = ACTIONS(279), - [anon_sym_int] = ACTIONS(277), - [anon_sym_cell] = ACTIONS(277), - [anon_sym_slice] = ACTIONS(277), - [anon_sym_builder] = ACTIONS(277), - [anon_sym_cont] = ACTIONS(277), - [anon_sym_tuple] = ACTIONS(277), - [sym_var_type] = ACTIONS(277), - [aux_sym_number_literal_token1] = ACTIONS(277), - [sym_string_literal] = ACTIONS(277), - [sym_number_string_literal] = ACTIONS(279), - [sym_slice_string_literal] = ACTIONS(279), - [sym_underscore] = ACTIONS(277), + [sym_identifier] = ACTIONS(267), + [anon_sym_SEMI] = ACTIONS(267), + [anon_sym_EQ] = ACTIONS(267), + [anon_sym_LPAREN] = ACTIONS(269), + [anon_sym_return] = ACTIONS(267), + [anon_sym_LBRACE] = ACTIONS(267), + [anon_sym_RBRACE] = ACTIONS(269), + [anon_sym_repeat] = ACTIONS(267), + [anon_sym_if] = ACTIONS(267), + [anon_sym_ifnot] = ACTIONS(267), + [anon_sym_do] = ACTIONS(267), + [anon_sym_while] = ACTIONS(267), + [anon_sym_try] = ACTIONS(267), + [anon_sym_PLUS_EQ] = ACTIONS(269), + [anon_sym_DASH_EQ] = ACTIONS(269), + [anon_sym_STAR_EQ] = ACTIONS(269), + [anon_sym_SLASH_EQ] = ACTIONS(269), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(269), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(269), + [anon_sym_PERCENT_EQ] = ACTIONS(269), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(269), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(269), + [anon_sym_LT_LT_EQ] = ACTIONS(269), + [anon_sym_GT_GT_EQ] = ACTIONS(269), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(269), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(269), + [anon_sym_AMP_EQ] = ACTIONS(269), + [anon_sym_PIPE_EQ] = ACTIONS(269), + [anon_sym_CARET_EQ] = ACTIONS(269), + [anon_sym_QMARK] = ACTIONS(269), + [anon_sym_EQ_EQ] = ACTIONS(269), + [anon_sym_LT] = ACTIONS(267), + [anon_sym_GT] = ACTIONS(267), + [anon_sym_LT_EQ] = ACTIONS(267), + [anon_sym_GT_EQ] = ACTIONS(269), + [anon_sym_BANG_EQ] = ACTIONS(269), + [anon_sym_LT_EQ_GT] = ACTIONS(269), + [anon_sym_LT_LT] = ACTIONS(267), + [anon_sym_GT_GT] = ACTIONS(267), + [anon_sym_TILDE_GT_GT] = ACTIONS(267), + [anon_sym_CARET_GT_GT] = ACTIONS(267), + [anon_sym_DASH] = ACTIONS(267), + [anon_sym_PLUS] = ACTIONS(267), + [anon_sym_PIPE] = ACTIONS(267), + [anon_sym_CARET] = ACTIONS(267), + [anon_sym_STAR] = ACTIONS(267), + [anon_sym_SLASH] = ACTIONS(267), + [anon_sym_PERCENT] = ACTIONS(267), + [anon_sym_TILDE_SLASH] = ACTIONS(267), + [anon_sym_CARET_SLASH] = ACTIONS(267), + [anon_sym_TILDE_PERCENT] = ACTIONS(267), + [anon_sym_CARET_PERCENT] = ACTIONS(267), + [anon_sym_SLASH_PERCENT] = ACTIONS(269), + [anon_sym_AMP] = ACTIONS(267), + [anon_sym_TILDE] = ACTIONS(267), + [anon_sym_DOT] = ACTIONS(269), + [anon_sym_LBRACK] = ACTIONS(269), + [anon_sym_int] = ACTIONS(267), + [anon_sym_cell] = ACTIONS(267), + [anon_sym_slice] = ACTIONS(267), + [anon_sym_builder] = ACTIONS(267), + [anon_sym_cont] = ACTIONS(267), + [anon_sym_tuple] = ACTIONS(267), + [sym_var_type] = ACTIONS(267), + [aux_sym_number_literal_token1] = ACTIONS(267), + [sym_string_literal] = ACTIONS(267), + [sym_number_string_literal] = ACTIONS(269), + [sym_slice_string_literal] = ACTIONS(269), + [sym_underscore] = ACTIONS(267), [sym_comment] = ACTIONS(3), }, [STATE(33)] = { - [aux_sym__expr30_repeat1] = STATE(18), - [sym_identifier] = ACTIONS(281), - [anon_sym_SEMI] = ACTIONS(281), - [anon_sym_EQ] = ACTIONS(281), - [anon_sym_LPAREN] = ACTIONS(283), - [anon_sym_return] = ACTIONS(281), - [anon_sym_LBRACE] = ACTIONS(281), - [anon_sym_RBRACE] = ACTIONS(283), - [anon_sym_repeat] = ACTIONS(281), - [anon_sym_if] = ACTIONS(281), - [anon_sym_ifnot] = ACTIONS(281), - [anon_sym_do] = ACTIONS(281), - [anon_sym_while] = ACTIONS(281), - [anon_sym_try] = ACTIONS(281), - [anon_sym_PLUS_EQ] = ACTIONS(283), - [anon_sym_DASH_EQ] = ACTIONS(283), - [anon_sym_STAR_EQ] = ACTIONS(283), - [anon_sym_SLASH_EQ] = ACTIONS(283), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(283), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(283), - [anon_sym_PERCENT_EQ] = ACTIONS(283), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(283), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(283), - [anon_sym_LT_LT_EQ] = ACTIONS(283), - [anon_sym_GT_GT_EQ] = ACTIONS(283), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(283), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(283), - [anon_sym_AMP_EQ] = ACTIONS(283), - [anon_sym_PIPE_EQ] = ACTIONS(283), - [anon_sym_CARET_EQ] = ACTIONS(283), - [anon_sym_QMARK] = ACTIONS(283), - [anon_sym_EQ_EQ] = ACTIONS(283), - [anon_sym_LT] = ACTIONS(281), - [anon_sym_GT] = ACTIONS(281), - [anon_sym_LT_EQ] = ACTIONS(281), - [anon_sym_GT_EQ] = ACTIONS(283), - [anon_sym_BANG_EQ] = ACTIONS(283), - [anon_sym_LT_EQ_GT] = ACTIONS(283), - [anon_sym_LT_LT] = ACTIONS(281), - [anon_sym_GT_GT] = ACTIONS(281), - [anon_sym_TILDE_GT_GT] = ACTIONS(281), - [anon_sym_CARET_GT_GT] = ACTIONS(281), - [anon_sym_DASH] = ACTIONS(281), - [anon_sym_PLUS] = ACTIONS(281), - [anon_sym_PIPE] = ACTIONS(281), - [anon_sym_CARET] = ACTIONS(281), - [anon_sym_STAR] = ACTIONS(219), - [anon_sym_SLASH] = ACTIONS(219), - [anon_sym_PERCENT] = ACTIONS(219), - [anon_sym_TILDE_SLASH] = ACTIONS(219), - [anon_sym_CARET_SLASH] = ACTIONS(219), - [anon_sym_TILDE_PERCENT] = ACTIONS(219), - [anon_sym_CARET_PERCENT] = ACTIONS(219), - [anon_sym_SLASH_PERCENT] = ACTIONS(221), - [anon_sym_AMP] = ACTIONS(219), - [anon_sym_TILDE] = ACTIONS(281), - [anon_sym_LBRACK] = ACTIONS(283), - [anon_sym_int] = ACTIONS(281), - [anon_sym_cell] = ACTIONS(281), - [anon_sym_slice] = ACTIONS(281), - [anon_sym_builder] = ACTIONS(281), - [anon_sym_cont] = ACTIONS(281), - [anon_sym_tuple] = ACTIONS(281), - [sym_var_type] = ACTIONS(281), - [aux_sym_number_literal_token1] = ACTIONS(281), - [sym_string_literal] = ACTIONS(281), - [sym_number_string_literal] = ACTIONS(283), - [sym_slice_string_literal] = ACTIONS(283), - [sym_underscore] = ACTIONS(281), + [sym_identifier] = ACTIONS(271), + [anon_sym_SEMI] = ACTIONS(271), + [anon_sym_EQ] = ACTIONS(271), + [anon_sym_LPAREN] = ACTIONS(273), + [anon_sym_return] = ACTIONS(271), + [anon_sym_LBRACE] = ACTIONS(271), + [anon_sym_RBRACE] = ACTIONS(273), + [anon_sym_repeat] = ACTIONS(271), + [anon_sym_if] = ACTIONS(271), + [anon_sym_ifnot] = ACTIONS(271), + [anon_sym_do] = ACTIONS(271), + [anon_sym_while] = ACTIONS(271), + [anon_sym_try] = ACTIONS(271), + [anon_sym_PLUS_EQ] = ACTIONS(273), + [anon_sym_DASH_EQ] = ACTIONS(273), + [anon_sym_STAR_EQ] = ACTIONS(273), + [anon_sym_SLASH_EQ] = ACTIONS(273), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(273), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(273), + [anon_sym_PERCENT_EQ] = ACTIONS(273), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(273), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(273), + [anon_sym_LT_LT_EQ] = ACTIONS(273), + [anon_sym_GT_GT_EQ] = ACTIONS(273), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(273), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(273), + [anon_sym_AMP_EQ] = ACTIONS(273), + [anon_sym_PIPE_EQ] = ACTIONS(273), + [anon_sym_CARET_EQ] = ACTIONS(273), + [anon_sym_QMARK] = ACTIONS(273), + [anon_sym_EQ_EQ] = ACTIONS(273), + [anon_sym_LT] = ACTIONS(271), + [anon_sym_GT] = ACTIONS(271), + [anon_sym_LT_EQ] = ACTIONS(271), + [anon_sym_GT_EQ] = ACTIONS(273), + [anon_sym_BANG_EQ] = ACTIONS(273), + [anon_sym_LT_EQ_GT] = ACTIONS(273), + [anon_sym_LT_LT] = ACTIONS(271), + [anon_sym_GT_GT] = ACTIONS(271), + [anon_sym_TILDE_GT_GT] = ACTIONS(271), + [anon_sym_CARET_GT_GT] = ACTIONS(271), + [anon_sym_DASH] = ACTIONS(271), + [anon_sym_PLUS] = ACTIONS(271), + [anon_sym_PIPE] = ACTIONS(271), + [anon_sym_CARET] = ACTIONS(271), + [anon_sym_STAR] = ACTIONS(271), + [anon_sym_SLASH] = ACTIONS(271), + [anon_sym_PERCENT] = ACTIONS(271), + [anon_sym_TILDE_SLASH] = ACTIONS(271), + [anon_sym_CARET_SLASH] = ACTIONS(271), + [anon_sym_TILDE_PERCENT] = ACTIONS(271), + [anon_sym_CARET_PERCENT] = ACTIONS(271), + [anon_sym_SLASH_PERCENT] = ACTIONS(273), + [anon_sym_AMP] = ACTIONS(271), + [anon_sym_TILDE] = ACTIONS(271), + [anon_sym_DOT] = ACTIONS(273), + [anon_sym_LBRACK] = ACTIONS(273), + [anon_sym_int] = ACTIONS(271), + [anon_sym_cell] = ACTIONS(271), + [anon_sym_slice] = ACTIONS(271), + [anon_sym_builder] = ACTIONS(271), + [anon_sym_cont] = ACTIONS(271), + [anon_sym_tuple] = ACTIONS(271), + [sym_var_type] = ACTIONS(271), + [aux_sym_number_literal_token1] = ACTIONS(271), + [sym_string_literal] = ACTIONS(271), + [sym_number_string_literal] = ACTIONS(273), + [sym_slice_string_literal] = ACTIONS(273), + [sym_underscore] = ACTIONS(271), [sym_comment] = ACTIONS(3), }, [STATE(34)] = { - [sym_identifier] = ACTIONS(285), - [anon_sym_SEMI] = ACTIONS(285), - [anon_sym_EQ] = ACTIONS(285), - [anon_sym_LPAREN] = ACTIONS(287), - [anon_sym_return] = ACTIONS(285), - [anon_sym_LBRACE] = ACTIONS(285), - [anon_sym_RBRACE] = ACTIONS(287), - [anon_sym_repeat] = ACTIONS(285), - [anon_sym_if] = ACTIONS(285), - [anon_sym_ifnot] = ACTIONS(285), - [anon_sym_do] = ACTIONS(285), - [anon_sym_while] = ACTIONS(285), - [anon_sym_try] = ACTIONS(285), - [anon_sym_PLUS_EQ] = ACTIONS(287), - [anon_sym_DASH_EQ] = ACTIONS(287), - [anon_sym_STAR_EQ] = ACTIONS(287), - [anon_sym_SLASH_EQ] = ACTIONS(287), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(287), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(287), - [anon_sym_PERCENT_EQ] = ACTIONS(287), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(287), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(287), - [anon_sym_LT_LT_EQ] = ACTIONS(287), - [anon_sym_GT_GT_EQ] = ACTIONS(287), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(287), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(287), - [anon_sym_AMP_EQ] = ACTIONS(287), - [anon_sym_PIPE_EQ] = ACTIONS(287), - [anon_sym_CARET_EQ] = ACTIONS(287), - [anon_sym_QMARK] = ACTIONS(287), - [anon_sym_EQ_EQ] = ACTIONS(287), - [anon_sym_LT] = ACTIONS(285), - [anon_sym_GT] = ACTIONS(285), - [anon_sym_LT_EQ] = ACTIONS(285), - [anon_sym_GT_EQ] = ACTIONS(287), - [anon_sym_BANG_EQ] = ACTIONS(287), - [anon_sym_LT_EQ_GT] = ACTIONS(287), - [anon_sym_LT_LT] = ACTIONS(285), - [anon_sym_GT_GT] = ACTIONS(285), - [anon_sym_TILDE_GT_GT] = ACTIONS(285), - [anon_sym_CARET_GT_GT] = ACTIONS(285), - [anon_sym_DASH] = ACTIONS(285), - [anon_sym_PLUS] = ACTIONS(285), - [anon_sym_PIPE] = ACTIONS(285), - [anon_sym_CARET] = ACTIONS(285), - [anon_sym_STAR] = ACTIONS(285), - [anon_sym_SLASH] = ACTIONS(285), - [anon_sym_PERCENT] = ACTIONS(285), - [anon_sym_TILDE_SLASH] = ACTIONS(285), - [anon_sym_CARET_SLASH] = ACTIONS(285), - [anon_sym_TILDE_PERCENT] = ACTIONS(285), - [anon_sym_CARET_PERCENT] = ACTIONS(285), - [anon_sym_SLASH_PERCENT] = ACTIONS(287), - [anon_sym_AMP] = ACTIONS(285), - [anon_sym_TILDE] = ACTIONS(285), - [anon_sym_LBRACK] = ACTIONS(287), - [anon_sym_int] = ACTIONS(285), - [anon_sym_cell] = ACTIONS(285), - [anon_sym_slice] = ACTIONS(285), - [anon_sym_builder] = ACTIONS(285), - [anon_sym_cont] = ACTIONS(285), - [anon_sym_tuple] = ACTIONS(285), - [sym_var_type] = ACTIONS(285), - [aux_sym_number_literal_token1] = ACTIONS(285), - [sym_string_literal] = ACTIONS(285), - [sym_number_string_literal] = ACTIONS(287), - [sym_slice_string_literal] = ACTIONS(287), - [sym_underscore] = ACTIONS(285), + [sym_identifier] = ACTIONS(275), + [anon_sym_SEMI] = ACTIONS(275), + [anon_sym_EQ] = ACTIONS(275), + [anon_sym_LPAREN] = ACTIONS(277), + [anon_sym_return] = ACTIONS(275), + [anon_sym_LBRACE] = ACTIONS(275), + [anon_sym_RBRACE] = ACTIONS(277), + [anon_sym_repeat] = ACTIONS(275), + [anon_sym_if] = ACTIONS(275), + [anon_sym_ifnot] = ACTIONS(275), + [anon_sym_do] = ACTIONS(275), + [anon_sym_while] = ACTIONS(275), + [anon_sym_try] = ACTIONS(275), + [anon_sym_PLUS_EQ] = ACTIONS(277), + [anon_sym_DASH_EQ] = ACTIONS(277), + [anon_sym_STAR_EQ] = ACTIONS(277), + [anon_sym_SLASH_EQ] = ACTIONS(277), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(277), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(277), + [anon_sym_PERCENT_EQ] = ACTIONS(277), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(277), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(277), + [anon_sym_LT_LT_EQ] = ACTIONS(277), + [anon_sym_GT_GT_EQ] = ACTIONS(277), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(277), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(277), + [anon_sym_AMP_EQ] = ACTIONS(277), + [anon_sym_PIPE_EQ] = ACTIONS(277), + [anon_sym_CARET_EQ] = ACTIONS(277), + [anon_sym_QMARK] = ACTIONS(277), + [anon_sym_EQ_EQ] = ACTIONS(277), + [anon_sym_LT] = ACTIONS(275), + [anon_sym_GT] = ACTIONS(275), + [anon_sym_LT_EQ] = ACTIONS(275), + [anon_sym_GT_EQ] = ACTIONS(277), + [anon_sym_BANG_EQ] = ACTIONS(277), + [anon_sym_LT_EQ_GT] = ACTIONS(277), + [anon_sym_LT_LT] = ACTIONS(275), + [anon_sym_GT_GT] = ACTIONS(275), + [anon_sym_TILDE_GT_GT] = ACTIONS(275), + [anon_sym_CARET_GT_GT] = ACTIONS(275), + [anon_sym_DASH] = ACTIONS(275), + [anon_sym_PLUS] = ACTIONS(275), + [anon_sym_PIPE] = ACTIONS(275), + [anon_sym_CARET] = ACTIONS(275), + [anon_sym_STAR] = ACTIONS(275), + [anon_sym_SLASH] = ACTIONS(275), + [anon_sym_PERCENT] = ACTIONS(275), + [anon_sym_TILDE_SLASH] = ACTIONS(275), + [anon_sym_CARET_SLASH] = ACTIONS(275), + [anon_sym_TILDE_PERCENT] = ACTIONS(275), + [anon_sym_CARET_PERCENT] = ACTIONS(275), + [anon_sym_SLASH_PERCENT] = ACTIONS(277), + [anon_sym_AMP] = ACTIONS(275), + [anon_sym_TILDE] = ACTIONS(275), + [anon_sym_DOT] = ACTIONS(277), + [anon_sym_LBRACK] = ACTIONS(277), + [anon_sym_int] = ACTIONS(275), + [anon_sym_cell] = ACTIONS(275), + [anon_sym_slice] = ACTIONS(275), + [anon_sym_builder] = ACTIONS(275), + [anon_sym_cont] = ACTIONS(275), + [anon_sym_tuple] = ACTIONS(275), + [sym_var_type] = ACTIONS(275), + [aux_sym_number_literal_token1] = ACTIONS(275), + [sym_string_literal] = ACTIONS(275), + [sym_number_string_literal] = ACTIONS(277), + [sym_slice_string_literal] = ACTIONS(277), + [sym_underscore] = ACTIONS(275), [sym_comment] = ACTIONS(3), }, [STATE(35)] = { - [sym_identifier] = ACTIONS(223), - [anon_sym_SEMI] = ACTIONS(223), - [anon_sym_EQ] = ACTIONS(223), - [anon_sym_LPAREN] = ACTIONS(225), - [anon_sym_return] = ACTIONS(223), - [anon_sym_LBRACE] = ACTIONS(223), - [anon_sym_RBRACE] = ACTIONS(225), - [anon_sym_repeat] = ACTIONS(223), - [anon_sym_if] = ACTIONS(223), - [anon_sym_ifnot] = ACTIONS(223), - [anon_sym_do] = ACTIONS(223), - [anon_sym_while] = ACTIONS(223), - [anon_sym_try] = ACTIONS(223), - [anon_sym_PLUS_EQ] = ACTIONS(225), - [anon_sym_DASH_EQ] = ACTIONS(225), - [anon_sym_STAR_EQ] = ACTIONS(225), - [anon_sym_SLASH_EQ] = ACTIONS(225), - [anon_sym_TILDE_SLASH_EQ] = ACTIONS(225), - [anon_sym_CARET_SLASH_EQ] = ACTIONS(225), - [anon_sym_PERCENT_EQ] = ACTIONS(225), - [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(225), - [anon_sym_CARET_PERCENT_EQ] = ACTIONS(225), - [anon_sym_LT_LT_EQ] = ACTIONS(225), - [anon_sym_GT_GT_EQ] = ACTIONS(225), - [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(225), - [anon_sym_CARET_GT_GT_EQ] = ACTIONS(225), - [anon_sym_AMP_EQ] = ACTIONS(225), - [anon_sym_PIPE_EQ] = ACTIONS(225), - [anon_sym_CARET_EQ] = ACTIONS(225), - [anon_sym_QMARK] = ACTIONS(225), - [anon_sym_EQ_EQ] = ACTIONS(225), - [anon_sym_LT] = ACTIONS(223), - [anon_sym_GT] = ACTIONS(223), - [anon_sym_LT_EQ] = ACTIONS(223), - [anon_sym_GT_EQ] = ACTIONS(225), - [anon_sym_BANG_EQ] = ACTIONS(225), - [anon_sym_LT_EQ_GT] = ACTIONS(225), - [anon_sym_LT_LT] = ACTIONS(223), - [anon_sym_GT_GT] = ACTIONS(223), - [anon_sym_TILDE_GT_GT] = ACTIONS(223), - [anon_sym_CARET_GT_GT] = ACTIONS(223), - [anon_sym_DASH] = ACTIONS(223), - [anon_sym_PLUS] = ACTIONS(223), - [anon_sym_PIPE] = ACTIONS(223), - [anon_sym_CARET] = ACTIONS(223), - [anon_sym_STAR] = ACTIONS(223), - [anon_sym_SLASH] = ACTIONS(223), - [anon_sym_PERCENT] = ACTIONS(223), - [anon_sym_TILDE_SLASH] = ACTIONS(223), - [anon_sym_CARET_SLASH] = ACTIONS(223), - [anon_sym_TILDE_PERCENT] = ACTIONS(223), - [anon_sym_CARET_PERCENT] = ACTIONS(223), - [anon_sym_SLASH_PERCENT] = ACTIONS(225), - [anon_sym_AMP] = ACTIONS(223), - [anon_sym_TILDE] = ACTIONS(223), - [anon_sym_LBRACK] = ACTIONS(225), - [anon_sym_int] = ACTIONS(223), - [anon_sym_cell] = ACTIONS(223), - [anon_sym_slice] = ACTIONS(223), - [anon_sym_builder] = ACTIONS(223), - [anon_sym_cont] = ACTIONS(223), - [anon_sym_tuple] = ACTIONS(223), - [sym_var_type] = ACTIONS(223), - [aux_sym_number_literal_token1] = ACTIONS(223), - [sym_string_literal] = ACTIONS(223), - [sym_number_string_literal] = ACTIONS(225), - [sym_slice_string_literal] = ACTIONS(225), - [sym_underscore] = ACTIONS(223), + [sym_identifier] = ACTIONS(279), + [anon_sym_SEMI] = ACTIONS(279), + [anon_sym_EQ] = ACTIONS(279), + [anon_sym_LPAREN] = ACTIONS(281), + [anon_sym_return] = ACTIONS(279), + [anon_sym_LBRACE] = ACTIONS(279), + [anon_sym_RBRACE] = ACTIONS(281), + [anon_sym_repeat] = ACTIONS(279), + [anon_sym_if] = ACTIONS(279), + [anon_sym_ifnot] = ACTIONS(279), + [anon_sym_do] = ACTIONS(279), + [anon_sym_while] = ACTIONS(279), + [anon_sym_try] = ACTIONS(279), + [anon_sym_PLUS_EQ] = ACTIONS(281), + [anon_sym_DASH_EQ] = ACTIONS(281), + [anon_sym_STAR_EQ] = ACTIONS(281), + [anon_sym_SLASH_EQ] = ACTIONS(281), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(281), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(281), + [anon_sym_PERCENT_EQ] = ACTIONS(281), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(281), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(281), + [anon_sym_LT_LT_EQ] = ACTIONS(281), + [anon_sym_GT_GT_EQ] = ACTIONS(281), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(281), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(281), + [anon_sym_AMP_EQ] = ACTIONS(281), + [anon_sym_PIPE_EQ] = ACTIONS(281), + [anon_sym_CARET_EQ] = ACTIONS(281), + [anon_sym_QMARK] = ACTIONS(281), + [anon_sym_EQ_EQ] = ACTIONS(281), + [anon_sym_LT] = ACTIONS(279), + [anon_sym_GT] = ACTIONS(279), + [anon_sym_LT_EQ] = ACTIONS(279), + [anon_sym_GT_EQ] = ACTIONS(281), + [anon_sym_BANG_EQ] = ACTIONS(281), + [anon_sym_LT_EQ_GT] = ACTIONS(281), + [anon_sym_LT_LT] = ACTIONS(279), + [anon_sym_GT_GT] = ACTIONS(279), + [anon_sym_TILDE_GT_GT] = ACTIONS(279), + [anon_sym_CARET_GT_GT] = ACTIONS(279), + [anon_sym_DASH] = ACTIONS(279), + [anon_sym_PLUS] = ACTIONS(279), + [anon_sym_PIPE] = ACTIONS(279), + [anon_sym_CARET] = ACTIONS(279), + [anon_sym_STAR] = ACTIONS(279), + [anon_sym_SLASH] = ACTIONS(279), + [anon_sym_PERCENT] = ACTIONS(279), + [anon_sym_TILDE_SLASH] = ACTIONS(279), + [anon_sym_CARET_SLASH] = ACTIONS(279), + [anon_sym_TILDE_PERCENT] = ACTIONS(279), + [anon_sym_CARET_PERCENT] = ACTIONS(279), + [anon_sym_SLASH_PERCENT] = ACTIONS(281), + [anon_sym_AMP] = ACTIONS(279), + [anon_sym_TILDE] = ACTIONS(279), + [anon_sym_DOT] = ACTIONS(281), + [anon_sym_LBRACK] = ACTIONS(281), + [anon_sym_int] = ACTIONS(279), + [anon_sym_cell] = ACTIONS(279), + [anon_sym_slice] = ACTIONS(279), + [anon_sym_builder] = ACTIONS(279), + [anon_sym_cont] = ACTIONS(279), + [anon_sym_tuple] = ACTIONS(279), + [sym_var_type] = ACTIONS(279), + [aux_sym_number_literal_token1] = ACTIONS(279), + [sym_string_literal] = ACTIONS(279), + [sym_number_string_literal] = ACTIONS(281), + [sym_slice_string_literal] = ACTIONS(281), + [sym_underscore] = ACTIONS(279), + [sym_comment] = ACTIONS(3), + }, + [STATE(36)] = { + [sym_identifier] = ACTIONS(167), + [anon_sym_SEMI] = ACTIONS(167), + [anon_sym_EQ] = ACTIONS(167), + [anon_sym_LPAREN] = ACTIONS(169), + [anon_sym_return] = ACTIONS(167), + [anon_sym_LBRACE] = ACTIONS(167), + [anon_sym_RBRACE] = ACTIONS(169), + [anon_sym_repeat] = ACTIONS(167), + [anon_sym_if] = ACTIONS(167), + [anon_sym_ifnot] = ACTIONS(167), + [anon_sym_do] = ACTIONS(167), + [anon_sym_while] = ACTIONS(167), + [anon_sym_try] = ACTIONS(167), + [anon_sym_PLUS_EQ] = ACTIONS(169), + [anon_sym_DASH_EQ] = ACTIONS(169), + [anon_sym_STAR_EQ] = ACTIONS(169), + [anon_sym_SLASH_EQ] = ACTIONS(169), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(169), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(169), + [anon_sym_PERCENT_EQ] = ACTIONS(169), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(169), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(169), + [anon_sym_LT_LT_EQ] = ACTIONS(169), + [anon_sym_GT_GT_EQ] = ACTIONS(169), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(169), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(169), + [anon_sym_AMP_EQ] = ACTIONS(169), + [anon_sym_PIPE_EQ] = ACTIONS(169), + [anon_sym_CARET_EQ] = ACTIONS(169), + [anon_sym_QMARK] = ACTIONS(169), + [anon_sym_EQ_EQ] = ACTIONS(169), + [anon_sym_LT] = ACTIONS(167), + [anon_sym_GT] = ACTIONS(167), + [anon_sym_LT_EQ] = ACTIONS(167), + [anon_sym_GT_EQ] = ACTIONS(169), + [anon_sym_BANG_EQ] = ACTIONS(169), + [anon_sym_LT_EQ_GT] = ACTIONS(169), + [anon_sym_LT_LT] = ACTIONS(167), + [anon_sym_GT_GT] = ACTIONS(167), + [anon_sym_TILDE_GT_GT] = ACTIONS(167), + [anon_sym_CARET_GT_GT] = ACTIONS(167), + [anon_sym_DASH] = ACTIONS(167), + [anon_sym_PLUS] = ACTIONS(167), + [anon_sym_PIPE] = ACTIONS(167), + [anon_sym_CARET] = ACTIONS(167), + [anon_sym_STAR] = ACTIONS(167), + [anon_sym_SLASH] = ACTIONS(167), + [anon_sym_PERCENT] = ACTIONS(167), + [anon_sym_TILDE_SLASH] = ACTIONS(167), + [anon_sym_CARET_SLASH] = ACTIONS(167), + [anon_sym_TILDE_PERCENT] = ACTIONS(167), + [anon_sym_CARET_PERCENT] = ACTIONS(167), + [anon_sym_SLASH_PERCENT] = ACTIONS(169), + [anon_sym_AMP] = ACTIONS(167), + [anon_sym_TILDE] = ACTIONS(167), + [anon_sym_LBRACK] = ACTIONS(169), + [anon_sym_int] = ACTIONS(167), + [anon_sym_cell] = ACTIONS(167), + [anon_sym_slice] = ACTIONS(167), + [anon_sym_builder] = ACTIONS(167), + [anon_sym_cont] = ACTIONS(167), + [anon_sym_tuple] = ACTIONS(167), + [sym_var_type] = ACTIONS(167), + [aux_sym_number_literal_token1] = ACTIONS(167), + [sym_string_literal] = ACTIONS(167), + [sym_number_string_literal] = ACTIONS(169), + [sym_slice_string_literal] = ACTIONS(169), + [sym_underscore] = ACTIONS(167), + [sym_comment] = ACTIONS(3), + }, + [STATE(37)] = { + [sym_identifier] = ACTIONS(283), + [anon_sym_SEMI] = ACTIONS(283), + [anon_sym_EQ] = ACTIONS(283), + [anon_sym_LPAREN] = ACTIONS(285), + [anon_sym_return] = ACTIONS(283), + [anon_sym_LBRACE] = ACTIONS(283), + [anon_sym_RBRACE] = ACTIONS(285), + [anon_sym_repeat] = ACTIONS(283), + [anon_sym_if] = ACTIONS(283), + [anon_sym_ifnot] = ACTIONS(283), + [anon_sym_do] = ACTIONS(283), + [anon_sym_while] = ACTIONS(283), + [anon_sym_try] = ACTIONS(283), + [anon_sym_PLUS_EQ] = ACTIONS(285), + [anon_sym_DASH_EQ] = ACTIONS(285), + [anon_sym_STAR_EQ] = ACTIONS(285), + [anon_sym_SLASH_EQ] = ACTIONS(285), + [anon_sym_TILDE_SLASH_EQ] = ACTIONS(285), + [anon_sym_CARET_SLASH_EQ] = ACTIONS(285), + [anon_sym_PERCENT_EQ] = ACTIONS(285), + [anon_sym_TILDE_PERCENT_EQ] = ACTIONS(285), + [anon_sym_CARET_PERCENT_EQ] = ACTIONS(285), + [anon_sym_LT_LT_EQ] = ACTIONS(285), + [anon_sym_GT_GT_EQ] = ACTIONS(285), + [anon_sym_TILDE_GT_GT_EQ] = ACTIONS(285), + [anon_sym_CARET_GT_GT_EQ] = ACTIONS(285), + [anon_sym_AMP_EQ] = ACTIONS(285), + [anon_sym_PIPE_EQ] = ACTIONS(285), + [anon_sym_CARET_EQ] = ACTIONS(285), + [anon_sym_QMARK] = ACTIONS(285), + [anon_sym_EQ_EQ] = ACTIONS(285), + [anon_sym_LT] = ACTIONS(283), + [anon_sym_GT] = ACTIONS(283), + [anon_sym_LT_EQ] = ACTIONS(283), + [anon_sym_GT_EQ] = ACTIONS(285), + [anon_sym_BANG_EQ] = ACTIONS(285), + [anon_sym_LT_EQ_GT] = ACTIONS(285), + [anon_sym_LT_LT] = ACTIONS(283), + [anon_sym_GT_GT] = ACTIONS(283), + [anon_sym_TILDE_GT_GT] = ACTIONS(283), + [anon_sym_CARET_GT_GT] = ACTIONS(283), + [anon_sym_DASH] = ACTIONS(283), + [anon_sym_PLUS] = ACTIONS(283), + [anon_sym_PIPE] = ACTIONS(283), + [anon_sym_CARET] = ACTIONS(283), + [anon_sym_STAR] = ACTIONS(283), + [anon_sym_SLASH] = ACTIONS(283), + [anon_sym_PERCENT] = ACTIONS(283), + [anon_sym_TILDE_SLASH] = ACTIONS(283), + [anon_sym_CARET_SLASH] = ACTIONS(283), + [anon_sym_TILDE_PERCENT] = ACTIONS(283), + [anon_sym_CARET_PERCENT] = ACTIONS(283), + [anon_sym_SLASH_PERCENT] = ACTIONS(285), + [anon_sym_AMP] = ACTIONS(283), + [anon_sym_TILDE] = ACTIONS(283), + [anon_sym_LBRACK] = ACTIONS(285), + [anon_sym_int] = ACTIONS(283), + [anon_sym_cell] = ACTIONS(283), + [anon_sym_slice] = ACTIONS(283), + [anon_sym_builder] = ACTIONS(283), + [anon_sym_cont] = ACTIONS(283), + [anon_sym_tuple] = ACTIONS(283), + [sym_var_type] = ACTIONS(283), + [aux_sym_number_literal_token1] = ACTIONS(283), + [sym_string_literal] = ACTIONS(283), + [sym_number_string_literal] = ACTIONS(285), + [sym_slice_string_literal] = ACTIONS(285), + [sym_underscore] = ACTIONS(283), [sym_comment] = ACTIONS(3), }, }; @@ -6662,13 +6611,13 @@ static const uint16_t ts_small_parse_table[] = { [0] = 5, ACTIONS(3), 1, sym_comment, - STATE(38), 1, + STATE(43), 1, aux_sym__expr20_repeat1, - ACTIONS(293), 3, + ACTIONS(291), 3, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(291), 26, + ACTIONS(289), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -6695,7 +6644,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(289), 30, + ACTIONS(287), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6726,43 +6675,10 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [72] = 5, + [72] = 3, ACTIONS(3), 1, sym_comment, - STATE(39), 1, - aux_sym__expr20_repeat1, - ACTIONS(293), 3, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(291), 26, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(289), 30, + ACTIONS(293), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6793,17 +6709,10 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [144] = 5, - ACTIONS(3), 1, - sym_comment, - STATE(39), 1, - aux_sym__expr20_repeat1, - ACTIONS(293), 3, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - ACTIONS(297), 26, + ACTIONS(295), 30, + anon_sym_COMMA, anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -6822,19 +6731,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, + anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_LBRACK, + anon_sym_RBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(295), 30, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, + [140] = 5, + ACTIONS(3), 1, + sym_comment, + STATE(41), 1, + aux_sym__expr20_repeat1, + ACTIONS(291), 3, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(299), 26, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(297), 30, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, anon_sym_if, anon_sym_ifnot, anon_sym_do, @@ -6860,17 +6807,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [216] = 5, + [212] = 5, ACTIONS(3), 1, sym_comment, - STATE(39), 1, + STATE(41), 1, aux_sym__expr20_repeat1, - ACTIONS(303), 4, + ACTIONS(305), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(301), 26, + ACTIONS(303), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -6897,7 +6844,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(299), 29, + ACTIONS(301), 29, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6927,10 +6874,43 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [288] = 3, + [284] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(306), 30, + STATE(40), 1, + aux_sym__expr20_repeat1, + ACTIONS(291), 3, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(310), 26, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(308), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -6961,47 +6941,16 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(308), 30, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, - sym_number_string_literal, - sym_slice_string_literal, [356] = 5, ACTIONS(3), 1, sym_comment, - STATE(37), 1, + STATE(41), 1, aux_sym__expr20_repeat1, - ACTIONS(293), 3, + ACTIONS(291), 3, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(312), 26, + ACTIONS(310), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7028,7 +6977,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(310), 30, + ACTIONS(308), 30, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7062,7 +7011,7 @@ static const uint16_t ts_small_parse_table[] = { [428] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(301), 26, + ACTIONS(303), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7089,7 +7038,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(299), 33, + ACTIONS(301), 33, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7126,14 +7075,14 @@ static const uint16_t ts_small_parse_table[] = { [495] = 5, ACTIONS(3), 1, sym_comment, - STATE(43), 1, + STATE(45), 1, aux_sym__expr17_repeat1, - ACTIONS(314), 4, + ACTIONS(312), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(306), 26, + ACTIONS(293), 26, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7160,7 +7109,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(308), 26, + ACTIONS(295), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7190,14 +7139,14 @@ static const uint16_t ts_small_parse_table[] = { [564] = 5, ACTIONS(3), 1, sym_comment, - STATE(43), 1, + STATE(45), 1, aux_sym__expr17_repeat1, - ACTIONS(321), 4, + ACTIONS(319), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(317), 26, + ACTIONS(315), 26, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7224,7 +7173,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(319), 26, + ACTIONS(317), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7254,14 +7203,14 @@ static const uint16_t ts_small_parse_table[] = { [633] = 5, ACTIONS(3), 1, sym_comment, - STATE(44), 1, + STATE(46), 1, aux_sym__expr17_repeat1, - ACTIONS(321), 4, + ACTIONS(319), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(323), 26, + ACTIONS(321), 26, anon_sym_SEMI, anon_sym_EQ, anon_sym_return, @@ -7288,7 +7237,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(325), 26, + ACTIONS(323), 26, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_PLUS_EQ, @@ -7318,15 +7267,15 @@ static const uint16_t ts_small_parse_table[] = { [702] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(327), 1, + ACTIONS(325), 1, sym_identifier, - ACTIONS(333), 1, + ACTIONS(327), 1, anon_sym_LPAREN, - STATE(47), 3, + STATE(49), 3, sym_parenthesized_expression, sym_tensor_expression, aux_sym_function_application_repeat1, - ACTIONS(329), 23, + ACTIONS(41), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7350,7 +7299,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(331), 27, + ACTIONS(43), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -7381,15 +7330,15 @@ static const uint16_t ts_small_parse_table[] = { [771] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(333), 1, - anon_sym_LPAREN, - ACTIONS(335), 1, + ACTIONS(329), 1, sym_identifier, - STATE(48), 3, + ACTIONS(332), 1, + anon_sym_LPAREN, + STATE(49), 3, sym_parenthesized_expression, sym_tensor_expression, aux_sym_function_application_repeat1, - ACTIONS(41), 23, + ACTIONS(34), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7413,7 +7362,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(43), 27, + ACTIONS(39), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -7444,15 +7393,15 @@ static const uint16_t ts_small_parse_table[] = { [840] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(337), 1, - sym_identifier, - ACTIONS(340), 1, + ACTIONS(327), 1, anon_sym_LPAREN, + ACTIONS(335), 1, + sym_identifier, STATE(48), 3, sym_parenthesized_expression, sym_tensor_expression, aux_sym_function_application_repeat1, - ACTIONS(34), 23, + ACTIONS(337), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7476,7 +7425,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(39), 27, + ACTIONS(339), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -7504,15 +7453,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [909] = 5, + [909] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(343), 1, - sym_identifier, - ACTIONS(189), 2, - anon_sym_LPAREN, + ACTIONS(71), 1, anon_sym_DASH_GT, - ACTIONS(184), 23, + ACTIONS(65), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7536,8 +7482,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(191), 27, + sym_identifier, + ACTIONS(67), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7564,15 +7512,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [974] = 5, + [972] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(345), 1, + ACTIONS(82), 1, sym_identifier, - ACTIONS(201), 2, - anon_sym_LPAREN, + ACTIONS(89), 1, anon_sym_DASH_GT, - ACTIONS(196), 23, + ACTIONS(85), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7596,8 +7543,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(203), 27, + ACTIONS(87), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7624,16 +7572,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1039] = 6, + [1037] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(193), 1, - sym_identifier, - ACTIONS(198), 1, - anon_sym_LPAREN, - ACTIONS(201), 1, + ACTIONS(69), 1, anon_sym_DASH_GT, - ACTIONS(196), 23, + ACTIONS(65), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7657,8 +7601,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(203), 27, + sym_identifier, + ACTIONS(67), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7685,16 +7631,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1106] = 6, + [1100] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(181), 1, + ACTIONS(73), 1, sym_identifier, - ACTIONS(186), 1, - anon_sym_LPAREN, - ACTIONS(189), 1, + ACTIONS(80), 1, anon_sym_DASH_GT, - ACTIONS(184), 23, + ACTIONS(76), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7718,8 +7662,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(191), 27, + ACTIONS(78), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7746,12 +7691,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1173] = 4, + [1165] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 1, - anon_sym_DASH_GT, - ACTIONS(171), 24, + ACTIONS(91), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7776,7 +7719,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(173), 28, + ACTIONS(93), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -7805,12 +7748,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1236] = 4, + [1225] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 1, - anon_sym_DASH_GT, - ACTIONS(171), 24, + ACTIONS(341), 1, + anon_sym_TILDE, + ACTIONS(344), 1, + anon_sym_DOT, + STATE(56), 2, + sym_method_call, + aux_sym__expr80_repeat1, + ACTIONS(55), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7833,11 +7781,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(173), 28, + ACTIONS(57), 26, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7862,17 +7807,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, - anon_sym_DOT, anon_sym_RBRACK, - [1299] = 5, + [1291] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(347), 1, - sym_identifier, - ACTIONS(175), 2, - anon_sym_LPAREN, - anon_sym_DASH_GT, - ACTIONS(171), 23, + ACTIONS(76), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7896,8 +7835,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(173), 27, + sym_identifier, + ACTIONS(78), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7924,15 +7865,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1364] = 5, + [1351] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(177), 2, - anon_sym_LPAREN, - anon_sym_DASH_GT, - ACTIONS(171), 23, + ACTIONS(239), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -7956,8 +7892,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(173), 27, + sym_identifier, + ACTIONS(241), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -7984,10 +7922,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1429] = 3, + [1411] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(273), 24, + ACTIONS(243), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8012,7 +7950,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(275), 28, + ACTIONS(245), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8041,69 +7979,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1489] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(357), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - ACTIONS(355), 4, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - ACTIONS(353), 22, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(351), 23, - anon_sym_SEMI, - anon_sym_EQ, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_TILDE, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [1553] = 3, + [1471] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(245), 24, + ACTIONS(247), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8128,7 +8007,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(247), 28, + ACTIONS(249), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8157,10 +8036,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1613] = 3, + [1531] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(249), 24, + ACTIONS(251), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8185,7 +8064,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(251), 28, + ACTIONS(253), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8214,10 +8093,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1673] = 3, + [1591] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(253), 24, + ACTIONS(255), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8242,7 +8121,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(255), 28, + ACTIONS(257), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8271,17 +8150,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1733] = 6, + [1651] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(359), 1, - anon_sym_TILDE, - ACTIONS(362), 1, - anon_sym_DOT, - STATE(62), 2, - sym_method_call, - aux_sym__expr80_repeat1, - ACTIONS(55), 22, + ACTIONS(259), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8304,8 +8176,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(57), 26, + anon_sym_TILDE, + sym_identifier, + ACTIONS(261), 28, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8330,11 +8205,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - [1799] = 3, + [1711] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(184), 24, + ACTIONS(267), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8359,7 +8235,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(191), 28, + ACTIONS(269), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8388,10 +8264,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1859] = 3, + [1771] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(257), 24, + ACTIONS(271), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8416,7 +8292,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(259), 28, + ACTIONS(273), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8445,10 +8321,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1919] = 3, + [1831] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(261), 24, + ACTIONS(275), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8473,7 +8349,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(263), 28, + ACTIONS(277), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8502,10 +8378,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [1979] = 3, + [1891] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(265), 24, + ACTIONS(157), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8530,7 +8406,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(267), 28, + ACTIONS(159), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8559,10 +8435,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2039] = 3, + [1951] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(269), 24, + ACTIONS(347), 1, + anon_sym_TILDE, + ACTIONS(349), 1, + anon_sym_DOT, + STATE(74), 2, + sym_method_call, + aux_sym__expr80_repeat1, + ACTIONS(45), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8585,11 +8468,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(271), 28, + ACTIONS(47), 26, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8614,19 +8494,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, - anon_sym_DOT, anon_sym_RBRACK, - [2099] = 6, + [2017] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(365), 1, - anon_sym_TILDE, - ACTIONS(367), 1, - anon_sym_DOT, - STATE(62), 2, - sym_method_call, - aux_sym__expr80_repeat1, - ACTIONS(45), 22, + ACTIONS(141), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8649,8 +8521,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(47), 26, - anon_sym_COMMA, + anon_sym_TILDE, + sym_identifier, + ACTIONS(143), 28, + anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8675,11 +8550,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - [2165] = 3, + [2077] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(207), 24, + ACTIONS(279), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8704,7 +8580,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(209), 28, + ACTIONS(281), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8733,10 +8609,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2225] = 3, + [2137] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(277), 24, + ACTIONS(163), 24, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8761,7 +8637,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_TILDE, sym_identifier, - ACTIONS(279), 28, + ACTIONS(165), 28, anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, @@ -8790,10 +8666,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2285] = 3, + [2197] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(211), 24, + ACTIONS(69), 1, + anon_sym_DASH_GT, + ACTIONS(351), 1, + sym_identifier, + ACTIONS(65), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8817,10 +8697,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(213), 28, + ACTIONS(67), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8847,17 +8725,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2345] = 6, + [2261] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(365), 1, - anon_sym_TILDE, - ACTIONS(367), 1, - anon_sym_DOT, - STATE(68), 2, - sym_method_call, - aux_sym__expr80_repeat1, - ACTIONS(51), 22, + ACTIONS(71), 1, + anon_sym_DASH_GT, + ACTIONS(353), 1, + sym_identifier, + ACTIONS(65), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8880,7 +8755,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(53), 26, + anon_sym_TILDE, + ACTIONS(67), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -8906,11 +8782,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - [2411] = 3, + [2325] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(237), 24, + ACTIONS(347), 1, + anon_sym_TILDE, + ACTIONS(349), 1, + anon_sym_DOT, + STATE(56), 2, + sym_method_call, + aux_sym__expr80_repeat1, + ACTIONS(51), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8933,11 +8817,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(239), 28, + ACTIONS(53), 26, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -8962,12 +8843,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, - anon_sym_DOT, anon_sym_RBRACK, - [2471] = 3, + [2391] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(241), 24, + ACTIONS(80), 1, + anon_sym_DASH_GT, + ACTIONS(355), 1, + sym_identifier, + ACTIONS(76), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -8991,10 +8875,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - sym_identifier, - ACTIONS(243), 28, + ACTIONS(78), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -9021,250 +8903,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2531] = 28, - ACTIONS(3), 1, - sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(73), 1, - anon_sym_LBRACE, - ACTIONS(87), 1, - anon_sym_DASH, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(170), 1, - sym_block_statement, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(385), 2, - sym__expression, - sym__expr10, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [2640] = 27, + [2455] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(87), 1, - anon_sym_DASH, ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(384), 1, - sym_constant_declaration_value, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(403), 2, - sym__expression, - sym__expr10, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [2746] = 28, - ACTIONS(3), 1, - sym_comment, - ACTIONS(65), 1, + anon_sym_DASH_GT, + ACTIONS(357), 1, sym_identifier, - ACTIONS(87), 1, - anon_sym_DASH, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - ACTIONS(369), 1, - anon_sym_LPAREN, - ACTIONS(371), 1, - anon_sym_LBRACK, - ACTIONS(373), 1, - anon_sym_RBRACK, - STATE(116), 1, - sym__expr15, - STATE(120), 1, - sym_var_declaration, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(270), 2, - sym__type_hint, - sym_function_type, - STATE(372), 2, - sym__expression, - sym__expr10, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 3, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [2854] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(211), 23, + ACTIONS(85), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9288,7 +8934,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(213), 27, + ACTIONS(87), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9316,169 +8962,126 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [2912] = 27, + [2519] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(87), 1, + ACTIONS(365), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + ACTIONS(363), 4, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + ACTIONS(361), 22, + anon_sym_LPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(359), 23, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, anon_sym_DASH, - ACTIONS(89), 1, anon_sym_TILDE, - ACTIONS(95), 1, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, sym_var_type, - ACTIONS(97), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, + sym_identifier, sym_underscore, - ACTIONS(369), 1, - anon_sym_LPAREN, - ACTIONS(371), 1, - anon_sym_LBRACK, - ACTIONS(375), 1, - anon_sym_RPAREN, - STATE(116), 1, - sym__expr15, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(292), 2, - sym__type_hint, - sym_function_type, - STATE(317), 2, - sym__expression, - sym__expr10, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [3018] = 28, + [2583] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(87), 1, + ACTIONS(153), 24, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, anon_sym_DASH, - ACTIONS(89), 1, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - ACTIONS(369), 1, + sym_identifier, + ACTIONS(155), 28, + anon_sym_COMMA, anon_sym_LPAREN, - ACTIONS(371), 1, - anon_sym_LBRACK, - ACTIONS(377), 1, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - STATE(116), 1, - sym__expr15, - STATE(118), 1, - sym_var_declaration, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(270), 2, - sym__type_hint, - sym_function_type, - STATE(322), 2, - sym__expression, - sym__expr10, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 3, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [3126] = 3, + [2643] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(233), 23, + ACTIONS(263), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9502,7 +9105,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(235), 27, + ACTIONS(265), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9530,10 +9133,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3184] = 3, + [2701] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(237), 23, + ACTIONS(141), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9557,7 +9160,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(239), 27, + ACTIONS(143), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9585,19 +9188,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3242] = 6, + [2759] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(181), 1, + ACTIONS(82), 1, sym_identifier, - ACTIONS(189), 1, + ACTIONS(89), 1, anon_sym_DASH_GT, - ACTIONS(186), 4, + ACTIONS(367), 3, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, - ACTIONS(184), 21, + ACTIONS(85), 21, anon_sym_EQ, anon_sym_LT, anon_sym_GT, @@ -9619,7 +9221,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(191), 23, + ACTIONS(87), 24, + anon_sym_LPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -9643,20 +9246,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_DOT, - [3306] = 6, + [2823] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(193), 1, - sym_identifier, - ACTIONS(201), 1, - anon_sym_DASH_GT, - ACTIONS(198), 4, + ACTIONS(91), 23, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + ACTIONS(93), 27, anon_sym_COMMA, - anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, anon_sym_RBRACK, - ACTIONS(196), 21, + [2881] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(153), 23, + anon_sym_SEMI, anon_sym_EQ, + anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -9677,7 +9328,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(203), 23, + ACTIONS(155), 27, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -9695,16 +9348,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, + anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_DOT, - [3370] = 3, + anon_sym_RBRACK, + [2939] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(241), 23, + ACTIONS(157), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9728,7 +9383,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(243), 27, + ACTIONS(159), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9756,10 +9411,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3428] = 3, + [2997] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(245), 23, + ACTIONS(279), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9783,7 +9438,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(247), 27, + ACTIONS(281), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9811,10 +9466,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3486] = 3, + [3055] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(249), 23, + ACTIONS(163), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9838,7 +9493,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(251), 27, + ACTIONS(165), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9866,10 +9521,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3544] = 3, + [3113] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(253), 23, + ACTIONS(239), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9893,7 +9548,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(255), 27, + ACTIONS(241), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9921,10 +9576,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3602] = 3, + [3171] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(257), 23, + ACTIONS(243), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -9948,7 +9603,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(259), 27, + ACTIONS(245), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -9976,10 +9631,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3660] = 3, + [3229] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(261), 23, + ACTIONS(247), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -10003,7 +9658,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(263), 27, + ACTIONS(249), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -10031,10 +9686,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3718] = 3, + [3287] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(269), 23, + ACTIONS(251), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -10058,7 +9713,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(271), 27, + ACTIONS(253), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -10086,10 +9741,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3776] = 3, + [3345] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(207), 23, + ACTIONS(255), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -10113,7 +9768,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(209), 27, + ACTIONS(257), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -10141,10 +9796,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3834] = 3, + [3403] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(273), 23, + ACTIONS(259), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -10168,7 +9823,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(275), 27, + ACTIONS(261), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -10196,10 +9851,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3892] = 3, + [3461] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(277), 23, + ACTIONS(267), 23, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -10223,7 +9878,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(279), 27, + ACTIONS(269), 27, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -10251,805 +9906,1219 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH_PERCENT, anon_sym_DOT, anon_sym_RBRACK, - [3950] = 27, + [3519] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(271), 23, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, anon_sym_DASH, - ACTIONS(89), 1, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - ACTIONS(379), 1, + ACTIONS(273), 27, + anon_sym_COMMA, anon_sym_RPAREN, - STATE(116), 1, - sym__expr15, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(317), 2, - sym__expression, - sym__expr10, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + anon_sym_RBRACK, + [3577] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(103), 1, + anon_sym_LBRACE, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, + sym_underscore, + STATE(152), 1, + sym__expr30, + STATE(157), 1, + sym__expr20, + STATE(163), 1, + sym__expr17, + STATE(168), 1, + sym_block_statement, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(361), 2, + sym__expression, + sym__expr10, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4056] = 27, + [3683] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(275), 23, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + ACTIONS(277), 27, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + anon_sym_RBRACK, + [3741] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(73), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(80), 1, + anon_sym_DASH_GT, + ACTIONS(390), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + ACTIONS(76), 21, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + ACTIONS(78), 24, anon_sym_LPAREN, - ACTIONS(87), 1, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [3805] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(393), 1, + anon_sym_COMMA, + ACTIONS(395), 1, + anon_sym_RBRACK, + STATE(323), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(141), 22, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, anon_sym_DASH, - ACTIONS(89), 1, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, + sym_identifier, + ACTIONS(143), 24, + anon_sym_LPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [3868] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(399), 1, + anon_sym_SLASH_PERCENT, + STATE(109), 1, + aux_sym__expr30_repeat1, + ACTIONS(397), 8, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(145), 14, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(147), 25, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_RBRACK, + [3931] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, sym_var_type, - ACTIONS(97), 1, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(420), 1, - sym_constant_declaration_value, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(176), 1, + sym__if_statement_contents, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(403), 2, + STATE(374), 2, sym__expression, sym__expr10, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4162] = 27, + [4034] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(87), 1, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - ACTIONS(369), 1, - anon_sym_LPAREN, - ACTIONS(371), 1, - anon_sym_LBRACK, - ACTIONS(381), 1, - anon_sym_RPAREN, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(366), 1, + sym_constant_declaration_value, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(292), 2, - sym__type_hint, - sym_function_type, - STATE(317), 2, + STATE(368), 2, sym__expression, sym__expr10, - STATE(72), 3, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4268] = 28, + [4137] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - ACTIONS(369), 1, + ACTIONS(401), 1, anon_sym_LPAREN, - ACTIONS(371), 1, + ACTIONS(403), 1, + anon_sym_RPAREN, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(383), 1, - anon_sym_RBRACK, - STATE(116), 1, - sym__expr15, - STATE(118), 1, - sym_var_declaration, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(270), 2, + STATE(289), 2, sym__type_hint, sym_function_type, - STATE(322), 2, + STATE(352), 2, sym__expression, sym__expr10, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 3, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(108), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4376] = 27, + [4240] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(407), 1, + anon_sym_RPAREN, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(164), 1, - sym__if_statement_contents, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(401), 2, + STATE(352), 2, sym__expression, sym__expr10, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4482] = 27, + [4343] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(401), 1, + anon_sym_LPAREN, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(409), 1, + anon_sym_RBRACK, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(167), 1, - sym__if_statement_contents, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(401), 2, - sym__expression, - sym__expr10, - STATE(417), 2, + STATE(290), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(304), 2, + sym__expression, + sym__expr10, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(98), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4588] = 27, + [4446] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - ACTIONS(385), 1, - anon_sym_RPAREN, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(177), 1, + sym__if_statement_contents, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(371), 2, + STATE(374), 2, sym__expression, sym__expr10, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4694] = 27, + [4549] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(399), 1, + anon_sym_SLASH_PERCENT, + STATE(99), 1, + aux_sym__expr30_repeat1, + ACTIONS(397), 8, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(133), 14, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(135), 25, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_RBRACK, + [4612] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(411), 22, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, + anon_sym_TILDE, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + ACTIONS(413), 27, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_LBRACK, + anon_sym_RBRACK, + sym_number_string_literal, + sym_slice_string_literal, + [4669] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(415), 1, + anon_sym_COMMA, + ACTIONS(417), 1, + anon_sym_RPAREN, + STATE(317), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(141), 22, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + sym_identifier, + ACTIONS(143), 24, + anon_sym_LPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [4732] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(87), 1, + ACTIONS(422), 1, + anon_sym_SLASH_PERCENT, + STATE(109), 1, + aux_sym__expr30_repeat1, + ACTIONS(419), 8, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(167), 14, + anon_sym_SEMI, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, anon_sym_DASH, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - ACTIONS(369), 1, - anon_sym_LPAREN, - ACTIONS(371), 1, - anon_sym_LBRACK, - ACTIONS(387), 1, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, + ACTIONS(169), 25, + anon_sym_COMMA, anon_sym_RPAREN, - STATE(116), 1, - sym__expr15, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(292), 2, - sym__type_hint, - sym_function_type, - STATE(360), 2, - sym__expression, - sym__expr10, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [4800] = 28, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_RBRACK, + [4795] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - ACTIONS(369), 1, + ACTIONS(401), 1, anon_sym_LPAREN, - ACTIONS(371), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(389), 1, - anon_sym_RBRACK, - STATE(115), 1, - sym_var_declaration, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(425), 1, + anon_sym_RPAREN, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(270), 2, + STATE(289), 2, sym__type_hint, sym_function_type, - STATE(361), 2, + STATE(352), 2, sym__expression, sym__expr10, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 3, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(108), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [4908] = 27, + [4898] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - ACTIONS(369), 1, + ACTIONS(401), 1, anon_sym_LPAREN, - ACTIONS(371), 1, + ACTIONS(405), 1, anon_sym_LBRACK, - ACTIONS(391), 1, - anon_sym_RPAREN, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(427), 1, + anon_sym_RBRACK, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(292), 2, + STATE(290), 2, sym__type_hint, sym_function_type, - STATE(371), 2, + STATE(304), 2, sym__expression, sym__expr10, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(98), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5014] = 3, + [5001] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(265), 23, - anon_sym_SEMI, + ACTIONS(429), 1, + anon_sym_COMMA, + ACTIONS(431), 1, + anon_sym_RPAREN, + STATE(332), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(141), 22, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -11070,9 +11139,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_PERCENT, anon_sym_AMP, anon_sym_TILDE, - ACTIONS(267), 27, - anon_sym_COMMA, - anon_sym_RPAREN, + sym_identifier, + ACTIONS(143), 24, + anon_sym_LPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -11090,111 +11159,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_DOT, - anon_sym_RBRACK, - [5072] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(87), 1, - anon_sym_DASH, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, - sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(157), 1, - sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(126), 2, - sym__expression, - sym__expr10, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [5175] = 6, + [5064] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(395), 1, - anon_sym_SLASH_PERCENT, - STATE(121), 1, - aux_sym__expr30_repeat1, - ACTIONS(393), 8, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - ACTIONS(281), 14, - anon_sym_SEMI, + ACTIONS(433), 1, + anon_sym_COMMA, + ACTIONS(435), 1, + anon_sym_RBRACK, + STATE(335), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(141), 22, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -11206,9 +11187,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(283), 25, - anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + sym_identifier, + ACTIONS(143), 24, + anon_sym_LPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -11226,250 +11216,265 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [5238] = 26, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [5127] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(437), 1, + anon_sym_RPAREN, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(318), 2, + STATE(327), 2, sym__expression, sym__expr10, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5341] = 26, + [5230] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(401), 1, + anon_sym_LPAREN, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(439), 1, + anon_sym_RPAREN, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(417), 2, + STATE(289), 2, sym__type_hint, sym_function_type, - STATE(423), 2, + STATE(327), 2, sym__expression, sym__expr10, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(112), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5444] = 25, + [5333] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(370), 1, sym_identifier, - ACTIONS(399), 1, - anon_sym_LPAREN, - ACTIONS(401), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(403), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(388), 1, sym_underscore, - STATE(41), 1, + ACTIONS(401), 1, + anon_sym_LPAREN, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(441), 1, + anon_sym_RBRACK, + STATE(152), 1, sym__expr30, - STATE(45), 1, + STATE(157), 1, sym__expr20, - STATE(58), 1, + STATE(163), 1, sym__expr17, - STATE(116), 1, + STATE(196), 1, sym__expr15, - STATE(439), 1, - sym_ternary_condition, - STATE(33), 2, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(126), 2, - sym__expression, - sym__expr10, - STATE(131), 2, - sym_ternary_expression, - sym__expr13, - STATE(407), 2, + STATE(290), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(329), 2, + sym__expression, + sym__expr10, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(113), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(5), 9, - sym__expr90, - sym_function_application, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, - sym__expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [5545] = 6, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [5436] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(420), 1, - anon_sym_SLASH_PERCENT, - STATE(111), 1, - aux_sym__expr30_repeat1, - ACTIONS(417), 8, + ACTIONS(443), 1, + anon_sym_COMMA, + ACTIONS(445), 1, + anon_sym_RPAREN, + STATE(345), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(141), 22, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_TILDE_GT_GT, + anon_sym_CARET_GT_GT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -11478,10 +11483,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(223), 14, - anon_sym_SEMI, + anon_sym_TILDE, + sym_identifier, + ACTIONS(143), 24, + anon_sym_LPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_QMARK, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [5499] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(447), 1, + anon_sym_COMMA, + ACTIONS(449), 1, + anon_sym_RBRACK, + STATE(348), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(141), 22, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, @@ -11493,9 +11532,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(225), 25, - anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + anon_sym_TILDE, + sym_identifier, + ACTIONS(143), 24, + anon_sym_LPAREN, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -11513,305 +11561,247 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [5608] = 25, + anon_sym_SLASH_PERCENT, + anon_sym_DOT, + [5562] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(370), 1, sym_identifier, - ACTIONS(399), 1, - anon_sym_LPAREN, - ACTIONS(401), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(403), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(388), 1, sym_underscore, - STATE(41), 1, + ACTIONS(401), 1, + anon_sym_LPAREN, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(451), 1, + anon_sym_RPAREN, + STATE(152), 1, sym__expr30, - STATE(45), 1, + STATE(157), 1, sym__expr20, - STATE(58), 1, + STATE(163), 1, sym__expr17, - STATE(116), 1, + STATE(196), 1, sym__expr15, - STATE(439), 1, - sym_ternary_condition, - STATE(33), 2, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(130), 2, - sym_ternary_expression, - sym__expr13, - STATE(169), 2, - sym__expression, - sym__expr10, - STATE(407), 2, + STATE(289), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(296), 2, + sym__expression, + sym__expr10, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(117), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(5), 9, - sym__expr90, - sym_function_application, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, - sym__expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [5709] = 26, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [5665] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + ACTIONS(401), 1, + anon_sym_LPAREN, + ACTIONS(405), 1, + anon_sym_LBRACK, + ACTIONS(453), 1, + anon_sym_RBRACK, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(398), 2, - sym__expression, - sym__expr10, - STATE(417), 2, + STATE(290), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(342), 2, + sym__expression, + sym__expr10, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(118), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5812] = 26, + [5768] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(377), 1, + sym_constant_declaration_value, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(430), 2, + STATE(368), 2, sym__expression, sym__expr10, - STATE(72), 3, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [5915] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(423), 1, - anon_sym_COMMA, - ACTIONS(425), 1, - anon_sym_RBRACK, - STATE(366), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(237), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(239), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [5978] = 4, + [5871] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(431), 1, - anon_sym_QMARK, - ACTIONS(427), 22, + ACTIONS(455), 22, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -11834,7 +11824,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - ACTIONS(429), 26, + ACTIONS(457), 26, anon_sym_COMMA, anon_sym_EQ, anon_sym_LPAREN, @@ -11861,291 +11851,160 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, sym_number_string_literal, sym_slice_string_literal, - [6037] = 26, + [5927] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(405), 2, + STATE(376), 2, sym__expression, sym__expr10, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [6140] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(433), 1, - anon_sym_COMMA, - ACTIONS(435), 1, - anon_sym_RBRACK, - STATE(356), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(237), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(239), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [6203] = 26, + [6027] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(140), 1, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(435), 2, - sym__expression, - sym__expr10, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [6306] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(437), 1, - anon_sym_COMMA, - ACTIONS(439), 1, - anon_sym_RBRACK, - STATE(376), 1, - aux_sym_tuple_vars_declaration_repeat1, - ACTIONS(237), 22, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - anon_sym_TILDE, - sym_identifier, - ACTIONS(239), 24, - anon_sym_LPAREN, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_DOT, - [6369] = 6, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(397), 2, + sym__expression, + sym__expr10, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [6127] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(395), 1, - anon_sym_SLASH_PERCENT, - STATE(111), 1, - aux_sym__expr30_repeat1, - ACTIONS(393), 8, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - ACTIONS(215), 14, + ACTIONS(167), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -12160,7 +12019,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(217), 25, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_TILDE_SLASH, + anon_sym_CARET_SLASH, + anon_sym_TILDE_PERCENT, + anon_sym_CARET_PERCENT, + anon_sym_AMP, + ACTIONS(169), 26, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -12185,193 +12052,236 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, + anon_sym_SLASH_PERCENT, anon_sym_RBRACK, - [6432] = 3, + [6183] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(441), 22, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_TILDE, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, + ACTIONS(27), 1, sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, + ACTIONS(95), 1, sym_identifier, - sym_underscore, - ACTIONS(443), 27, - anon_sym_COMMA, - anon_sym_EQ, + ACTIONS(99), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, + ACTIONS(117), 1, + anon_sym_DASH, + ACTIONS(119), 1, + anon_sym_TILDE, + ACTIONS(121), 1, anon_sym_LBRACK, - anon_sym_RBRACK, + ACTIONS(123), 1, + aux_sym_number_literal_token1, + ACTIONS(125), 1, + sym_string_literal, + ACTIONS(127), 1, sym_number_string_literal, + ACTIONS(129), 1, sym_slice_string_literal, - [6489] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(445), 22, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_TILDE, + ACTIONS(131), 1, + sym_underscore, + STATE(38), 1, + sym__expr30, + STATE(47), 1, + sym__expr20, + STATE(77), 1, + sym__expr17, + STATE(136), 1, + sym__expr15, + STATE(139), 1, + sym__expr13, + STATE(13), 2, + sym__expr75, + sym__expr80, + STATE(171), 2, + sym__expression, + sym__expr10, + STATE(391), 2, + sym__type_hint, + sym_function_type, + STATE(14), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - ACTIONS(447), 26, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_COLON, - anon_sym_LBRACK, - anon_sym_RBRACK, - sym_number_string_literal, - sym_slice_string_literal, - [6545] = 25, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(4), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [6281] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(370), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(401), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(403), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(405), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(388), 1, sym_underscore, - STATE(41), 1, + STATE(152), 1, sym__expr30, - STATE(45), 1, + STATE(157), 1, sym__expr20, - STATE(58), 1, + STATE(163), 1, sym__expr17, - STATE(116), 1, + STATE(196), 1, sym__expr15, - STATE(172), 1, - sym__expr10, - STATE(439), 1, - sym_ternary_condition, - STATE(33), 2, + STATE(197), 1, + sym__expr13, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(130), 2, - sym_ternary_expression, - sym__expr13, - STATE(407), 2, + STATE(341), 2, + sym__expression, + sym__expr10, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(5), 9, + [6381] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, + sym_underscore, + STATE(152), 1, + sym__expr30, + STATE(157), 1, + sym__expr20, + STATE(163), 1, + sym__expr17, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(360), 2, + sym__expression, + sym__expr10, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, sym__expr90, sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, - sym__expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [6645] = 3, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [6481] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(223), 22, + ACTIONS(283), 22, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -12394,7 +12304,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE_PERCENT, anon_sym_CARET_PERCENT, anon_sym_AMP, - ACTIONS(225), 26, + ACTIONS(285), 26, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -12421,164 +12331,478 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ_GT, anon_sym_SLASH_PERCENT, anon_sym_RBRACK, - [6701] = 3, + [6537] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(449), 22, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, anon_sym_DASH, + ACTIONS(376), 1, anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, + sym_underscore, + STATE(152), 1, + sym__expr30, + STATE(157), 1, + sym__expr20, + STATE(163), 1, + sym__expr17, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(394), 2, + sym__expression, + sym__expr10, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [6637] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, sym_var_type, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, aux_sym_number_literal_token1, + ACTIONS(382), 1, sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, + sym_underscore, + STATE(152), 1, + sym__expr30, + STATE(157), 1, + sym__expr20, + STATE(163), 1, + sym__expr17, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(392), 2, + sym__expression, + sym__expr10, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [6737] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, sym_underscore, - ACTIONS(451), 26, - anon_sym_COMMA, - anon_sym_EQ, + STATE(152), 1, + sym__expr30, + STATE(157), 1, + sym__expr20, + STATE(163), 1, + sym__expr17, + STATE(164), 1, + sym__expr10, + STATE(196), 1, + sym__expr15, + STATE(197), 1, + sym__expr13, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [6836] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(95), 1, + sym_identifier, + ACTIONS(99), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - anon_sym_COLON, + ACTIONS(117), 1, + anon_sym_DASH, + ACTIONS(119), 1, + anon_sym_TILDE, + ACTIONS(121), 1, anon_sym_LBRACK, - anon_sym_RBRACK, + ACTIONS(123), 1, + aux_sym_number_literal_token1, + ACTIONS(125), 1, + sym_string_literal, + ACTIONS(127), 1, + sym_number_string_literal, + ACTIONS(129), 1, + sym_slice_string_literal, + ACTIONS(131), 1, + sym_underscore, + STATE(38), 1, + sym__expr30, + STATE(47), 1, + sym__expr20, + STATE(77), 1, + sym__expr17, + STATE(136), 1, + sym__expr15, + STATE(139), 1, + sym__expr13, + STATE(164), 1, + sym__expr10, + STATE(13), 2, + sym__expr75, + sym__expr80, + STATE(391), 2, + sym__type_hint, + sym_function_type, + STATE(14), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(4), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [6933] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(95), 1, + sym_identifier, + ACTIONS(99), 1, + anon_sym_LPAREN, + ACTIONS(117), 1, + anon_sym_DASH, + ACTIONS(119), 1, + anon_sym_TILDE, + ACTIONS(121), 1, + anon_sym_LBRACK, + ACTIONS(123), 1, + aux_sym_number_literal_token1, + ACTIONS(125), 1, + sym_string_literal, + ACTIONS(127), 1, sym_number_string_literal, + ACTIONS(129), 1, sym_slice_string_literal, - [6757] = 26, + ACTIONS(131), 1, + sym_underscore, + STATE(38), 1, + sym__expr30, + STATE(47), 1, + sym__expr20, + STATE(77), 1, + sym__expr17, + STATE(122), 1, + sym__expr13, + STATE(136), 1, + sym__expr15, + STATE(13), 2, + sym__expr75, + sym__expr80, + STATE(391), 2, + sym__type_hint, + sym_function_type, + STATE(14), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(4), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [7027] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, + ACTIONS(374), 1, anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(116), 1, - sym__expr15, - STATE(123), 1, - sym__expr10, - STATE(140), 1, + STATE(122), 1, + sym__expr13, + STATE(152), 1, sym__expr30, - STATE(150), 1, - sym__expr20, STATE(157), 1, + sym__expr20, + STATE(163), 1, sym__expr17, - STATE(421), 1, - sym_ternary_condition, - STATE(107), 2, + STATE(196), 1, + sym__expr15, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(175), 2, - sym_ternary_expression, - sym__expr13, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [6859] = 3, + [7123] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(285), 22, + ACTIONS(463), 1, + anon_sym_QMARK, + ACTIONS(459), 22, anon_sym_SEMI, - anon_sym_EQ, + anon_sym_return, anon_sym_LBRACE, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_LT_LT, - anon_sym_GT_GT, - anon_sym_TILDE_GT_GT, - anon_sym_CARET_GT_GT, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_TILDE_SLASH, - anon_sym_CARET_SLASH, - anon_sym_TILDE_PERCENT, - anon_sym_CARET_PERCENT, - anon_sym_AMP, - ACTIONS(287), 26, - anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_TILDE, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + ACTIONS(461), 22, + anon_sym_EQ, + anon_sym_LPAREN, + anon_sym_RBRACE, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -12595,80 +12819,67 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_PIPE_EQ, anon_sym_CARET_EQ, - anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_SLASH_PERCENT, - anon_sym_RBRACK, - [6915] = 25, + anon_sym_LBRACK, + sym_number_string_literal, + sym_slice_string_literal, + [7178] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(95), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(401), 1, + ACTIONS(117), 1, anon_sym_DASH, - ACTIONS(403), 1, + ACTIONS(119), 1, anon_sym_TILDE, - ACTIONS(405), 1, + ACTIONS(121), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(123), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(125), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(127), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(129), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(131), 1, sym_underscore, - STATE(41), 1, + STATE(38), 1, sym__expr30, - STATE(45), 1, + STATE(47), 1, sym__expr20, - STATE(58), 1, + STATE(107), 1, sym__expr17, - STATE(116), 1, - sym__expr15, - STATE(123), 1, - sym__expr10, - STATE(439), 1, - sym_ternary_condition, - STATE(33), 2, + STATE(13), 2, sym__expr75, sym__expr80, - STATE(131), 2, - sym_ternary_expression, - sym__expr13, - STATE(407), 2, + STATE(391), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(14), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(5), 9, + STATE(4), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -12678,66 +12889,84 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7015] = 4, + [7266] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(457), 5, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, anon_sym_LPAREN, - anon_sym_RBRACE, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, sym_number_string_literal, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(455), 17, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - ACTIONS(453), 22, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_TILDE, + ACTIONS(388), 1, + sym_underscore, + STATE(107), 1, + sym__expr17, + STATE(152), 1, + sym__expr30, + STATE(157), 1, + sym__expr20, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [7069] = 4, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [7356] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(457), 5, + ACTIONS(469), 5, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(459), 17, + ACTIONS(467), 17, anon_sym_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -12755,7 +12984,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_PIPE_EQ, anon_sym_CARET_EQ, - ACTIONS(453), 22, + ACTIONS(465), 22, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -12778,63 +13007,62 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [7123] = 21, + [7410] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(95), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(401), 1, + ACTIONS(117), 1, anon_sym_DASH, - ACTIONS(403), 1, + ACTIONS(119), 1, anon_sym_TILDE, - ACTIONS(405), 1, + ACTIONS(121), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(123), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(125), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(127), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(129), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(131), 1, sym_underscore, - STATE(41), 1, + STATE(38), 1, sym__expr30, - STATE(45), 1, + STATE(39), 1, sym__expr20, - STATE(122), 1, - sym__expr17, - STATE(33), 2, + STATE(13), 2, sym__expr75, sym__expr80, - STATE(407), 2, + STATE(391), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(14), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(5), 9, + STATE(4), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -12844,128 +13072,186 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7210] = 22, + [7495] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(374), 1, + anon_sym_DASH, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, + sym_underscore, + STATE(39), 1, + sym__expr20, + STATE(152), 1, + sym__expr30, + STATE(106), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [7582] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(87), 1, - anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(122), 1, - sym__expr17, - STATE(140), 1, + STATE(149), 1, sym__expr30, - STATE(150), 1, - sym__expr20, - STATE(107), 2, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [7299] = 20, + [7663] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(95), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(401), 1, - anon_sym_DASH, - ACTIONS(403), 1, + ACTIONS(119), 1, anon_sym_TILDE, - ACTIONS(405), 1, + ACTIONS(121), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(123), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(125), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(127), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(129), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(131), 1, sym_underscore, - STATE(40), 1, - sym__expr20, - STATE(41), 1, + STATE(44), 1, sym__expr30, - STATE(33), 2, + STATE(13), 2, sym__expr75, sym__expr80, - STATE(407), 2, + STATE(391), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(14), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(5), 9, + STATE(4), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -12975,142 +13261,140 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7383] = 21, + [7742] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(95), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(87), 1, - anon_sym_DASH, - ACTIONS(89), 1, + ACTIONS(119), 1, anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(121), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(123), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(125), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(127), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(129), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(131), 1, sym_underscore, - STATE(40), 1, - sym__expr20, - STATE(140), 1, + STATE(42), 1, sym__expr30, - STATE(107), 2, + STATE(13), 2, sym__expr75, sym__expr80, - STATE(417), 2, + STATE(391), 2, sym__type_hint, sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(14), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [7469] = 18, + STATE(4), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [7821] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(370), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(403), 1, + ACTIONS(376), 1, anon_sym_TILDE, - ACTIONS(405), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(388), 1, sym_underscore, - STATE(36), 1, + STATE(153), 1, sym__expr30, - STATE(33), 2, + STATE(106), 2, sym__expr75, sym__expr80, - STATE(407), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(5), 9, - sym__expr90, - sym_function_application, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, - sym__expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [7547] = 5, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [7902] = 5, ACTIONS(3), 1, sym_comment, - STATE(137), 1, + STATE(151), 1, aux_sym__expr20_repeat1, - ACTIONS(461), 4, + ACTIONS(471), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(299), 10, + ACTIONS(308), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13121,7 +13405,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(301), 25, + ACTIONS(310), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13147,17 +13431,136 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [7599] = 5, + [7954] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(95), 1, + sym_identifier, + ACTIONS(99), 1, + anon_sym_LPAREN, + ACTIONS(119), 1, + anon_sym_TILDE, + ACTIONS(121), 1, + anon_sym_LBRACK, + ACTIONS(123), 1, + aux_sym_number_literal_token1, + ACTIONS(125), 1, + sym_string_literal, + ACTIONS(127), 1, + sym_number_string_literal, + ACTIONS(129), 1, + sym_slice_string_literal, + ACTIONS(131), 1, + sym_underscore, + STATE(36), 2, + sym__expr75, + sym__expr80, + STATE(391), 2, + sym__type_hint, + sym_function_type, + STATE(14), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(4), 9, + sym__expr90, + sym_function_application, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + [8030] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_LPAREN, + ACTIONS(376), 1, + anon_sym_TILDE, + ACTIONS(378), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, + aux_sym_number_literal_token1, + ACTIONS(382), 1, + sym_string_literal, + ACTIONS(384), 1, + sym_number_string_literal, + ACTIONS(386), 1, + sym_slice_string_literal, + ACTIONS(388), 1, + sym_underscore, + STATE(125), 2, + sym__expr75, + sym__expr80, + STATE(390), 2, + sym__type_hint, + sym_function_type, + STATE(68), 3, + sym__expr90, + sym_function_application, + sym__expr100, + STATE(69), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(50), 6, + sym_local_vars_declaration, + sym__nontype_expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [8108] = 5, ACTIONS(3), 1, sym_comment, - STATE(137), 1, + STATE(150), 1, aux_sym__expr20_repeat1, - ACTIONS(464), 4, + ACTIONS(471), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(295), 10, + ACTIONS(308), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13168,7 +13571,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(297), 25, + ACTIONS(310), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13194,17 +13597,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [7651] = 5, + [8160] = 5, ACTIONS(3), 1, sym_comment, - STATE(138), 1, + STATE(151), 1, aux_sym__expr20_repeat1, - ACTIONS(464), 4, + ACTIONS(471), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(289), 10, + ACTIONS(297), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13215,7 +13618,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(291), 25, + ACTIONS(299), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13241,17 +13644,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [7703] = 5, + [8212] = 5, ACTIONS(3), 1, sym_comment, - STATE(142), 1, + STATE(151), 1, aux_sym__expr20_repeat1, - ACTIONS(464), 4, + ACTIONS(473), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(310), 10, + ACTIONS(301), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13262,7 +13665,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(312), 25, + ACTIONS(303), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13282,84 +13685,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_EQ, anon_sym_CARET_EQ, anon_sym_QMARK, - anon_sym_COLON, - anon_sym_EQ_EQ, - anon_sym_GT_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ_GT, - anon_sym_RBRACK, - [7755] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - STATE(146), 1, - sym__expr30, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [7835] = 5, + anon_sym_COLON, + anon_sym_EQ_EQ, + anon_sym_GT_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ_GT, + anon_sym_RBRACK, + [8264] = 5, ACTIONS(3), 1, sym_comment, - STATE(137), 1, + STATE(146), 1, aux_sym__expr20_repeat1, - ACTIONS(464), 4, + ACTIONS(471), 4, anon_sym_DASH, anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(289), 10, + ACTIONS(287), 10, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13370,7 +13712,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(291), 25, + ACTIONS(289), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13396,189 +13738,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [7887] = 18, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(397), 1, - sym_identifier, - ACTIONS(399), 1, - anon_sym_LPAREN, - ACTIONS(403), 1, - anon_sym_TILDE, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(407), 1, - aux_sym_number_literal_token1, - ACTIONS(409), 1, - sym_string_literal, - ACTIONS(411), 1, - sym_number_string_literal, - ACTIONS(413), 1, - sym_slice_string_literal, - ACTIONS(415), 1, - sym_underscore, - STATE(42), 1, - sym__expr30, - STATE(33), 2, - sym__expr75, - sym__expr80, - STATE(407), 2, - sym__type_hint, - sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(5), 9, - sym__expr90, - sym_function_application, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - [7965] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(65), 1, - sym_identifier, - ACTIONS(69), 1, - anon_sym_LPAREN, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(91), 1, - anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, - sym_underscore, - STATE(139), 1, - sym__expr30, - STATE(107), 2, - sym__expr75, - sym__expr80, - STATE(417), 2, - sym__type_hint, - sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [8045] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(397), 1, - sym_identifier, - ACTIONS(399), 1, - anon_sym_LPAREN, - ACTIONS(403), 1, - anon_sym_TILDE, - ACTIONS(405), 1, - anon_sym_LBRACK, - ACTIONS(407), 1, - aux_sym_number_literal_token1, - ACTIONS(409), 1, - sym_string_literal, - ACTIONS(411), 1, - sym_number_string_literal, - ACTIONS(413), 1, - sym_slice_string_literal, - ACTIONS(415), 1, - sym_underscore, - STATE(35), 2, - sym__expr75, - sym__expr80, - STATE(407), 2, - sym__type_hint, - sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(5), 9, - sym__expr90, - sym_function_application, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - [8120] = 3, + [8316] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(299), 14, + ACTIONS(301), 14, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, @@ -13593,7 +13756,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_PIPE, anon_sym_CARET, - ACTIONS(301), 25, + ACTIONS(303), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13619,111 +13782,110 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8167] = 18, + [8363] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(370), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(372), 1, anon_sym_LPAREN, - ACTIONS(89), 1, - anon_sym_TILDE, - ACTIONS(91), 1, + ACTIONS(378), 1, anon_sym_LBRACK, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(97), 1, + ACTIONS(380), 1, aux_sym_number_literal_token1, - ACTIONS(99), 1, + ACTIONS(382), 1, sym_string_literal, - ACTIONS(101), 1, + ACTIONS(384), 1, sym_number_string_literal, - ACTIONS(103), 1, + ACTIONS(386), 1, sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(388), 1, sym_underscore, - STATE(125), 2, - sym__expr75, + STATE(129), 1, sym__expr80, - STATE(417), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(72), 3, + STATE(68), 3, sym__expr90, sym_function_application, sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(69), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, + STATE(50), 6, sym_local_vars_declaration, sym__nontype_expr100, sym_parenthesized_expression, sym_tensor_expression, sym_typed_tuple, sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [8244] = 16, + [8437] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(95), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(405), 1, + ACTIONS(121), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(123), 1, aux_sym_number_literal_token1, - ACTIONS(409), 1, + ACTIONS(125), 1, sym_string_literal, - ACTIONS(411), 1, + ACTIONS(127), 1, sym_number_string_literal, - ACTIONS(413), 1, + ACTIONS(129), 1, sym_slice_string_literal, - ACTIONS(415), 1, + ACTIONS(131), 1, sym_underscore, - STATE(34), 1, + STATE(37), 1, sym__expr80, - STATE(407), 2, + STATE(391), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(14), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(5), 9, + STATE(4), 9, sym__expr90, sym_function_application, sym_local_vars_declaration, @@ -13733,80 +13895,80 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [8315] = 17, + [8509] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(65), 1, + ACTIONS(476), 1, + ts_builtin_sym_end, + ACTIONS(478), 1, sym_identifier, - ACTIONS(69), 1, + ACTIONS(481), 1, + anon_sym_POUNDinclude, + ACTIONS(484), 1, + anon_sym_SEMI, + ACTIONS(487), 1, + anon_sym_POUNDpragma, + ACTIONS(490), 1, + anon_sym_global, + ACTIONS(493), 1, + anon_sym_const, + ACTIONS(496), 1, anon_sym_LPAREN, - ACTIONS(91), 1, + ACTIONS(499), 1, + anon_sym_forall, + ACTIONS(502), 1, anon_sym_LBRACK, - ACTIONS(95), 1, + ACTIONS(508), 1, sym_var_type, - ACTIONS(97), 1, - aux_sym_number_literal_token1, - ACTIONS(99), 1, - sym_string_literal, - ACTIONS(101), 1, - sym_number_string_literal, - ACTIONS(103), 1, - sym_slice_string_literal, - ACTIONS(105), 1, + ACTIONS(511), 1, sym_underscore, - STATE(128), 1, - sym__expr80, - STATE(417), 2, + STATE(210), 1, + sym_type_parameters, + STATE(386), 2, sym__type_hint, sym_function_type, - STATE(72), 3, - sym__expr90, - sym_function_application, - sym__expr100, - STATE(73), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, + ACTIONS(505), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(46), 6, - sym_local_vars_declaration, - sym__nontype_expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [8388] = 5, + STATE(156), 8, + sym__top_level_item, + sym_import_directive, + sym_pragma_directive, + sym_global_var_declarations, + sym_constant_declarations, + sym_function_declaration, + sym_empty_statement, + aux_sym_source_file_repeat1, + [8583] = 5, ACTIONS(3), 1, sym_comment, - STATE(151), 1, + STATE(160), 1, aux_sym__expr17_repeat1, - ACTIONS(466), 4, + ACTIONS(514), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(323), 6, + ACTIONS(321), 6, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(325), 25, + ACTIONS(323), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13832,24 +13994,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8436] = 5, + [8631] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(9), 1, + anon_sym_POUNDinclude, + ACTIONS(11), 1, + anon_sym_SEMI, + ACTIONS(13), 1, + anon_sym_POUNDpragma, + ACTIONS(15), 1, + anon_sym_global, + ACTIONS(17), 1, + anon_sym_const, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(21), 1, + anon_sym_forall, + ACTIONS(23), 1, + anon_sym_LBRACK, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(516), 1, + ts_builtin_sym_end, + STATE(210), 1, + sym_type_parameters, + STATE(386), 2, + sym__type_hint, + sym_function_type, + ACTIONS(25), 6, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + STATE(156), 8, + sym__top_level_item, + sym_import_directive, + sym_pragma_directive, + sym_global_var_declarations, + sym_constant_declarations, + sym_function_declaration, + sym_empty_statement, + aux_sym_source_file_repeat1, + [8705] = 5, ACTIONS(3), 1, sym_comment, - STATE(152), 1, + STATE(159), 1, aux_sym__expr17_repeat1, - ACTIONS(466), 4, + ACTIONS(518), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(317), 6, + ACTIONS(293), 6, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(319), 25, + ACTIONS(295), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13875,24 +14093,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8484] = 5, + [8753] = 5, ACTIONS(3), 1, sym_comment, - STATE(152), 1, + STATE(159), 1, aux_sym__expr17_repeat1, - ACTIONS(468), 4, + ACTIONS(514), 4, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_TILDE_GT_GT, anon_sym_CARET_GT_GT, - ACTIONS(306), 6, + ACTIONS(315), 6, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(308), 25, + ACTIONS(317), 25, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -13918,93 +14136,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, anon_sym_RBRACK, - [8532] = 18, + [8801] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(471), 1, - ts_builtin_sym_end, - ACTIONS(473), 1, - sym_identifier, - ACTIONS(476), 1, - anon_sym_POUNDinclude, - ACTIONS(479), 1, - anon_sym_SEMI, - ACTIONS(482), 1, - anon_sym_POUNDpragma, - ACTIONS(485), 1, - anon_sym_global, - ACTIONS(488), 1, - anon_sym_const, - ACTIONS(491), 1, - anon_sym_LPAREN, - ACTIONS(494), 1, - anon_sym_forall, - ACTIONS(497), 1, - anon_sym_LBRACK, - ACTIONS(503), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(506), 1, - sym_underscore, - STATE(212), 1, - sym_type_parameters, - STATE(426), 2, - sym__type_hint, - sym_function_type, - ACTIONS(500), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(287), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(153), 8, - sym__top_level_item, - sym_import_directive, - sym_pragma_directive, - sym_global_var_declarations, - sym_constant_declarations, - sym_function_declaration, - sym_empty_statement, - aux_sym_source_file_repeat1, - [8605] = 18, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, + ACTIONS(521), 1, sym_identifier, - ACTIONS(9), 1, - anon_sym_POUNDinclude, - ACTIONS(11), 1, - anon_sym_SEMI, - ACTIONS(13), 1, - anon_sym_POUNDpragma, - ACTIONS(15), 1, - anon_sym_global, - ACTIONS(17), 1, - anon_sym_const, - ACTIONS(19), 1, + ACTIONS(523), 1, anon_sym_LPAREN, - ACTIONS(21), 1, - anon_sym_forall, - ACTIONS(23), 1, + ACTIONS(525), 1, anon_sym_LBRACK, - ACTIONS(27), 1, - sym_var_type, - ACTIONS(29), 1, + ACTIONS(527), 1, + aux_sym_number_literal_token1, + ACTIONS(529), 1, + sym_string_literal, + ACTIONS(531), 1, + sym_number_string_literal, + ACTIONS(533), 1, + sym_slice_string_literal, + ACTIONS(535), 1, sym_underscore, - ACTIONS(509), 1, - ts_builtin_sym_end, - STATE(212), 1, - sym_type_parameters, - STATE(426), 2, + STATE(384), 2, sym__type_hint, sym_function_type, + STATE(80), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -14012,66 +14172,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(79), 7, + sym_local_vars_declaration, + sym__nontype_expr100, + sym__expr100, + sym_parenthesized_expression, + sym_tensor_expression, + sym_typed_tuple, + sym_number_literal, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(153), 8, - sym__top_level_item, - sym_import_directive, - sym_pragma_directive, - sym_global_var_declarations, - sym_constant_declarations, - sym_function_declaration, - sym_empty_statement, - aux_sym_source_file_repeat1, - [8678] = 15, + [8868] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(27), 1, sym_var_type, - ACTIONS(397), 1, + ACTIONS(95), 1, sym_identifier, - ACTIONS(399), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(405), 1, + ACTIONS(121), 1, anon_sym_LBRACK, - ACTIONS(407), 1, + ACTIONS(123), 1, aux_sym_number_literal_token1, - ACTIONS(411), 1, + ACTIONS(127), 1, sym_number_string_literal, - ACTIONS(415), 1, + ACTIONS(131), 1, sym_underscore, - ACTIONS(511), 1, + ACTIONS(537), 1, sym_string_literal, - ACTIONS(513), 1, + ACTIONS(539), 1, sym_slice_string_literal, - STATE(407), 2, + STATE(391), 2, sym__type_hint, sym_function_type, - STATE(22), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, + STATE(14), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - STATE(21), 7, + STATE(31), 7, sym_local_vars_declaration, sym__nontype_expr100, sym__expr100, @@ -14079,74 +14232,31 @@ static const uint16_t ts_small_parse_table[] = { sym_tensor_expression, sym_typed_tuple, sym_number_literal, - [8744] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(515), 1, - sym_identifier, - ACTIONS(517), 1, - anon_sym_LPAREN, - ACTIONS(519), 1, - anon_sym_LBRACK, - ACTIONS(521), 1, - aux_sym_number_literal_token1, - ACTIONS(523), 1, - sym_string_literal, - ACTIONS(525), 1, - sym_number_string_literal, - ACTIONS(527), 1, - sym_slice_string_literal, - ACTIONS(529), 1, - sym_underscore, - STATE(393), 2, - sym__type_hint, - sym_function_type, - STATE(82), 4, - sym_var_declaration, - sym_tensor_vars_declaration, - sym__multiple_vars_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - STATE(81), 7, - sym_local_vars_declaration, - sym__nontype_expr100, - sym__expr100, - sym_parenthesized_expression, - sym_tensor_expression, - sym_typed_tuple, - sym_number_literal, - [8810] = 5, + [8935] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(351), 3, + ACTIONS(359), 3, anon_sym_SEMI, anon_sym_EQ, anon_sym_LBRACE, - ACTIONS(533), 3, + ACTIONS(543), 3, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, - ACTIONS(531), 4, + ACTIONS(541), 4, anon_sym_EQ_EQ, anon_sym_GT_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ_GT, - ACTIONS(353), 21, + ACTIONS(361), 21, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PLUS_EQ, @@ -14168,63 +14278,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK, anon_sym_COLON, anon_sym_RBRACK, - [8853] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(539), 1, - anon_sym_else, - ACTIONS(541), 2, - anon_sym_elseif, - anon_sym_elseifnot, - ACTIONS(537), 6, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(535), 21, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [8895] = 3, + [8978] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(545), 6, + ACTIONS(547), 10, + anon_sym_COMMA, anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_RBRACE, + anon_sym_COLON, anon_sym_TILDE, anon_sym_LBRACK, + anon_sym_RBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(543), 24, + ACTIONS(545), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, anon_sym_if, anon_sym_ifnot, - anon_sym_else, - anon_sym_elseif, - anon_sym_elseifnot, anon_sym_do, anon_sym_while, anon_sym_try, @@ -14240,84 +14314,22 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [8933] = 3, + [9017] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 6, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(547), 24, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, + ACTIONS(553), 1, anon_sym_else, + ACTIONS(555), 2, anon_sym_elseif, anon_sym_elseifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [8971] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(553), 6, - anon_sym_LPAREN, - anon_sym_RBRACE, - anon_sym_TILDE, - anon_sym_LBRACK, - sym_number_string_literal, - sym_slice_string_literal, - ACTIONS(551), 21, - anon_sym_SEMI, - anon_sym_return, - anon_sym_LBRACE, - anon_sym_repeat, - anon_sym_if, - anon_sym_ifnot, - anon_sym_do, - anon_sym_while, - anon_sym_try, - anon_sym_DASH, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - aux_sym_number_literal_token1, - sym_string_literal, - sym_identifier, - sym_underscore, - [9006] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(557), 6, + ACTIONS(551), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(555), 21, + ACTIONS(549), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14339,23 +14351,26 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9041] = 3, + [9059] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(561), 6, + ACTIONS(559), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(559), 21, + ACTIONS(557), 24, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, anon_sym_if, anon_sym_ifnot, + anon_sym_else, + anon_sym_elseif, + anon_sym_elseifnot, anon_sym_do, anon_sym_while, anon_sym_try, @@ -14371,23 +14386,26 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9076] = 3, + [9097] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(565), 6, + ACTIONS(563), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(563), 21, + ACTIONS(561), 24, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, anon_sym_if, anon_sym_ifnot, + anon_sym_else, + anon_sym_elseif, + anon_sym_elseifnot, anon_sym_do, anon_sym_while, anon_sym_try, @@ -14403,17 +14421,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9111] = 3, + [9135] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(569), 6, + ACTIONS(567), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(567), 21, + ACTIONS(565), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14435,17 +14453,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9146] = 3, + [9170] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(573), 6, + ACTIONS(571), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(571), 21, + ACTIONS(569), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14467,9 +14485,11 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9181] = 3, + [9205] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(575), 1, + anon_sym_SEMI, ACTIONS(577), 6, anon_sym_LPAREN, anon_sym_RBRACE, @@ -14477,8 +14497,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(575), 21, - anon_sym_SEMI, + ACTIONS(573), 20, anon_sym_return, anon_sym_LBRACE, anon_sym_repeat, @@ -14499,7 +14518,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9216] = 3, + [9242] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(581), 6, @@ -14531,7 +14550,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9251] = 3, + [9277] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(585), 6, @@ -14563,7 +14582,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9286] = 3, + [9312] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(589), 6, @@ -14595,7 +14614,7 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9321] = 3, + [9347] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(593), 6, @@ -14627,17 +14646,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9356] = 3, + [9382] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(447), 6, + ACTIONS(597), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(445), 21, + ACTIONS(595), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14659,17 +14678,17 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9391] = 3, + [9417] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(597), 6, + ACTIONS(601), 6, anon_sym_LPAREN, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_LBRACK, sym_number_string_literal, sym_slice_string_literal, - ACTIONS(595), 21, + ACTIONS(599), 21, anon_sym_SEMI, anon_sym_return, anon_sym_LBRACE, @@ -14691,842 +14710,537 @@ static const uint16_t ts_small_parse_table[] = { sym_string_literal, sym_identifier, sym_underscore, - [9426] = 11, + [9452] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(599), 1, - sym_identifier, - ACTIONS(601), 1, + ACTIONS(605), 6, anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_RPAREN, - ACTIONS(605), 1, + anon_sym_RBRACE, + anon_sym_TILDE, anon_sym_LBRACK, - ACTIONS(607), 1, - sym_underscore, - STATE(301), 2, - sym__type_hint, - sym_function_type, - STATE(331), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9473] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(453), 2, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(603), 21, anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(457), 4, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - ACTIONS(609), 17, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_TILDE_SLASH_EQ, - anon_sym_CARET_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_TILDE_PERCENT_EQ, - anon_sym_CARET_PERCENT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_GT_GT_EQ, - anon_sym_TILDE_GT_GT_EQ, - anon_sym_CARET_GT_GT_EQ, - anon_sym_AMP_EQ, - anon_sym_PIPE_EQ, - anon_sym_CARET_EQ, - [9506] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(613), 1, - anon_sym_RPAREN, - ACTIONS(615), 1, - sym_underscore, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9553] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(617), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9600] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(619), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9647] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(621), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9694] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(623), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9741] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(625), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9788] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(627), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9835] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, - anon_sym_LPAREN, - ACTIONS(605), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - ACTIONS(629), 1, - anon_sym_RPAREN, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9882] = 10, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [9487] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, + ACTIONS(609), 6, anon_sym_LPAREN, - ACTIONS(605), 1, + anon_sym_RBRACE, + anon_sym_TILDE, anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(615), 1, - sym_underscore, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(414), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(607), 21, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9926] = 10, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [9522] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, + ACTIONS(613), 6, anon_sym_LPAREN, - ACTIONS(605), 1, + anon_sym_RBRACE, + anon_sym_TILDE, anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(631), 1, - sym_underscore, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(370), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(611), 21, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [9970] = 10, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [9557] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(601), 1, + ACTIONS(617), 6, anon_sym_LPAREN, - ACTIONS(605), 1, + anon_sym_RBRACE, + anon_sym_TILDE, anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(633), 1, - sym_underscore, - STATE(433), 2, - sym__type_hint, - sym_function_type, - STATE(367), 3, - sym_var_declaration, - sym_nested_tensor_declaration, - sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_number_string_literal, + sym_slice_string_literal, + ACTIONS(615), 21, + anon_sym_SEMI, + anon_sym_return, + anon_sym_LBRACE, + anon_sym_repeat, + anon_sym_if, + anon_sym_ifnot, + anon_sym_do, + anon_sym_while, + anon_sym_try, + anon_sym_DASH, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, - sym__atomic_type, - sym_primitive_type, - sym_tensor_type, - sym_tuple_type, - sym_hole_type, - sym_type_identifier, - [10014] = 10, + sym_var_type, + aux_sym_number_literal_token1, + sym_string_literal, + sym_identifier, + sym_underscore, + [9592] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(27), 1, sym_var_type, - ACTIONS(601), 1, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(605), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(635), 1, - sym_underscore, - STATE(433), 2, + ACTIONS(623), 1, + anon_sym_RBRACK, + STATE(390), 2, sym__type_hint, sym_function_type, - STATE(377), 3, - sym_var_declaration, - sym_nested_tensor_declaration, + STATE(306), 4, sym_tuple_vars_declaration, - ACTIONS(93), 6, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10058] = 11, + [9641] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(637), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(641), 1, - anon_sym_RPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(645), 1, - sym_underscore, - STATE(306), 1, - sym_parameter_declaration, - STATE(311), 2, + ACTIONS(625), 1, + anon_sym_RPAREN, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10103] = 11, + [9690] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(599), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(647), 1, + ACTIONS(627), 1, anon_sym_RBRACK, - ACTIONS(649), 1, - sym_underscore, - STATE(337), 1, - sym_var_declaration, - STATE(308), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10148] = 11, + [9739] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(651), 1, + ACTIONS(629), 1, anon_sym_RBRACK, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10193] = 11, + [9788] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(653), 1, - anon_sym_RBRACK, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + ACTIONS(631), 1, + anon_sym_RPAREN, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10238] = 11, + [9837] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(655), 1, - anon_sym_RBRACK, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + ACTIONS(633), 1, + anon_sym_RPAREN, + STATE(289), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(326), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10283] = 11, + [9886] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(657), 1, + ACTIONS(635), 1, anon_sym_RBRACK, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + STATE(290), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(328), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10328] = 11, + [9935] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(659), 1, - anon_sym_RBRACK, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + ACTIONS(637), 1, + anon_sym_RPAREN, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10373] = 11, + [9984] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(639), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(661), 1, + ACTIONS(639), 1, anon_sym_RBRACK, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10418] = 10, + [10033] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(27), 1, sym_var_type, - ACTIONS(639), 1, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(663), 1, - sym_identifier, - STATE(402), 1, - sym_constant_declaration, - STATE(428), 2, + ACTIONS(641), 1, + anon_sym_RPAREN, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10460] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(549), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(547), 15, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, - anon_sym_until, - anon_sym_catch, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - sym_identifier, - sym_underscore, - [10488] = 10, + [10082] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(603), 1, + ACTIONS(619), 1, + anon_sym_LPAREN, + ACTIONS(621), 1, + anon_sym_LBRACK, + ACTIONS(643), 1, anon_sym_RPAREN, - STATE(352), 2, + STATE(390), 2, sym__type_hint, sym_function_type, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -15534,31 +15248,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10530] = 10, + [10131] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(647), 1, + ACTIONS(619), 1, + anon_sym_LPAREN, + ACTIONS(621), 1, + anon_sym_LBRACK, + ACTIONS(645), 1, anon_sym_RBRACK, - STATE(353), 2, + STATE(390), 2, sym__type_hint, sym_function_type, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -15566,63 +15286,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10572] = 10, + [10180] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(27), 1, sym_var_type, - ACTIONS(639), 1, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(665), 1, - sym_identifier, - STATE(363), 1, - sym_global_var_declaration, - STATE(422), 2, + ACTIONS(647), 1, + anon_sym_RPAREN, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10614] = 10, + [10229] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, ACTIONS(29), 1, sym_underscore, - ACTIONS(667), 1, - anon_sym_RPAREN, - STATE(378), 2, + ACTIONS(619), 1, + anon_sym_LPAREN, + ACTIONS(621), 1, + anon_sym_LBRACK, + ACTIONS(649), 1, + anon_sym_RBRACK, + STATE(390), 2, sym__type_hint, sym_function_type, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, ACTIONS(25), 6, anon_sym_int, anon_sym_cell, @@ -15630,214 +15362,259 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10656] = 10, + [10278] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(27), 1, sym_var_type, - ACTIONS(639), 1, + ACTIONS(29), 1, + sym_underscore, + ACTIONS(619), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(621), 1, anon_sym_LBRACK, - ACTIONS(649), 1, - sym_underscore, - ACTIONS(665), 1, - sym_identifier, - STATE(388), 1, - sym_global_var_declaration, - STATE(422), 2, + STATE(390), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + STATE(306), 4, + sym_tuple_vars_declaration, + sym_tensor_vars_declaration, + sym_var_declaration, + sym__var_declaration_lhs, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10698] = 3, + [10324] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(545), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(543), 15, + ACTIONS(651), 1, + anon_sym_QMARK, + ACTIONS(459), 2, anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, - anon_sym_until, - anon_sym_catch, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, - sym_var_type, - sym_identifier, - sym_underscore, - [10726] = 10, + anon_sym_LBRACE, + ACTIONS(461), 21, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_RPAREN, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + anon_sym_COLON, + anon_sym_RBRACK, + [10358] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(611), 1, - sym_identifier, - ACTIONS(639), 1, + ACTIONS(465), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + ACTIONS(469), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + ACTIONS(653), 17, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_TILDE_SLASH_EQ, + anon_sym_CARET_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_TILDE_PERCENT_EQ, + anon_sym_CARET_PERCENT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_GT_GT_EQ, + anon_sym_TILDE_GT_GT_EQ, + anon_sym_CARET_GT_GT_EQ, + anon_sym_AMP_EQ, + anon_sym_PIPE_EQ, + anon_sym_CARET_EQ, + [10391] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(649), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(655), 1, + sym_identifier, + ACTIONS(657), 1, + anon_sym_RPAREN, + ACTIONS(659), 1, sym_underscore, - STATE(410), 1, - sym_var_declaration, - STATE(433), 2, + STATE(281), 1, + sym_parameter_declaration, + STATE(282), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10768] = 10, + [10437] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(639), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(669), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(661), 1, sym_identifier, - ACTIONS(671), 1, + ACTIONS(663), 1, sym_underscore, - STATE(419), 1, + STATE(380), 1, sym_parameter_declaration, - STATE(311), 2, + STATE(282), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10810] = 10, + [10480] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(639), 1, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(649), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, sym_underscore, - ACTIONS(673), 1, - sym_identifier, - STATE(389), 1, - sym_parameter_declaration, - STATE(311), 2, + ACTIONS(635), 1, + anon_sym_RBRACK, + STATE(310), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10852] = 10, + [10523] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(639), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(649), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, sym_underscore, - ACTIONS(663), 1, + ACTIONS(665), 1, sym_identifier, - STATE(327), 1, - sym_constant_declaration, - STATE(428), 2, + STATE(382), 1, + sym_global_var_declaration, + STATE(387), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10894] = 10, + [10566] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(23), 1, anon_sym_LBRACK, ACTIONS(27), 1, sym_var_type, - ACTIONS(29), 1, + ACTIONS(661), 1, + sym_identifier, + ACTIONS(663), 1, sym_underscore, - ACTIONS(675), 1, - anon_sym_RBRACK, - STATE(341), 2, + STATE(375), 1, + sym_parameter_declaration, + STATE(282), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15847,76 +15624,81 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10936] = 10, + [10609] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(639), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(669), 1, - sym_identifier, - ACTIONS(671), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, sym_underscore, - STATE(416), 1, - sym_parameter_declaration, - STATE(311), 2, + ACTIONS(667), 1, + sym_identifier, + STATE(370), 1, + sym_constant_declaration, + STATE(396), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [10978] = 9, + [10652] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(95), 1, - sym_var_type, - ACTIONS(639), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(643), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(649), 1, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, sym_underscore, - ACTIONS(673), 1, + ACTIONS(665), 1, sym_identifier, - STATE(262), 2, + STATE(330), 1, + sym_global_var_declaration, + STATE(387), 2, sym__type_hint, sym_function_type, - ACTIONS(93), 6, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(257), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [11017] = 9, + [10695] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -15929,7 +15711,9 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, ACTIONS(29), 1, sym_underscore, - STATE(299), 2, + ACTIONS(633), 1, + anon_sym_RPAREN, + STATE(300), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15939,18 +15723,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [11056] = 9, + [10738] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(23), 1, @@ -15959,7 +15742,11 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, ACTIONS(29), 1, sym_underscore, - STATE(432), 2, + ACTIONS(667), 1, + sym_identifier, + STATE(336), 1, + sym_constant_declaration, + STATE(396), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15969,14 +15756,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [11095] = 9, + [10781] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -15989,7 +15777,9 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, ACTIONS(29), 1, sym_underscore, - STATE(373), 2, + STATE(369), 1, + sym_parameter_declaration, + STATE(282), 2, sym__type_hint, sym_function_type, ACTIONS(25), 6, @@ -15999,27 +15789,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_builder, anon_sym_cont, anon_sym_tuple, - STATE(287), 6, + STATE(250), 7, sym__atomic_type, + sym__parenthesized_type, sym_primitive_type, sym_tensor_type, sym_tuple_type, sym_hole_type, sym_type_identifier, - [11134] = 3, + [10824] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(677), 5, + ACTIONS(563), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(679), 13, + ACTIONS(561), 15, anon_sym_SEMI, anon_sym_global, anon_sym_const, anon_sym_forall, + anon_sym_until, + anon_sym_catch, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16029,112 +15822,115 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11160] = 3, + [10852] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(681), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(19), 1, anon_sym_LPAREN, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(683), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, - anon_sym_int, - anon_sym_cell, - anon_sym_slice, - anon_sym_builder, - anon_sym_cont, - anon_sym_tuple, + ACTIONS(27), 1, sym_var_type, - sym_identifier, + ACTIONS(29), 1, sym_underscore, - [11186] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(685), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(687), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, + STATE(271), 2, + sym__type_hint, + sym_function_type, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - sym_identifier, - sym_underscore, - [11212] = 3, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [10892] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(689), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(19), 1, anon_sym_LPAREN, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(691), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + STATE(395), 2, + sym__type_hint, + sym_function_type, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - sym_identifier, - sym_underscore, - [11238] = 3, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [10932] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(693), 5, - ts_builtin_sym_end, - anon_sym_POUNDinclude, - anon_sym_POUNDpragma, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(19), 1, anon_sym_LPAREN, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(695), 13, - anon_sym_SEMI, - anon_sym_global, - anon_sym_const, - anon_sym_forall, + ACTIONS(27), 1, + sym_var_type, + ACTIONS(29), 1, + sym_underscore, + STATE(347), 2, + sym__type_hint, + sym_function_type, + ACTIONS(25), 6, anon_sym_int, anon_sym_cell, anon_sym_slice, anon_sym_builder, anon_sym_cont, anon_sym_tuple, - sym_var_type, - sym_identifier, - sym_underscore, - [11264] = 3, + STATE(250), 7, + sym__atomic_type, + sym__parenthesized_type, + sym_primitive_type, + sym_tensor_type, + sym_tuple_type, + sym_hole_type, + sym_type_identifier, + [10972] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(697), 5, + ACTIONS(559), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(699), 13, + ACTIONS(557), 15, anon_sym_SEMI, anon_sym_global, anon_sym_const, anon_sym_forall, + anon_sym_until, + anon_sym_catch, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16144,16 +15940,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11290] = 3, + [11000] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(701), 5, + ACTIONS(669), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(703), 13, + ACTIONS(671), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16167,16 +15963,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11316] = 3, + [11026] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(705), 5, + ACTIONS(673), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(707), 13, + ACTIONS(675), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16190,16 +15986,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11342] = 3, + [11052] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(709), 5, + ACTIONS(677), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(711), 13, + ACTIONS(679), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16213,16 +16009,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11368] = 3, + [11078] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(713), 5, + ACTIONS(681), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(715), 13, + ACTIONS(683), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16236,16 +16032,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11394] = 3, + [11104] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(717), 5, + ACTIONS(685), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(719), 13, + ACTIONS(687), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16259,18 +16055,17 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11420] = 4, + [11130] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(725), 1, - anon_sym_SEMI, - ACTIONS(721), 5, + ACTIONS(689), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(723), 12, + ACTIONS(691), 13, + anon_sym_SEMI, anon_sym_global, anon_sym_const, anon_sym_forall, @@ -16283,16 +16078,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11448] = 3, + [11156] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(727), 5, + ACTIONS(693), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(729), 13, + ACTIONS(695), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16306,16 +16101,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11474] = 3, + [11182] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(731), 5, + ACTIONS(697), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(733), 13, + ACTIONS(699), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16329,16 +16124,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11500] = 3, + [11208] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(553), 5, + ACTIONS(701), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(551), 13, + ACTIONS(703), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16352,16 +16147,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11526] = 3, + [11234] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(735), 5, + ACTIONS(705), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(737), 13, + ACTIONS(707), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16375,16 +16170,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11552] = 3, + [11260] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(739), 5, + ACTIONS(709), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(741), 13, + ACTIONS(711), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16398,17 +16193,18 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11578] = 3, + [11286] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(743), 5, + ACTIONS(717), 1, + anon_sym_SEMI, + ACTIONS(713), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(745), 13, - anon_sym_SEMI, + ACTIONS(715), 12, anon_sym_global, anon_sym_const, anon_sym_forall, @@ -16421,16 +16217,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11604] = 3, + [11314] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(747), 5, + ACTIONS(719), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(749), 13, + ACTIONS(721), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16444,16 +16240,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11630] = 3, + [11340] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(751), 5, + ACTIONS(723), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(753), 13, + ACTIONS(725), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16467,16 +16263,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11656] = 3, + [11366] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(755), 5, + ACTIONS(589), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(757), 13, + ACTIONS(587), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16490,16 +16286,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11682] = 3, + [11392] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(759), 5, + ACTIONS(727), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(761), 13, + ACTIONS(729), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16513,16 +16309,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11708] = 3, + [11418] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(763), 5, + ACTIONS(731), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(765), 13, + ACTIONS(733), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16536,16 +16332,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11734] = 3, + [11444] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(767), 5, + ACTIONS(735), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(769), 13, + ACTIONS(737), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16559,16 +16355,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11760] = 3, + [11470] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(771), 5, + ACTIONS(739), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(773), 13, + ACTIONS(741), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16582,16 +16378,16 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11786] = 3, + [11496] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(775), 5, + ACTIONS(743), 5, ts_builtin_sym_end, anon_sym_POUNDinclude, anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(777), 13, + ACTIONS(745), 13, anon_sym_SEMI, anon_sym_global, anon_sym_const, @@ -16605,38 +16401,20 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11812] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(779), 1, - sym_impure, - ACTIONS(781), 1, - anon_sym_inline, - ACTIONS(783), 1, - anon_sym_inline_ref, - ACTIONS(785), 1, - anon_sym_method_id, - ACTIONS(787), 1, - anon_sym_asm, - ACTIONS(789), 1, - anon_sym_LBRACE, - STATE(229), 1, - sym_asm_function_body, - STATE(230), 1, - sym_block_statement, - STATE(275), 1, - sym_inline, - STATE(300), 1, - sym_specifiers_list, - STATE(347), 1, - sym_method_id, - [11849] = 3, + [11522] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(793), 2, + ACTIONS(747), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(791), 9, + ACTIONS(749), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16646,13 +16424,20 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11868] = 3, + [11548] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(797), 2, + ACTIONS(751), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(795), 9, + ACTIONS(753), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16662,38 +16447,20 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11887] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(779), 1, - sym_impure, - ACTIONS(781), 1, - anon_sym_inline, - ACTIONS(783), 1, - anon_sym_inline_ref, - ACTIONS(785), 1, - anon_sym_method_id, - ACTIONS(787), 1, - anon_sym_asm, - ACTIONS(789), 1, - anon_sym_LBRACE, - STATE(221), 1, - sym_asm_function_body, - STATE(222), 1, - sym_block_statement, - STATE(275), 1, - sym_inline, - STATE(302), 1, - sym_specifiers_list, - STATE(347), 1, - sym_method_id, - [11924] = 3, + [11574] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(801), 2, + ACTIONS(755), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(799), 9, + ACTIONS(757), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, anon_sym_int, anon_sym_cell, anon_sym_slice, @@ -16703,2162 +16470,1947 @@ static const uint16_t ts_small_parse_table[] = { sym_var_type, sym_identifier, sym_underscore, - [11943] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(781), 1, - anon_sym_inline, - ACTIONS(783), 1, - anon_sym_inline_ref, - ACTIONS(785), 1, - anon_sym_method_id, - ACTIONS(805), 1, - anon_sym_asm, - STATE(281), 1, - sym_inline, - STATE(336), 1, - sym_method_id, - ACTIONS(803), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [11969] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(779), 1, - sym_impure, - ACTIONS(781), 1, - anon_sym_inline, - ACTIONS(783), 1, - anon_sym_inline_ref, - ACTIONS(785), 1, - anon_sym_method_id, - ACTIONS(807), 1, - anon_sym_SEMI, - STATE(275), 1, - sym_inline, - STATE(347), 1, - sym_method_id, - STATE(424), 1, - sym_specifiers_list, - [11997] = 4, - ACTIONS(809), 1, - anon_sym_SPACE, - ACTIONS(814), 1, - sym_comment, - STATE(247), 1, - aux_sym_import_directive_repeat1, - ACTIONS(812), 6, - sym_version_identifier, - anon_sym_version, - anon_sym_not_DASHversion, - anon_sym_allow_DASHpost_DASHmodification, - anon_sym_compute_DASHasm_DASHltr, - sym_string_literal, - [12015] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(779), 1, - sym_impure, - ACTIONS(781), 1, - anon_sym_inline, - ACTIONS(783), 1, - anon_sym_inline_ref, - ACTIONS(785), 1, - anon_sym_method_id, - ACTIONS(816), 1, - anon_sym_SEMI, - STATE(275), 1, - sym_inline, - STATE(347), 1, - sym_method_id, - STATE(434), 1, - sym_specifiers_list, - [12043] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(818), 1, - anon_sym_SEMI, - ACTIONS(823), 1, - anon_sym_inline, - ACTIONS(826), 1, - anon_sym_asm, - ACTIONS(828), 1, - anon_sym_LBRACE, - ACTIONS(820), 3, - sym_impure, - anon_sym_inline_ref, - anon_sym_method_id, - [12064] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(347), 2, - sym_identifier, - sym_underscore, - ACTIONS(175), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12079] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(830), 2, - sym_identifier, - sym_underscore, - ACTIONS(832), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12094] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(834), 2, - sym_identifier, - sym_underscore, - ACTIONS(836), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12109] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(838), 2, - sym_identifier, - sym_underscore, - ACTIONS(840), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12124] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(349), 2, - sym_identifier, - sym_underscore, - ACTIONS(177), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12139] = 3, + [11600] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(343), 2, - sym_identifier, - sym_underscore, - ACTIONS(189), 5, - anon_sym_COMMA, + ACTIONS(759), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12154] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(842), 1, + anon_sym_LBRACK, + ACTIONS(761), 13, anon_sym_SEMI, - ACTIONS(847), 1, - anon_sym_inline, - ACTIONS(850), 1, - anon_sym_asm, - ACTIONS(852), 1, - anon_sym_LBRACE, - ACTIONS(844), 3, - sym_impure, - anon_sym_inline_ref, - anon_sym_method_id, - [12175] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(858), 1, - anon_sym_DASH_GT, - ACTIONS(854), 2, - sym_identifier, - sym_underscore, - ACTIONS(856), 4, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACK, - [12192] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(345), 2, - sym_identifier, - sym_underscore, - ACTIONS(201), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12207] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(860), 2, - sym_identifier, - sym_underscore, - ACTIONS(862), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12222] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(864), 2, - sym_identifier, - sym_underscore, - ACTIONS(866), 5, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - [12237] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(177), 1, - anon_sym_DASH_GT, - ACTIONS(868), 1, - anon_sym_COMMA, - ACTIONS(871), 1, - anon_sym_RPAREN, - STATE(333), 1, - aux_sym_parameter_list_relaxed_repeat1, - ACTIONS(349), 2, + anon_sym_global, + anon_sym_const, + anon_sym_forall, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, sym_identifier, sym_underscore, - [12257] = 3, + [11626] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(874), 2, + ACTIONS(763), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(765), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, sym_identifier, sym_underscore, - ACTIONS(876), 4, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_RBRACK, - [12271] = 5, - ACTIONS(814), 1, - sym_comment, - ACTIONS(878), 1, - anon_sym_SPACE, - STATE(247), 1, - aux_sym_import_directive_repeat1, - ACTIONS(880), 2, - anon_sym_version, - anon_sym_not_DASHversion, - ACTIONS(882), 2, - anon_sym_allow_DASHpost_DASHmodification, - anon_sym_compute_DASHasm_DASHltr, - [12289] = 6, + [11652] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 1, - anon_sym_DASH_GT, - ACTIONS(884), 1, - anon_sym_COMMA, - ACTIONS(887), 1, - anon_sym_RPAREN, - STATE(332), 1, - aux_sym_parameter_list_relaxed_repeat1, - ACTIONS(347), 2, + ACTIONS(767), 5, + ts_builtin_sym_end, + anon_sym_POUNDinclude, + anon_sym_POUNDpragma, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(769), 13, + anon_sym_SEMI, + anon_sym_global, + anon_sym_const, + anon_sym_forall, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, sym_identifier, sym_underscore, - [12309] = 3, + [11678] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(892), 2, - anon_sym_inline, - anon_sym_LBRACE, - ACTIONS(890), 4, + ACTIONS(771), 1, sym_impure, + ACTIONS(773), 1, + anon_sym_inline, + ACTIONS(775), 1, anon_sym_inline_ref, + ACTIONS(777), 1, anon_sym_method_id, + ACTIONS(779), 1, anon_sym_asm, - [12323] = 3, + ACTIONS(781), 1, + anon_sym_LBRACE, + STATE(218), 1, + sym_asm_function_body, + STATE(221), 1, + sym_block_statement, + STATE(270), 1, + sym_inline, + STATE(294), 1, + sym_specifiers_list, + STATE(316), 1, + sym_method_id, + [11715] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 2, - anon_sym_DASH_GT, + ACTIONS(785), 2, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(783), 9, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, sym_identifier, - ACTIONS(894), 3, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_RBRACK, - [12336] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(896), 1, - anon_sym_RPAREN, - ACTIONS(898), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(290), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12351] = 6, + sym_underscore, + [11734] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(789), 2, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(787), 9, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, sym_identifier, - ACTIONS(900), 1, - anon_sym_DASH_GT, - ACTIONS(902), 1, - anon_sym_type, - STATE(321), 1, - sym_type_parameter, - STATE(394), 1, - sym_type_identifier, - [12370] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(201), 5, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12381] = 6, + sym_underscore, + [11753] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(904), 1, - sym_identifier, - ACTIONS(906), 1, - anon_sym_COMMA, - ACTIONS(908), 1, + ACTIONS(793), 2, anon_sym_LPAREN, - ACTIONS(910), 1, - anon_sym_RBRACK, - STATE(355), 1, - aux_sym_tensor_type_repeat1, - [12400] = 2, + anon_sym_LBRACK, + ACTIONS(791), 9, + anon_sym_int, + anon_sym_cell, + anon_sym_slice, + anon_sym_builder, + anon_sym_cont, + anon_sym_tuple, + sym_var_type, + sym_identifier, + sym_underscore, + [11772] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(840), 5, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12411] = 2, + ACTIONS(771), 1, + sym_impure, + ACTIONS(773), 1, + anon_sym_inline, + ACTIONS(775), 1, + anon_sym_inline_ref, + ACTIONS(777), 1, + anon_sym_method_id, + ACTIONS(779), 1, + anon_sym_asm, + ACTIONS(781), 1, + anon_sym_LBRACE, + STATE(228), 1, + sym_asm_function_body, + STATE(229), 1, + sym_block_statement, + STATE(270), 1, + sym_inline, + STATE(291), 1, + sym_specifiers_list, + STATE(316), 1, + sym_method_id, + [11809] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 5, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12422] = 2, + ACTIONS(771), 1, + sym_impure, + ACTIONS(773), 1, + anon_sym_inline, + ACTIONS(775), 1, + anon_sym_inline_ref, + ACTIONS(777), 1, + anon_sym_method_id, + ACTIONS(795), 1, + anon_sym_SEMI, + STATE(270), 1, + sym_inline, + STATE(316), 1, + sym_method_id, + STATE(393), 1, + sym_specifiers_list, + [11837] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 5, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12433] = 4, - ACTIONS(3), 1, + ACTIONS(771), 1, + sym_impure, + ACTIONS(773), 1, + anon_sym_inline, + ACTIONS(775), 1, + anon_sym_inline_ref, + ACTIONS(777), 1, + anon_sym_method_id, + ACTIONS(797), 1, + anon_sym_SEMI, + STATE(270), 1, + sym_inline, + STATE(316), 1, + sym_method_id, + STATE(398), 1, + sym_specifiers_list, + [11865] = 4, + ACTIONS(799), 1, + anon_sym_SPACE, + ACTIONS(804), 1, sym_comment, - ACTIONS(912), 1, - anon_sym_RPAREN, - ACTIONS(898), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(290), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12448] = 5, + STATE(246), 1, + aux_sym_import_directive_repeat1, + ACTIONS(802), 6, + sym_version_identifier, + anon_sym_version, + anon_sym_not_DASHversion, + anon_sym_allow_DASHpost_DASHmodification, + anon_sym_compute_DASHasm_DASHltr, + sym_string_literal, + [11883] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(785), 1, + ACTIONS(773), 1, + anon_sym_inline, + ACTIONS(775), 1, + anon_sym_inline_ref, + ACTIONS(777), 1, anon_sym_method_id, - ACTIONS(805), 1, + ACTIONS(808), 1, anon_sym_asm, - STATE(336), 1, + STATE(267), 1, + sym_inline, + STATE(299), 1, sym_method_id, - ACTIONS(803), 2, + ACTIONS(806), 2, anon_sym_SEMI, anon_sym_LBRACE, - [12465] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(862), 5, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12476] = 4, + [11909] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(912), 1, - anon_sym_RPAREN, - ACTIONS(898), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(267), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12491] = 3, + ACTIONS(810), 1, + anon_sym_SEMI, + ACTIONS(815), 1, + anon_sym_inline, + ACTIONS(818), 1, + anon_sym_asm, + ACTIONS(820), 1, + anon_sym_LBRACE, + ACTIONS(812), 3, + sym_impure, + anon_sym_inline_ref, + anon_sym_method_id, + [11930] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(914), 2, + ACTIONS(822), 1, anon_sym_SEMI, + ACTIONS(827), 1, anon_sym_inline, - ACTIONS(916), 3, + ACTIONS(830), 1, + anon_sym_asm, + ACTIONS(832), 1, + anon_sym_LBRACE, + ACTIONS(824), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [12504] = 3, + [11951] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 2, + ACTIONS(838), 1, anon_sym_DASH_GT, + ACTIONS(834), 2, sym_identifier, - ACTIONS(918), 3, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_RBRACK, - [12517] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(836), 5, + sym_underscore, + ACTIONS(836), 3, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_DASH_GT, anon_sym_RBRACK, - sym_function_name, - [12528] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(785), 1, - anon_sym_method_id, - ACTIONS(923), 1, - anon_sym_asm, - STATE(320), 1, - sym_method_id, - ACTIONS(921), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [12545] = 2, + [11967] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(866), 5, + ACTIONS(840), 2, + sym_identifier, + sym_underscore, + ACTIONS(842), 4, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH_GT, anon_sym_RBRACK, - sym_function_name, - [12556] = 2, + [11981] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(189), 5, - anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(69), 1, anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12567] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(832), 5, + ACTIONS(844), 1, anon_sym_COMMA, + ACTIONS(847), 1, anon_sym_RPAREN, - anon_sym_DASH_GT, - anon_sym_RBRACK, - sym_function_name, - [12578] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(925), 1, - anon_sym_RPAREN, - ACTIONS(898), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(274), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12593] = 5, + STATE(350), 1, + aux_sym_parameter_list_relaxed_repeat1, + ACTIONS(351), 2, + sym_identifier, + sym_underscore, + [12001] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(927), 1, + ACTIONS(71), 1, + anon_sym_DASH_GT, + ACTIONS(850), 1, anon_sym_COMMA, - ACTIONS(929), 1, + ACTIONS(853), 1, anon_sym_RPAREN, - STATE(323), 1, - aux_sym_nested_tensor_declaration_repeat1, - ACTIONS(177), 2, - anon_sym_DASH_GT, + STATE(351), 1, + aux_sym_parameter_list_relaxed_repeat1, + ACTIONS(353), 2, sym_identifier, - [12610] = 3, + sym_underscore, + [12021] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(931), 1, - anon_sym_DASH_GT, - ACTIONS(856), 4, + ACTIONS(856), 2, + sym_identifier, + sym_underscore, + ACTIONS(858), 4, anon_sym_COMMA, anon_sym_RPAREN, + anon_sym_DASH_GT, anon_sym_RBRACK, - sym_function_name, - [12623] = 5, + [12035] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(933), 1, + ACTIONS(351), 2, + sym_identifier, + sym_underscore, + ACTIONS(69), 4, anon_sym_COMMA, - ACTIONS(935), 1, anon_sym_RPAREN, - STATE(368), 1, - aux_sym_nested_tensor_declaration_repeat1, - ACTIONS(177), 2, anon_sym_DASH_GT, - sym_identifier, - [12640] = 5, + anon_sym_RBRACK, + [12049] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(937), 1, + ACTIONS(353), 2, + sym_identifier, + sym_underscore, + ACTIONS(71), 4, anon_sym_COMMA, - ACTIONS(939), 1, anon_sym_RPAREN, - STATE(383), 1, - aux_sym_nested_tensor_declaration_repeat1, - ACTIONS(177), 2, anon_sym_DASH_GT, - sym_identifier, - [12657] = 4, + anon_sym_RBRACK, + [12063] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(860), 2, + sym_identifier, + sym_underscore, + ACTIONS(862), 4, + anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(943), 2, - aux_sym_number_literal_token1, - sym_number_string_literal, - STATE(290), 2, - sym_number_literal, - aux_sym_asm_function_body_repeat2, - [12672] = 5, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12077] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(355), 2, + sym_identifier, + sym_underscore, + ACTIONS(80), 4, anon_sym_COMMA, - ACTIONS(948), 1, anon_sym_RPAREN, - STATE(379), 1, - aux_sym_nested_tensor_declaration_repeat1, - ACTIONS(177), 2, anon_sym_DASH_GT, - sym_identifier, - [12689] = 6, + anon_sym_RBRACK, + [12091] = 5, + ACTIONS(804), 1, + sym_comment, + ACTIONS(864), 1, + anon_sym_SPACE, + STATE(246), 1, + aux_sym_import_directive_repeat1, + ACTIONS(866), 2, + anon_sym_version, + anon_sym_not_DASHversion, + ACTIONS(868), 2, + anon_sym_allow_DASHpost_DASHmodification, + anon_sym_compute_DASHasm_DASHltr, + [12109] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(904), 1, + ACTIONS(870), 2, sym_identifier, - ACTIONS(906), 1, + sym_underscore, + ACTIONS(872), 4, anon_sym_COMMA, - ACTIONS(908), 1, - anon_sym_LPAREN, - ACTIONS(950), 1, anon_sym_RPAREN, - STATE(354), 1, - aux_sym_tensor_type_repeat1, - [12708] = 4, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12123] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 1, - anon_sym_DASH_GT, - ACTIONS(347), 2, + ACTIONS(357), 2, sym_identifier, sym_underscore, - ACTIONS(952), 2, + ACTIONS(89), 4, anon_sym_COMMA, anon_sym_RPAREN, - [12723] = 4, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12137] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 1, - anon_sym_DASH_GT, - ACTIONS(349), 2, + ACTIONS(874), 2, sym_identifier, sym_underscore, - ACTIONS(955), 2, + ACTIONS(876), 4, anon_sym_COMMA, anon_sym_RPAREN, - [12738] = 3, + anon_sym_DASH_GT, + anon_sym_RBRACK, + [12151] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(958), 2, - anon_sym_SEMI, + ACTIONS(880), 2, anon_sym_inline, - ACTIONS(960), 3, + anon_sym_LBRACE, + ACTIONS(878), 4, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [12751] = 3, + anon_sym_asm, + [12165] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(958), 2, + ACTIONS(882), 2, anon_sym_SEMI, anon_sym_inline, - ACTIONS(960), 3, + ACTIONS(884), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [12764] = 3, + [12178] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(962), 2, + ACTIONS(886), 2, anon_sym_SEMI, anon_sym_inline, - ACTIONS(964), 3, + ACTIONS(888), 3, sym_impure, anon_sym_inline_ref, anon_sym_method_id, - [12777] = 4, + [12191] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(968), 1, - anon_sym_LPAREN, - ACTIONS(970), 1, + ACTIONS(890), 1, + anon_sym_RPAREN, + ACTIONS(892), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(266), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12206] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(777), 1, + anon_sym_method_id, + ACTIONS(897), 1, anon_sym_asm, - ACTIONS(966), 2, + STATE(340), 1, + sym_method_id, + ACTIONS(895), 2, anon_sym_SEMI, anon_sym_LBRACE, - [12791] = 2, + [12223] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(876), 4, - anon_sym_COMMA, + ACTIONS(899), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - sym_function_name, - [12801] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(787), 1, - anon_sym_asm, - ACTIONS(789), 1, - anon_sym_LBRACE, - STATE(237), 1, - sym_asm_function_body, - STATE(238), 1, - sym_block_statement, - [12817] = 5, + ACTIONS(901), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(266), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12238] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(904), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(906), 1, - anon_sym_COMMA, - ACTIONS(950), 1, - anon_sym_RPAREN, - STATE(354), 1, - aux_sym_tensor_type_repeat1, - [12833] = 5, + ACTIONS(903), 1, + anon_sym_DASH_GT, + ACTIONS(905), 1, + anon_sym_type, + STATE(339), 1, + sym_type_parameter, + STATE(365), 1, + sym_type_identifier, + [12257] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(777), 1, + anon_sym_method_id, + ACTIONS(808), 1, anon_sym_asm, - ACTIONS(789), 1, + STATE(299), 1, + sym_method_id, + ACTIONS(806), 2, + anon_sym_SEMI, anon_sym_LBRACE, - STATE(232), 1, - sym_asm_function_body, - STATE(233), 1, - sym_block_statement, - [12849] = 3, + [12274] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 2, - anon_sym_DASH_GT, + ACTIONS(907), 2, sym_identifier, - ACTIONS(972), 2, + sym_underscore, + ACTIONS(909), 3, anon_sym_COMMA, anon_sym_RPAREN, - [12861] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(974), 1, - anon_sym_SEMI, - ACTIONS(976), 1, - anon_sym_COMMA, - ACTIONS(175), 2, - anon_sym_DASH_GT, - sym_identifier, - [12875] = 4, + anon_sym_RBRACK, + [12287] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(978), 1, - sym_string_literal, - STATE(427), 1, - sym_number_literal, - ACTIONS(101), 2, + ACTIONS(911), 1, + anon_sym_RPAREN, + ACTIONS(901), 2, aux_sym_number_literal_token1, sym_number_string_literal, - [12889] = 5, + STATE(268), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12302] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(980), 1, - anon_sym_COMMA, - ACTIONS(982), 1, + ACTIONS(913), 1, anon_sym_RPAREN, - STATE(334), 1, - aux_sym_parameter_list_repeat1, - STATE(335), 1, - aux_sym_parameter_list_relaxed_repeat1, - [12905] = 5, + ACTIONS(901), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(278), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12317] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(984), 1, - sym_identifier, - ACTIONS(986), 1, - anon_sym_RPAREN, - ACTIONS(988), 1, + ACTIONS(69), 1, anon_sym_DASH_GT, - STATE(314), 1, - aux_sym_asm_function_body_repeat1, - [12921] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(904), 1, - sym_identifier, - ACTIONS(906), 1, - anon_sym_COMMA, - ACTIONS(910), 1, - anon_sym_RBRACK, - STATE(355), 1, - aux_sym_tensor_type_repeat1, - [12937] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, + ACTIONS(351), 2, sym_identifier, - ACTIONS(902), 1, - anon_sym_type, - STATE(394), 1, - sym_type_identifier, - STATE(413), 1, - sym_type_parameter, - [12953] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(990), 1, + sym_underscore, + ACTIONS(915), 2, anon_sym_COMMA, - STATE(310), 1, - aux_sym_tensor_type_repeat1, - ACTIONS(993), 2, anon_sym_RPAREN, - anon_sym_RBRACK, - [12967] = 3, + [12332] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(995), 2, + ACTIONS(71), 1, + anon_sym_DASH_GT, + ACTIONS(353), 2, sym_identifier, sym_underscore, - ACTIONS(997), 2, + ACTIONS(918), 2, anon_sym_COMMA, anon_sym_RPAREN, - [12979] = 4, + [12347] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(999), 1, - sym_identifier, - STATE(312), 1, - aux_sym_asm_function_body_repeat1, - ACTIONS(1002), 2, - anon_sym_RPAREN, - anon_sym_DASH_GT, - [12993] = 3, + ACTIONS(921), 2, + anon_sym_SEMI, + anon_sym_inline, + ACTIONS(923), 3, + sym_impure, + anon_sym_inline_ref, + anon_sym_method_id, + [12360] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1004), 2, + ACTIONS(921), 2, anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(1006), 2, + anon_sym_inline, + ACTIONS(923), 3, + sym_impure, + anon_sym_inline_ref, anon_sym_method_id, - anon_sym_asm, - [13005] = 5, + [12373] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(925), 1, + ACTIONS(911), 1, anon_sym_RPAREN, - ACTIONS(1008), 1, - sym_identifier, - ACTIONS(1010), 1, - anon_sym_DASH_GT, - STATE(312), 1, - aux_sym_asm_function_body_repeat1, - [13021] = 4, + ACTIONS(901), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + STATE(266), 2, + sym_number_literal, + aux_sym_asm_function_body_repeat2, + [12388] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1012), 1, - anon_sym_COMMA, - STATE(315), 1, - aux_sym_tensor_expression_repeat1, - ACTIONS(1015), 2, + ACTIONS(925), 1, + sym_string_literal, + STATE(401), 1, + sym_number_literal, + ACTIONS(384), 2, + aux_sym_number_literal_token1, + sym_number_string_literal, + [12402] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(927), 1, + sym_identifier, + STATE(280), 1, + aux_sym_asm_function_body_repeat1, + ACTIONS(930), 2, anon_sym_RPAREN, - anon_sym_RBRACK, - [13035] = 4, + anon_sym_DASH_GT, + [12416] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1017), 1, - anon_sym_SEMI, - ACTIONS(1019), 1, + ACTIONS(932), 1, anon_sym_COMMA, - STATE(346), 1, - aux_sym_constant_declarations_repeat1, - [13048] = 4, + ACTIONS(934), 1, + anon_sym_RPAREN, + STATE(297), 1, + aux_sym_parameter_list_relaxed_repeat1, + STATE(324), 1, + aux_sym_parameter_list_repeat1, + [12432] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(936), 2, + sym_identifier, + sym_underscore, + ACTIONS(938), 2, anon_sym_COMMA, - ACTIONS(1023), 1, anon_sym_RPAREN, - STATE(348), 1, - aux_sym_tensor_expression_repeat1, - [13061] = 2, + [12444] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1015), 3, + ACTIONS(940), 1, anon_sym_COMMA, + STATE(283), 1, + aux_sym_tensor_type_repeat1, + ACTIONS(943), 2, anon_sym_RPAREN, anon_sym_RBRACK, - [13070] = 4, + [12458] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1025), 1, - anon_sym_LPAREN, - STATE(243), 1, - sym_parameter_list, - STATE(248), 1, - sym_parameter_list_relaxed, - [13083] = 3, + ACTIONS(913), 1, + anon_sym_RPAREN, + ACTIONS(945), 1, + sym_identifier, + ACTIONS(947), 1, + anon_sym_DASH_GT, + STATE(280), 1, + aux_sym_asm_function_body_repeat1, + [12474] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1029), 1, - anon_sym_asm, - ACTIONS(1027), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [13094] = 4, + ACTIONS(949), 1, + sym_identifier, + ACTIONS(951), 1, + anon_sym_RPAREN, + ACTIONS(953), 1, + anon_sym_DASH_GT, + STATE(284), 1, + aux_sym_asm_function_body_repeat1, + [12490] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1031), 1, + ACTIONS(955), 1, + anon_sym_SEMI, + ACTIONS(957), 1, anon_sym_COMMA, - ACTIONS(1033), 1, + ACTIONS(69), 2, anon_sym_DASH_GT, - STATE(342), 1, - aux_sym_type_parameters_repeat1, - [13107] = 4, + sym_identifier, + [12504] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(959), 1, anon_sym_COMMA, - ACTIONS(1035), 1, + STATE(287), 1, + aux_sym_tuple_vars_declaration_repeat1, + ACTIONS(962), 2, + anon_sym_RPAREN, anon_sym_RBRACK, - STATE(349), 1, - aux_sym_tensor_expression_repeat1, - [13120] = 4, + [12518] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(617), 1, - anon_sym_RPAREN, - ACTIONS(1037), 1, - anon_sym_COMMA, - STATE(325), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13133] = 4, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(905), 1, + anon_sym_type, + STATE(363), 1, + sym_type_parameter, + STATE(365), 1, + sym_type_identifier, + [12534] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1039), 1, - anon_sym_SEMI, - ACTIONS(1041), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(966), 1, anon_sym_COMMA, - STATE(357), 1, - aux_sym_global_var_declarations_repeat1, - [13146] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(972), 1, + ACTIONS(968), 1, anon_sym_RPAREN, - ACTIONS(1043), 1, - anon_sym_COMMA, - STATE(325), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13159] = 4, + STATE(343), 1, + aux_sym_tensor_type_repeat1, + [12550] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1046), 1, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(966), 1, anon_sym_COMMA, - ACTIONS(1049), 1, + ACTIONS(970), 1, anon_sym_RBRACK, - STATE(326), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13172] = 4, + STATE(307), 1, + aux_sym_tensor_type_repeat1, + [12566] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1019), 1, - anon_sym_COMMA, - ACTIONS(1051), 1, - anon_sym_SEMI, - STATE(316), 1, - aux_sym_constant_declarations_repeat1, - [13185] = 4, + ACTIONS(779), 1, + anon_sym_asm, + ACTIONS(781), 1, + anon_sym_LBRACE, + STATE(236), 1, + sym_asm_function_body, + STATE(237), 1, + sym_block_statement, + [12582] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1053), 1, + ACTIONS(972), 2, anon_sym_SEMI, - ACTIONS(1055), 1, - sym_string_literal, - STATE(329), 1, - aux_sym_asm_function_body_repeat3, - [13198] = 4, + anon_sym_LBRACE, + ACTIONS(974), 2, + anon_sym_method_id, + anon_sym_asm, + [12594] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1057), 1, + ACTIONS(978), 1, + anon_sym_LPAREN, + ACTIONS(980), 1, + anon_sym_asm, + ACTIONS(976), 2, anon_sym_SEMI, - ACTIONS(1059), 1, - sym_string_literal, - STATE(329), 1, - aux_sym_asm_function_body_repeat3, - [13211] = 4, + anon_sym_LBRACE, + [12608] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, - anon_sym_COMMA, - ACTIONS(1062), 1, - anon_sym_RPAREN, - STATE(310), 1, - aux_sym_tensor_type_repeat1, - [13224] = 4, + ACTIONS(779), 1, + anon_sym_asm, + ACTIONS(781), 1, + anon_sym_LBRACE, + STATE(231), 1, + sym_asm_function_body, + STATE(232), 1, + sym_block_statement, + [12624] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(927), 1, + ACTIONS(982), 1, anon_sym_COMMA, - ACTIONS(929), 1, + STATE(295), 1, + aux_sym_tensor_expression_repeat1, + ACTIONS(985), 2, anon_sym_RPAREN, - STATE(323), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13237] = 4, + anon_sym_RBRACK, + [12638] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1066), 1, + ACTIONS(989), 1, anon_sym_RPAREN, - STATE(381), 1, - aux_sym_parameter_list_relaxed_repeat1, - [13250] = 4, + STATE(344), 1, + aux_sym_tensor_expression_repeat1, + [12651] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 1, + ACTIONS(991), 1, anon_sym_COMMA, - ACTIONS(1068), 1, + ACTIONS(993), 1, anon_sym_RPAREN, - STATE(381), 1, + STATE(349), 1, aux_sym_parameter_list_relaxed_repeat1, - [13263] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1070), 1, - anon_sym_COMMA, - ACTIONS(1072), 1, - anon_sym_RPAREN, - STATE(382), 1, - aux_sym_parameter_list_repeat1, - [13276] = 4, + [12664] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 1, - anon_sym_COMMA, - ACTIONS(1074), 1, - anon_sym_RPAREN, - STATE(381), 1, - aux_sym_parameter_list_relaxed_repeat1, - [13289] = 3, + ACTIONS(995), 1, + anon_sym_LPAREN, + STATE(239), 1, + sym_parameter_list, + STATE(244), 1, + sym_parameter_list_relaxed, + [12677] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(923), 1, + ACTIONS(897), 1, anon_sym_asm, - ACTIONS(921), 2, + ACTIONS(895), 2, anon_sym_SEMI, anon_sym_LBRACE, - [13300] = 4, + [12688] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(433), 1, + ACTIONS(966), 1, anon_sym_COMMA, - ACTIONS(435), 1, - anon_sym_RBRACK, - STATE(356), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13313] = 4, + ACTIONS(968), 1, + anon_sym_RPAREN, + STATE(343), 1, + aux_sym_tensor_type_repeat1, + [12701] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1076), 1, - anon_sym_LPAREN, - ACTIONS(1078), 1, + ACTIONS(997), 1, + anon_sym_SEMI, + ACTIONS(999), 1, sym_string_literal, - STATE(340), 1, + STATE(303), 1, aux_sym_asm_function_body_repeat3, - [13326] = 2, + [12714] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(213), 3, - anon_sym_RPAREN, - aux_sym_number_literal_token1, - sym_number_string_literal, - [13335] = 4, + ACTIONS(999), 1, + sym_string_literal, + ACTIONS(1001), 1, + anon_sym_SEMI, + STATE(303), 1, + aux_sym_asm_function_body_repeat3, + [12727] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1055), 1, - sym_string_literal, - ACTIONS(1080), 1, + ACTIONS(1003), 1, anon_sym_SEMI, - STATE(329), 1, + ACTIONS(1005), 1, + sym_string_literal, + STATE(303), 1, aux_sym_asm_function_body_repeat3, - [13348] = 4, + [12740] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1082), 1, + ACTIONS(1008), 1, anon_sym_RBRACK, - STATE(344), 1, - aux_sym_tensor_type_repeat1, - [13361] = 4, + STATE(320), 1, + aux_sym_tensor_expression_repeat1, + [12753] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1031), 1, + ACTIONS(1010), 1, anon_sym_COMMA, - ACTIONS(1084), 1, + ACTIONS(1012), 1, anon_sym_DASH_GT, - STATE(380), 1, + STATE(311), 1, aux_sym_type_parameters_repeat1, - [13374] = 4, + [12766] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1055), 1, - sym_string_literal, - ACTIONS(1086), 1, - anon_sym_SEMI, - STATE(329), 1, - aux_sym_asm_function_body_repeat3, - [13387] = 4, + ACTIONS(962), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + [12775] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, + ACTIONS(966), 1, anon_sym_COMMA, - ACTIONS(1088), 1, + ACTIONS(1014), 1, anon_sym_RBRACK, - STATE(310), 1, + STATE(283), 1, aux_sym_tensor_type_repeat1, - [13400] = 4, + [12788] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1025), 1, + ACTIONS(995), 1, anon_sym_LPAREN, - STATE(240), 1, + STATE(243), 1, sym_parameter_list, - STATE(246), 1, + STATE(245), 1, sym_parameter_list_relaxed, - [13413] = 4, + [12801] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1090), 1, - anon_sym_SEMI, - ACTIONS(1092), 1, + ACTIONS(1016), 1, + anon_sym_LPAREN, + ACTIONS(1018), 1, + sym_string_literal, + STATE(302), 1, + aux_sym_asm_function_body_repeat3, + [12814] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, anon_sym_COMMA, - STATE(346), 1, - aux_sym_constant_declarations_repeat1, - [13426] = 3, + ACTIONS(970), 1, + anon_sym_RBRACK, + STATE(307), 1, + aux_sym_tensor_type_repeat1, + [12827] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1020), 1, + anon_sym_COMMA, + ACTIONS(1023), 1, + anon_sym_DASH_GT, + STATE(311), 1, + aux_sym_type_parameters_repeat1, + [12840] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(805), 1, + ACTIONS(1027), 1, anon_sym_asm, - ACTIONS(803), 2, + ACTIONS(1025), 2, anon_sym_SEMI, anon_sym_LBRACE, - [13437] = 4, + [12851] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(1029), 1, + anon_sym_SEMI, + ACTIONS(1031), 1, anon_sym_COMMA, - ACTIONS(1095), 1, - anon_sym_RPAREN, - STATE(315), 1, - aux_sym_tensor_expression_repeat1, - [13450] = 4, + STATE(322), 1, + aux_sym_global_var_declarations_repeat1, + [12864] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1097), 1, - anon_sym_RBRACK, - STATE(315), 1, + ACTIONS(1033), 1, + anon_sym_RPAREN, + STATE(295), 1, aux_sym_tensor_expression_repeat1, - [13463] = 4, + [12877] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1055), 1, + ACTIONS(999), 1, sym_string_literal, - ACTIONS(1099), 1, + ACTIONS(1035), 1, anon_sym_SEMI, - STATE(329), 1, + STATE(303), 1, aux_sym_asm_function_body_repeat3, - [13476] = 4, - ACTIONS(814), 1, + [12890] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(808), 1, + anon_sym_asm, + ACTIONS(806), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + [12901] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1037), 1, + anon_sym_COMMA, + ACTIONS(1039), 1, + anon_sym_RPAREN, + STATE(287), 1, + aux_sym_tuple_vars_declaration_repeat1, + [12914] = 4, + ACTIONS(804), 1, sym_comment, - ACTIONS(878), 1, + ACTIONS(864), 1, anon_sym_SPACE, - ACTIONS(1101), 1, + ACTIONS(1041), 1, sym_version_identifier, - STATE(247), 1, + STATE(246), 1, aux_sym_import_directive_repeat1, - [13489] = 4, + [12927] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, - anon_sym_COMMA, - ACTIONS(950), 1, + ACTIONS(277), 3, anon_sym_RPAREN, - STATE(354), 1, - aux_sym_tensor_type_repeat1, - [13502] = 4, + aux_sym_number_literal_token1, + sym_number_string_literal, + [12936] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(910), 1, + ACTIONS(1043), 1, anon_sym_RBRACK, - STATE(355), 1, - aux_sym_tensor_type_repeat1, - [13515] = 4, + STATE(295), 1, + aux_sym_tensor_expression_repeat1, + [12949] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, - anon_sym_COMMA, - ACTIONS(1103), 1, - anon_sym_RPAREN, - STATE(310), 1, - aux_sym_tensor_type_repeat1, - [13528] = 4, + ACTIONS(999), 1, + sym_string_literal, + ACTIONS(1045), 1, + anon_sym_SEMI, + STATE(303), 1, + aux_sym_asm_function_body_repeat3, + [12962] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, + ACTIONS(1047), 1, + anon_sym_SEMI, + ACTIONS(1049), 1, anon_sym_COMMA, - ACTIONS(1105), 1, - anon_sym_RBRACK, - STATE(310), 1, - aux_sym_tensor_type_repeat1, - [13541] = 4, + STATE(322), 1, + aux_sym_global_var_declarations_repeat1, + [12975] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(651), 1, - anon_sym_RBRACK, - ACTIONS(1107), 1, + ACTIONS(1052), 1, anon_sym_COMMA, - STATE(326), 1, + ACTIONS(1054), 1, + anon_sym_RBRACK, + STATE(287), 1, aux_sym_tuple_vars_declaration_repeat1, - [13554] = 4, + [12988] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1109), 1, - anon_sym_SEMI, - ACTIONS(1111), 1, + ACTIONS(1056), 1, anon_sym_COMMA, - STATE(357), 1, - aux_sym_global_var_declarations_repeat1, - [13567] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1116), 1, - anon_sym_asm, - ACTIONS(1114), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - [13578] = 4, - ACTIONS(814), 1, + ACTIONS(1058), 1, + anon_sym_RPAREN, + STATE(353), 1, + aux_sym_parameter_list_repeat1, + [13001] = 4, + ACTIONS(804), 1, sym_comment, - ACTIONS(878), 1, + ACTIONS(864), 1, anon_sym_SPACE, - ACTIONS(1118), 1, + ACTIONS(1060), 1, sym_string_literal, - STATE(247), 1, + STATE(246), 1, aux_sym_import_directive_repeat1, - [13591] = 4, + [13014] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(415), 1, anon_sym_COMMA, - ACTIONS(1120), 1, + ACTIONS(417), 1, anon_sym_RPAREN, - STATE(364), 1, + STATE(317), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13027] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(987), 1, + anon_sym_COMMA, + ACTIONS(1062), 1, + anon_sym_RPAREN, + STATE(331), 1, aux_sym_tensor_expression_repeat1, - [13604] = 4, + [13040] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(393), 1, anon_sym_COMMA, - ACTIONS(1122), 1, + ACTIONS(395), 1, anon_sym_RBRACK, - STATE(365), 1, - aux_sym_tensor_expression_repeat1, - [13617] = 4, + STATE(323), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13053] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1055), 1, - sym_string_literal, - ACTIONS(1124), 1, - anon_sym_SEMI, - STATE(329), 1, - aux_sym_asm_function_body_repeat3, - [13630] = 4, + ACTIONS(987), 1, + anon_sym_COMMA, + ACTIONS(1064), 1, + anon_sym_RBRACK, + STATE(333), 1, + aux_sym_tensor_expression_repeat1, + [13066] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1041), 1, + ACTIONS(1031), 1, anon_sym_COMMA, - ACTIONS(1126), 1, + ACTIONS(1066), 1, anon_sym_SEMI, - STATE(324), 1, + STATE(313), 1, aux_sym_global_var_declarations_repeat1, - [13643] = 4, + [13079] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(987), 1, + anon_sym_COMMA, + ACTIONS(1068), 1, + anon_sym_RPAREN, + STATE(295), 1, + aux_sym_tensor_expression_repeat1, + [13092] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(1070), 1, anon_sym_COMMA, - ACTIONS(1128), 1, + ACTIONS(1072), 1, anon_sym_RPAREN, - STATE(315), 1, - aux_sym_tensor_expression_repeat1, - [13656] = 4, + STATE(287), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13105] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1130), 1, + ACTIONS(1074), 1, anon_sym_RBRACK, - STATE(315), 1, + STATE(295), 1, aux_sym_tensor_expression_repeat1, - [13669] = 4, + [13118] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(653), 1, - anon_sym_RBRACK, - ACTIONS(1132), 1, + ACTIONS(1076), 1, + anon_sym_EQ, + ACTIONS(69), 2, + anon_sym_DASH_GT, + sym_identifier, + [13129] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1078), 1, anon_sym_COMMA, - STATE(326), 1, + ACTIONS(1080), 1, + anon_sym_RBRACK, + STATE(287), 1, aux_sym_tuple_vars_declaration_repeat1, - [13682] = 4, + [13142] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(933), 1, + ACTIONS(1082), 1, + anon_sym_SEMI, + ACTIONS(1084), 1, anon_sym_COMMA, - ACTIONS(935), 1, - anon_sym_RPAREN, - STATE(368), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13695] = 4, + STATE(354), 1, + aux_sym_constant_declarations_repeat1, + [13155] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(625), 1, - anon_sym_RPAREN, - ACTIONS(1134), 1, + ACTIONS(999), 1, + sym_string_literal, + ACTIONS(1086), 1, + anon_sym_SEMI, + STATE(303), 1, + aux_sym_asm_function_body_repeat3, + [13168] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 1, + anon_sym_SEMI, + ACTIONS(1090), 1, anon_sym_COMMA, - STATE(325), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13708] = 3, + STATE(338), 1, + aux_sym_constant_declarations_repeat1, + [13181] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1136), 1, - anon_sym_EQ, - ACTIONS(175), 2, + ACTIONS(1010), 1, + anon_sym_COMMA, + ACTIONS(1093), 1, anon_sym_DASH_GT, - sym_identifier, - [13719] = 4, + STATE(305), 1, + aux_sym_type_parameters_repeat1, + [13194] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(937), 1, - anon_sym_COMMA, - ACTIONS(939), 1, - anon_sym_RPAREN, - STATE(383), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13732] = 4, + ACTIONS(1097), 1, + anon_sym_asm, + ACTIONS(1095), 2, + anon_sym_SEMI, + anon_sym_LBRACE, + [13205] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(985), 3, anon_sym_COMMA, - ACTIONS(1138), 1, anon_sym_RPAREN, - STATE(374), 1, - aux_sym_tensor_expression_repeat1, - [13745] = 4, + anon_sym_RBRACK, + [13214] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1140), 1, + ACTIONS(1099), 1, anon_sym_RBRACK, - STATE(375), 1, + STATE(346), 1, aux_sym_tensor_expression_repeat1, - [13758] = 2, + [13227] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(993), 3, + ACTIONS(966), 1, anon_sym_COMMA, + ACTIONS(1101), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - [13767] = 4, + STATE(283), 1, + aux_sym_tensor_type_repeat1, + [13240] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1142), 1, + ACTIONS(1103), 1, anon_sym_RPAREN, - STATE(315), 1, + STATE(295), 1, aux_sym_tensor_expression_repeat1, - [13780] = 4, + [13253] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1105), 1, + anon_sym_COMMA, + ACTIONS(1107), 1, + anon_sym_RPAREN, + STATE(287), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13266] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1021), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1144), 1, + ACTIONS(1109), 1, anon_sym_RBRACK, - STATE(315), 1, + STATE(295), 1, aux_sym_tensor_expression_repeat1, - [13793] = 4, + [13279] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(655), 1, - anon_sym_RBRACK, - ACTIONS(1146), 1, + ACTIONS(943), 3, anon_sym_COMMA, - STATE(326), 1, - aux_sym_tuple_vars_declaration_repeat1, - [13806] = 4, + anon_sym_RPAREN, + anon_sym_RBRACK, + [13288] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(1111), 1, anon_sym_COMMA, - ACTIONS(948), 1, - anon_sym_RPAREN, - STATE(379), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13819] = 4, + ACTIONS(1113), 1, + anon_sym_RBRACK, + STATE(287), 1, + aux_sym_tuple_vars_declaration_repeat1, + [13301] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(906), 1, + ACTIONS(1115), 1, anon_sym_COMMA, - ACTIONS(1148), 1, + ACTIONS(1118), 1, anon_sym_RPAREN, - STATE(330), 1, - aux_sym_tensor_type_repeat1, - [13832] = 4, + STATE(349), 1, + aux_sym_parameter_list_relaxed_repeat1, + [13314] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(623), 1, - anon_sym_RPAREN, - ACTIONS(1150), 1, + ACTIONS(991), 1, anon_sym_COMMA, - STATE(325), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13845] = 4, + ACTIONS(1120), 1, + anon_sym_RPAREN, + STATE(349), 1, + aux_sym_parameter_list_relaxed_repeat1, + [13327] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1152), 1, + ACTIONS(991), 1, anon_sym_COMMA, - ACTIONS(1155), 1, - anon_sym_DASH_GT, - STATE(380), 1, - aux_sym_type_parameters_repeat1, - [13858] = 4, + ACTIONS(1122), 1, + anon_sym_RPAREN, + STATE(349), 1, + aux_sym_parameter_list_relaxed_repeat1, + [13340] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1157), 1, + ACTIONS(987), 1, anon_sym_COMMA, - ACTIONS(1160), 1, + ACTIONS(1124), 1, anon_sym_RPAREN, - STATE(381), 1, - aux_sym_parameter_list_relaxed_repeat1, - [13871] = 4, + STATE(314), 1, + aux_sym_tensor_expression_repeat1, + [13353] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1162), 1, + ACTIONS(1126), 1, anon_sym_COMMA, - ACTIONS(1165), 1, + ACTIONS(1129), 1, anon_sym_RPAREN, - STATE(382), 1, + STATE(353), 1, aux_sym_parameter_list_repeat1, - [13884] = 4, + [13366] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(621), 1, - anon_sym_RPAREN, - ACTIONS(1167), 1, + ACTIONS(1084), 1, anon_sym_COMMA, - STATE(325), 1, - aux_sym_nested_tensor_declaration_repeat1, - [13897] = 3, + ACTIONS(1131), 1, + anon_sym_SEMI, + STATE(338), 1, + aux_sym_constant_declarations_repeat1, + [13379] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1169), 1, + ACTIONS(1133), 1, anon_sym_SEMI, - ACTIONS(1171), 1, + ACTIONS(1135), 1, anon_sym_COMMA, - [13907] = 3, + [13389] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(73), 1, - anon_sym_LBRACE, - STATE(165), 1, - sym_block_statement, - [13917] = 2, + ACTIONS(1137), 1, + sym_identifier, + STATE(358), 1, + sym_type_identifier, + [13399] = 3, + ACTIONS(804), 1, + sym_comment, + ACTIONS(1139), 1, + anon_sym_SPACE, + STATE(325), 1, + aux_sym_import_directive_repeat1, + [13409] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1173), 2, + ACTIONS(1141), 2, anon_sym_COMMA, - anon_sym_RPAREN, - [13925] = 3, - ACTIONS(814), 1, + anon_sym_DASH_GT, + [13417] = 3, + ACTIONS(804), 1, sym_comment, - ACTIONS(1175), 1, + ACTIONS(1143), 1, anon_sym_SPACE, - STATE(359), 1, + STATE(259), 1, aux_sym_import_directive_repeat1, - [13935] = 3, + [13427] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1109), 1, - anon_sym_SEMI, - ACTIONS(1177), 1, - anon_sym_COMMA, - [13945] = 2, + ACTIONS(103), 1, + anon_sym_LBRACE, + STATE(178), 1, + sym_block_statement, + [13437] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1165), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [13953] = 2, + ACTIONS(103), 1, + anon_sym_LBRACE, + STATE(172), 1, + sym_block_statement, + [13447] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1179), 2, + ACTIONS(1145), 2, anon_sym_COMMA, anon_sym_RPAREN, - [13961] = 2, + [13455] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1181), 2, + ACTIONS(1023), 2, anon_sym_COMMA, - anon_sym_RPAREN, - [13969] = 3, - ACTIONS(814), 1, + anon_sym_DASH_GT, + [13463] = 3, + ACTIONS(804), 1, sym_comment, - ACTIONS(1183), 1, + ACTIONS(1147), 1, anon_sym_SPACE, - STATE(263), 1, + STATE(318), 1, aux_sym_import_directive_repeat1, - [13979] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1185), 1, - sym_identifier, - ACTIONS(1187), 1, - anon_sym_LPAREN, - [13989] = 2, + [13473] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1189), 2, + ACTIONS(1149), 2, anon_sym_COMMA, anon_sym_DASH_GT, - [13997] = 3, + [13481] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1191), 1, - sym_string_literal, - STATE(328), 1, - aux_sym_asm_function_body_repeat3, - [14007] = 3, - ACTIONS(814), 1, - sym_comment, - ACTIONS(1193), 1, - anon_sym_SPACE, - STATE(351), 1, - aux_sym_import_directive_repeat1, - [14017] = 3, + ACTIONS(1151), 1, + anon_sym_SEMI, + ACTIONS(1153), 1, + anon_sym_COMMA, + [13491] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1195), 1, + ACTIONS(1155), 1, sym_string_literal, - STATE(343), 1, + STATE(337), 1, aux_sym_asm_function_body_repeat3, - [14027] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(73), 1, - anon_sym_LBRACE, - STATE(168), 1, - sym_block_statement, - [14037] = 3, + [13501] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1197), 1, + ACTIONS(1157), 1, anon_sym_SEMI, - ACTIONS(1199), 1, + ACTIONS(1159), 1, anon_sym_COMMA, - [14047] = 2, + [13511] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1201), 2, + ACTIONS(1129), 2, anon_sym_COMMA, - anon_sym_DASH_GT, - [14055] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(73), 1, - anon_sym_LBRACE, - STATE(158), 1, - sym_block_statement, - [14065] = 3, + anon_sym_RPAREN, + [13519] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1090), 1, + ACTIONS(1088), 1, anon_sym_SEMI, - ACTIONS(1203), 1, + ACTIONS(1161), 1, anon_sym_COMMA, - [14075] = 3, + [13529] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1205), 1, - anon_sym_SEMI, - ACTIONS(1207), 1, - anon_sym_COMMA, - [14085] = 3, + ACTIONS(1163), 1, + sym_string_literal, + STATE(301), 1, + aux_sym_asm_function_body_repeat3, + [13539] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(789), 1, + ACTIONS(781), 1, anon_sym_LBRACE, - STATE(429), 1, + STATE(389), 1, sym_block_statement, - [14095] = 3, + [13549] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(73), 1, + ACTIONS(781), 1, anon_sym_LBRACE, - STATE(166), 1, + STATE(379), 1, sym_block_statement, - [14105] = 3, + [13559] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(789), 1, + ACTIONS(103), 1, anon_sym_LBRACE, - STATE(411), 1, + STATE(165), 1, sym_block_statement, - [14115] = 3, + [13569] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1209), 1, - sym_identifier, - ACTIONS(1211), 1, - anon_sym_LPAREN, - [14125] = 3, + ACTIONS(1165), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [13577] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(73), 1, + ACTIONS(103), 1, anon_sym_LBRACE, - STATE(162), 1, + STATE(179), 1, sym_block_statement, - [14135] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1213), 1, - sym_string_literal, - STATE(350), 1, - aux_sym_asm_function_body_repeat3, - [14145] = 2, + [13587] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1049), 2, + ACTIONS(1167), 1, + anon_sym_SEMI, + ACTIONS(1169), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [14153] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1215), 1, - anon_sym_catch, - STATE(171), 1, - sym_catch_clause, - [14163] = 3, + [13597] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1217), 1, + ACTIONS(1171), 1, sym_string_literal, - STATE(362), 1, + STATE(315), 1, aux_sym_asm_function_body_repeat3, - [14173] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1155), 2, - anon_sym_COMMA, - anon_sym_DASH_GT, - [14181] = 2, + [13607] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(972), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [14189] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1219), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [14197] = 2, + ACTIONS(1173), 1, + anon_sym_catch, + STATE(169), 1, + sym_catch_clause, + [13617] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1221), 2, + ACTIONS(1175), 2, anon_sym_COMMA, anon_sym_RPAREN, - [14205] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(904), 1, - sym_identifier, - ACTIONS(908), 1, - anon_sym_LPAREN, - [14215] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1223), 1, - sym_identifier, - STATE(400), 1, - sym_type_identifier, - [14225] = 2, + [13625] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1225), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [14233] = 3, + ACTIONS(1178), 1, + sym_string_literal, + STATE(321), 1, + aux_sym_asm_function_body_repeat3, + [13635] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1228), 1, + ACTIONS(1047), 1, anon_sym_SEMI, - ACTIONS(1230), 1, + ACTIONS(1180), 1, anon_sym_COMMA, - [14243] = 2, + [13645] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1232), 1, - anon_sym_QMARK, - [14250] = 2, + ACTIONS(103), 1, + anon_sym_LBRACE, + STATE(175), 1, + sym_block_statement, + [13655] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1234), 1, + ACTIONS(1182), 1, sym_identifier, - [14257] = 2, + [13662] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1236), 1, - anon_sym_SEMI, - [14264] = 2, + ACTIONS(1184), 1, + sym_identifier, + [13669] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1238), 1, - anon_sym_SEMI, - [14271] = 2, + ACTIONS(1186), 1, + sym_identifier, + [13676] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1240), 1, + ACTIONS(1188), 1, sym_identifier, - [14278] = 2, + [13683] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1242), 1, - sym_function_name, - [14285] = 2, + ACTIONS(1190), 1, + anon_sym_EQ, + [13690] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1244), 1, - anon_sym_RPAREN, - [14292] = 2, + ACTIONS(1192), 1, + anon_sym_until, + [13697] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1246), 1, + ACTIONS(964), 1, sym_identifier, - [14299] = 2, + [13704] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1248), 1, - anon_sym_until, - [14306] = 2, + ACTIONS(1194), 1, + sym_identifier, + [13711] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1250), 1, + ACTIONS(1196), 1, anon_sym_COLON, - [14313] = 2, + [13718] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1252), 1, - ts_builtin_sym_end, - [14320] = 2, + ACTIONS(1198), 1, + anon_sym_SEMI, + [13725] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1254), 1, - sym_function_name, - [14327] = 2, + ACTIONS(1200), 1, + anon_sym_SEMI, + [13732] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(904), 1, + ACTIONS(1202), 1, sym_identifier, - [14334] = 2, + [13739] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1256), 1, - anon_sym_SEMI, - [14341] = 2, + ACTIONS(1204), 1, + sym_identifier, + [13746] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1258), 1, + ACTIONS(1206), 1, anon_sym_COLON, - [14348] = 2, + [13753] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1260), 1, - sym_identifier, - [14355] = 2, + ACTIONS(1208), 1, + anon_sym_SEMI, + [13760] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1262), 1, - anon_sym_SEMI, - [14362] = 2, + ACTIONS(1210), 1, + ts_builtin_sym_end, + [13767] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1264), 1, - anon_sym_EQ, - [14369] = 2, + ACTIONS(1212), 1, + sym_identifier, + [13774] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1266), 1, - anon_sym_QMARK, + ACTIONS(1214), 1, + anon_sym_RPAREN, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(36)] = 0, - [SMALL_STATE(37)] = 72, - [SMALL_STATE(38)] = 144, - [SMALL_STATE(39)] = 216, - [SMALL_STATE(40)] = 288, - [SMALL_STATE(41)] = 356, - [SMALL_STATE(42)] = 428, - [SMALL_STATE(43)] = 495, - [SMALL_STATE(44)] = 564, - [SMALL_STATE(45)] = 633, - [SMALL_STATE(46)] = 702, - [SMALL_STATE(47)] = 771, - [SMALL_STATE(48)] = 840, - [SMALL_STATE(49)] = 909, - [SMALL_STATE(50)] = 974, - [SMALL_STATE(51)] = 1039, - [SMALL_STATE(52)] = 1106, - [SMALL_STATE(53)] = 1173, - [SMALL_STATE(54)] = 1236, - [SMALL_STATE(55)] = 1299, - [SMALL_STATE(56)] = 1364, - [SMALL_STATE(57)] = 1429, - [SMALL_STATE(58)] = 1489, - [SMALL_STATE(59)] = 1553, - [SMALL_STATE(60)] = 1613, - [SMALL_STATE(61)] = 1673, - [SMALL_STATE(62)] = 1733, - [SMALL_STATE(63)] = 1799, - [SMALL_STATE(64)] = 1859, - [SMALL_STATE(65)] = 1919, - [SMALL_STATE(66)] = 1979, - [SMALL_STATE(67)] = 2039, - [SMALL_STATE(68)] = 2099, - [SMALL_STATE(69)] = 2165, - [SMALL_STATE(70)] = 2225, - [SMALL_STATE(71)] = 2285, - [SMALL_STATE(72)] = 2345, - [SMALL_STATE(73)] = 2411, - [SMALL_STATE(74)] = 2471, - [SMALL_STATE(75)] = 2531, - [SMALL_STATE(76)] = 2640, - [SMALL_STATE(77)] = 2746, - [SMALL_STATE(78)] = 2854, - [SMALL_STATE(79)] = 2912, - [SMALL_STATE(80)] = 3018, - [SMALL_STATE(81)] = 3126, - [SMALL_STATE(82)] = 3184, - [SMALL_STATE(83)] = 3242, - [SMALL_STATE(84)] = 3306, - [SMALL_STATE(85)] = 3370, - [SMALL_STATE(86)] = 3428, - [SMALL_STATE(87)] = 3486, - [SMALL_STATE(88)] = 3544, - [SMALL_STATE(89)] = 3602, - [SMALL_STATE(90)] = 3660, - [SMALL_STATE(91)] = 3718, - [SMALL_STATE(92)] = 3776, - [SMALL_STATE(93)] = 3834, - [SMALL_STATE(94)] = 3892, - [SMALL_STATE(95)] = 3950, - [SMALL_STATE(96)] = 4056, - [SMALL_STATE(97)] = 4162, - [SMALL_STATE(98)] = 4268, - [SMALL_STATE(99)] = 4376, - [SMALL_STATE(100)] = 4482, - [SMALL_STATE(101)] = 4588, - [SMALL_STATE(102)] = 4694, - [SMALL_STATE(103)] = 4800, - [SMALL_STATE(104)] = 4908, - [SMALL_STATE(105)] = 5014, - [SMALL_STATE(106)] = 5072, - [SMALL_STATE(107)] = 5175, - [SMALL_STATE(108)] = 5238, - [SMALL_STATE(109)] = 5341, - [SMALL_STATE(110)] = 5444, - [SMALL_STATE(111)] = 5545, - [SMALL_STATE(112)] = 5608, - [SMALL_STATE(113)] = 5709, - [SMALL_STATE(114)] = 5812, - [SMALL_STATE(115)] = 5915, - [SMALL_STATE(116)] = 5978, - [SMALL_STATE(117)] = 6037, - [SMALL_STATE(118)] = 6140, - [SMALL_STATE(119)] = 6203, - [SMALL_STATE(120)] = 6306, - [SMALL_STATE(121)] = 6369, - [SMALL_STATE(122)] = 6432, - [SMALL_STATE(123)] = 6489, - [SMALL_STATE(124)] = 6545, - [SMALL_STATE(125)] = 6645, - [SMALL_STATE(126)] = 6701, - [SMALL_STATE(127)] = 6757, - [SMALL_STATE(128)] = 6859, - [SMALL_STATE(129)] = 6915, - [SMALL_STATE(130)] = 7015, - [SMALL_STATE(131)] = 7069, - [SMALL_STATE(132)] = 7123, - [SMALL_STATE(133)] = 7210, - [SMALL_STATE(134)] = 7299, - [SMALL_STATE(135)] = 7383, - [SMALL_STATE(136)] = 7469, - [SMALL_STATE(137)] = 7547, - [SMALL_STATE(138)] = 7599, - [SMALL_STATE(139)] = 7651, - [SMALL_STATE(140)] = 7703, - [SMALL_STATE(141)] = 7755, - [SMALL_STATE(142)] = 7835, - [SMALL_STATE(143)] = 7887, - [SMALL_STATE(144)] = 7965, - [SMALL_STATE(145)] = 8045, - [SMALL_STATE(146)] = 8120, - [SMALL_STATE(147)] = 8167, - [SMALL_STATE(148)] = 8244, - [SMALL_STATE(149)] = 8315, - [SMALL_STATE(150)] = 8388, - [SMALL_STATE(151)] = 8436, - [SMALL_STATE(152)] = 8484, - [SMALL_STATE(153)] = 8532, - [SMALL_STATE(154)] = 8605, - [SMALL_STATE(155)] = 8678, - [SMALL_STATE(156)] = 8744, - [SMALL_STATE(157)] = 8810, - [SMALL_STATE(158)] = 8853, - [SMALL_STATE(159)] = 8895, - [SMALL_STATE(160)] = 8933, - [SMALL_STATE(161)] = 8971, - [SMALL_STATE(162)] = 9006, - [SMALL_STATE(163)] = 9041, - [SMALL_STATE(164)] = 9076, - [SMALL_STATE(165)] = 9111, - [SMALL_STATE(166)] = 9146, - [SMALL_STATE(167)] = 9181, - [SMALL_STATE(168)] = 9216, - [SMALL_STATE(169)] = 9251, - [SMALL_STATE(170)] = 9286, - [SMALL_STATE(171)] = 9321, - [SMALL_STATE(172)] = 9356, - [SMALL_STATE(173)] = 9391, - [SMALL_STATE(174)] = 9426, - [SMALL_STATE(175)] = 9473, - [SMALL_STATE(176)] = 9506, - [SMALL_STATE(177)] = 9553, - [SMALL_STATE(178)] = 9600, - [SMALL_STATE(179)] = 9647, - [SMALL_STATE(180)] = 9694, - [SMALL_STATE(181)] = 9741, - [SMALL_STATE(182)] = 9788, - [SMALL_STATE(183)] = 9835, - [SMALL_STATE(184)] = 9882, - [SMALL_STATE(185)] = 9926, - [SMALL_STATE(186)] = 9970, - [SMALL_STATE(187)] = 10014, - [SMALL_STATE(188)] = 10058, - [SMALL_STATE(189)] = 10103, - [SMALL_STATE(190)] = 10148, - [SMALL_STATE(191)] = 10193, - [SMALL_STATE(192)] = 10238, - [SMALL_STATE(193)] = 10283, - [SMALL_STATE(194)] = 10328, - [SMALL_STATE(195)] = 10373, - [SMALL_STATE(196)] = 10418, - [SMALL_STATE(197)] = 10460, - [SMALL_STATE(198)] = 10488, - [SMALL_STATE(199)] = 10530, - [SMALL_STATE(200)] = 10572, - [SMALL_STATE(201)] = 10614, - [SMALL_STATE(202)] = 10656, - [SMALL_STATE(203)] = 10698, - [SMALL_STATE(204)] = 10726, - [SMALL_STATE(205)] = 10768, - [SMALL_STATE(206)] = 10810, - [SMALL_STATE(207)] = 10852, - [SMALL_STATE(208)] = 10894, - [SMALL_STATE(209)] = 10936, - [SMALL_STATE(210)] = 10978, - [SMALL_STATE(211)] = 11017, - [SMALL_STATE(212)] = 11056, - [SMALL_STATE(213)] = 11095, - [SMALL_STATE(214)] = 11134, - [SMALL_STATE(215)] = 11160, - [SMALL_STATE(216)] = 11186, - [SMALL_STATE(217)] = 11212, - [SMALL_STATE(218)] = 11238, - [SMALL_STATE(219)] = 11264, - [SMALL_STATE(220)] = 11290, - [SMALL_STATE(221)] = 11316, - [SMALL_STATE(222)] = 11342, - [SMALL_STATE(223)] = 11368, - [SMALL_STATE(224)] = 11394, - [SMALL_STATE(225)] = 11420, - [SMALL_STATE(226)] = 11448, - [SMALL_STATE(227)] = 11474, - [SMALL_STATE(228)] = 11500, - [SMALL_STATE(229)] = 11526, - [SMALL_STATE(230)] = 11552, - [SMALL_STATE(231)] = 11578, - [SMALL_STATE(232)] = 11604, - [SMALL_STATE(233)] = 11630, - [SMALL_STATE(234)] = 11656, - [SMALL_STATE(235)] = 11682, - [SMALL_STATE(236)] = 11708, - [SMALL_STATE(237)] = 11734, - [SMALL_STATE(238)] = 11760, - [SMALL_STATE(239)] = 11786, - [SMALL_STATE(240)] = 11812, - [SMALL_STATE(241)] = 11849, - [SMALL_STATE(242)] = 11868, - [SMALL_STATE(243)] = 11887, - [SMALL_STATE(244)] = 11924, - [SMALL_STATE(245)] = 11943, - [SMALL_STATE(246)] = 11969, - [SMALL_STATE(247)] = 11997, - [SMALL_STATE(248)] = 12015, - [SMALL_STATE(249)] = 12043, - [SMALL_STATE(250)] = 12064, - [SMALL_STATE(251)] = 12079, - [SMALL_STATE(252)] = 12094, - [SMALL_STATE(253)] = 12109, - [SMALL_STATE(254)] = 12124, - [SMALL_STATE(255)] = 12139, - [SMALL_STATE(256)] = 12154, - [SMALL_STATE(257)] = 12175, - [SMALL_STATE(258)] = 12192, - [SMALL_STATE(259)] = 12207, - [SMALL_STATE(260)] = 12222, - [SMALL_STATE(261)] = 12237, - [SMALL_STATE(262)] = 12257, - [SMALL_STATE(263)] = 12271, - [SMALL_STATE(264)] = 12289, - [SMALL_STATE(265)] = 12309, - [SMALL_STATE(266)] = 12323, - [SMALL_STATE(267)] = 12336, - [SMALL_STATE(268)] = 12351, - [SMALL_STATE(269)] = 12370, - [SMALL_STATE(270)] = 12381, - [SMALL_STATE(271)] = 12400, - [SMALL_STATE(272)] = 12411, - [SMALL_STATE(273)] = 12422, - [SMALL_STATE(274)] = 12433, - [SMALL_STATE(275)] = 12448, - [SMALL_STATE(276)] = 12465, - [SMALL_STATE(277)] = 12476, - [SMALL_STATE(278)] = 12491, - [SMALL_STATE(279)] = 12504, - [SMALL_STATE(280)] = 12517, - [SMALL_STATE(281)] = 12528, - [SMALL_STATE(282)] = 12545, - [SMALL_STATE(283)] = 12556, - [SMALL_STATE(284)] = 12567, - [SMALL_STATE(285)] = 12578, - [SMALL_STATE(286)] = 12593, - [SMALL_STATE(287)] = 12610, - [SMALL_STATE(288)] = 12623, - [SMALL_STATE(289)] = 12640, - [SMALL_STATE(290)] = 12657, - [SMALL_STATE(291)] = 12672, - [SMALL_STATE(292)] = 12689, - [SMALL_STATE(293)] = 12708, - [SMALL_STATE(294)] = 12723, - [SMALL_STATE(295)] = 12738, - [SMALL_STATE(296)] = 12751, - [SMALL_STATE(297)] = 12764, - [SMALL_STATE(298)] = 12777, - [SMALL_STATE(299)] = 12791, - [SMALL_STATE(300)] = 12801, - [SMALL_STATE(301)] = 12817, - [SMALL_STATE(302)] = 12833, - [SMALL_STATE(303)] = 12849, - [SMALL_STATE(304)] = 12861, - [SMALL_STATE(305)] = 12875, - [SMALL_STATE(306)] = 12889, - [SMALL_STATE(307)] = 12905, - [SMALL_STATE(308)] = 12921, - [SMALL_STATE(309)] = 12937, - [SMALL_STATE(310)] = 12953, - [SMALL_STATE(311)] = 12967, - [SMALL_STATE(312)] = 12979, - [SMALL_STATE(313)] = 12993, - [SMALL_STATE(314)] = 13005, - [SMALL_STATE(315)] = 13021, - [SMALL_STATE(316)] = 13035, - [SMALL_STATE(317)] = 13048, - [SMALL_STATE(318)] = 13061, - [SMALL_STATE(319)] = 13070, - [SMALL_STATE(320)] = 13083, - [SMALL_STATE(321)] = 13094, - [SMALL_STATE(322)] = 13107, - [SMALL_STATE(323)] = 13120, - [SMALL_STATE(324)] = 13133, - [SMALL_STATE(325)] = 13146, - [SMALL_STATE(326)] = 13159, - [SMALL_STATE(327)] = 13172, - [SMALL_STATE(328)] = 13185, - [SMALL_STATE(329)] = 13198, - [SMALL_STATE(330)] = 13211, - [SMALL_STATE(331)] = 13224, - [SMALL_STATE(332)] = 13237, - [SMALL_STATE(333)] = 13250, - [SMALL_STATE(334)] = 13263, - [SMALL_STATE(335)] = 13276, - [SMALL_STATE(336)] = 13289, - [SMALL_STATE(337)] = 13300, - [SMALL_STATE(338)] = 13313, - [SMALL_STATE(339)] = 13326, - [SMALL_STATE(340)] = 13335, - [SMALL_STATE(341)] = 13348, - [SMALL_STATE(342)] = 13361, - [SMALL_STATE(343)] = 13374, - [SMALL_STATE(344)] = 13387, - [SMALL_STATE(345)] = 13400, - [SMALL_STATE(346)] = 13413, - [SMALL_STATE(347)] = 13426, - [SMALL_STATE(348)] = 13437, - [SMALL_STATE(349)] = 13450, - [SMALL_STATE(350)] = 13463, - [SMALL_STATE(351)] = 13476, - [SMALL_STATE(352)] = 13489, - [SMALL_STATE(353)] = 13502, - [SMALL_STATE(354)] = 13515, - [SMALL_STATE(355)] = 13528, - [SMALL_STATE(356)] = 13541, - [SMALL_STATE(357)] = 13554, - [SMALL_STATE(358)] = 13567, - [SMALL_STATE(359)] = 13578, - [SMALL_STATE(360)] = 13591, - [SMALL_STATE(361)] = 13604, - [SMALL_STATE(362)] = 13617, - [SMALL_STATE(363)] = 13630, - [SMALL_STATE(364)] = 13643, - [SMALL_STATE(365)] = 13656, - [SMALL_STATE(366)] = 13669, - [SMALL_STATE(367)] = 13682, - [SMALL_STATE(368)] = 13695, - [SMALL_STATE(369)] = 13708, - [SMALL_STATE(370)] = 13719, - [SMALL_STATE(371)] = 13732, - [SMALL_STATE(372)] = 13745, - [SMALL_STATE(373)] = 13758, - [SMALL_STATE(374)] = 13767, - [SMALL_STATE(375)] = 13780, - [SMALL_STATE(376)] = 13793, - [SMALL_STATE(377)] = 13806, - [SMALL_STATE(378)] = 13819, - [SMALL_STATE(379)] = 13832, - [SMALL_STATE(380)] = 13845, - [SMALL_STATE(381)] = 13858, - [SMALL_STATE(382)] = 13871, - [SMALL_STATE(383)] = 13884, - [SMALL_STATE(384)] = 13897, - [SMALL_STATE(385)] = 13907, - [SMALL_STATE(386)] = 13917, - [SMALL_STATE(387)] = 13925, - [SMALL_STATE(388)] = 13935, - [SMALL_STATE(389)] = 13945, - [SMALL_STATE(390)] = 13953, - [SMALL_STATE(391)] = 13961, - [SMALL_STATE(392)] = 13969, - [SMALL_STATE(393)] = 13979, - [SMALL_STATE(394)] = 13989, - [SMALL_STATE(395)] = 13997, - [SMALL_STATE(396)] = 14007, - [SMALL_STATE(397)] = 14017, - [SMALL_STATE(398)] = 14027, - [SMALL_STATE(399)] = 14037, - [SMALL_STATE(400)] = 14047, - [SMALL_STATE(401)] = 14055, - [SMALL_STATE(402)] = 14065, - [SMALL_STATE(403)] = 14075, - [SMALL_STATE(404)] = 14085, - [SMALL_STATE(405)] = 14095, - [SMALL_STATE(406)] = 14105, - [SMALL_STATE(407)] = 14115, - [SMALL_STATE(408)] = 14125, - [SMALL_STATE(409)] = 14135, - [SMALL_STATE(410)] = 14145, - [SMALL_STATE(411)] = 14153, - [SMALL_STATE(412)] = 14163, - [SMALL_STATE(413)] = 14173, - [SMALL_STATE(414)] = 14181, - [SMALL_STATE(415)] = 14189, - [SMALL_STATE(416)] = 14197, - [SMALL_STATE(417)] = 14205, - [SMALL_STATE(418)] = 14215, - [SMALL_STATE(419)] = 14225, - [SMALL_STATE(420)] = 14233, - [SMALL_STATE(421)] = 14243, - [SMALL_STATE(422)] = 14250, - [SMALL_STATE(423)] = 14257, - [SMALL_STATE(424)] = 14264, - [SMALL_STATE(425)] = 14271, - [SMALL_STATE(426)] = 14278, - [SMALL_STATE(427)] = 14285, - [SMALL_STATE(428)] = 14292, - [SMALL_STATE(429)] = 14299, - [SMALL_STATE(430)] = 14306, - [SMALL_STATE(431)] = 14313, - [SMALL_STATE(432)] = 14320, - [SMALL_STATE(433)] = 14327, - [SMALL_STATE(434)] = 14334, - [SMALL_STATE(435)] = 14341, - [SMALL_STATE(436)] = 14348, - [SMALL_STATE(437)] = 14355, - [SMALL_STATE(438)] = 14362, - [SMALL_STATE(439)] = 14369, + [SMALL_STATE(38)] = 0, + [SMALL_STATE(39)] = 72, + [SMALL_STATE(40)] = 140, + [SMALL_STATE(41)] = 212, + [SMALL_STATE(42)] = 284, + [SMALL_STATE(43)] = 356, + [SMALL_STATE(44)] = 428, + [SMALL_STATE(45)] = 495, + [SMALL_STATE(46)] = 564, + [SMALL_STATE(47)] = 633, + [SMALL_STATE(48)] = 702, + [SMALL_STATE(49)] = 771, + [SMALL_STATE(50)] = 840, + [SMALL_STATE(51)] = 909, + [SMALL_STATE(52)] = 972, + [SMALL_STATE(53)] = 1037, + [SMALL_STATE(54)] = 1100, + [SMALL_STATE(55)] = 1165, + [SMALL_STATE(56)] = 1225, + [SMALL_STATE(57)] = 1291, + [SMALL_STATE(58)] = 1351, + [SMALL_STATE(59)] = 1411, + [SMALL_STATE(60)] = 1471, + [SMALL_STATE(61)] = 1531, + [SMALL_STATE(62)] = 1591, + [SMALL_STATE(63)] = 1651, + [SMALL_STATE(64)] = 1711, + [SMALL_STATE(65)] = 1771, + [SMALL_STATE(66)] = 1831, + [SMALL_STATE(67)] = 1891, + [SMALL_STATE(68)] = 1951, + [SMALL_STATE(69)] = 2017, + [SMALL_STATE(70)] = 2077, + [SMALL_STATE(71)] = 2137, + [SMALL_STATE(72)] = 2197, + [SMALL_STATE(73)] = 2261, + [SMALL_STATE(74)] = 2325, + [SMALL_STATE(75)] = 2391, + [SMALL_STATE(76)] = 2455, + [SMALL_STATE(77)] = 2519, + [SMALL_STATE(78)] = 2583, + [SMALL_STATE(79)] = 2643, + [SMALL_STATE(80)] = 2701, + [SMALL_STATE(81)] = 2759, + [SMALL_STATE(82)] = 2823, + [SMALL_STATE(83)] = 2881, + [SMALL_STATE(84)] = 2939, + [SMALL_STATE(85)] = 2997, + [SMALL_STATE(86)] = 3055, + [SMALL_STATE(87)] = 3113, + [SMALL_STATE(88)] = 3171, + [SMALL_STATE(89)] = 3229, + [SMALL_STATE(90)] = 3287, + [SMALL_STATE(91)] = 3345, + [SMALL_STATE(92)] = 3403, + [SMALL_STATE(93)] = 3461, + [SMALL_STATE(94)] = 3519, + [SMALL_STATE(95)] = 3577, + [SMALL_STATE(96)] = 3683, + [SMALL_STATE(97)] = 3741, + [SMALL_STATE(98)] = 3805, + [SMALL_STATE(99)] = 3868, + [SMALL_STATE(100)] = 3931, + [SMALL_STATE(101)] = 4034, + [SMALL_STATE(102)] = 4137, + [SMALL_STATE(103)] = 4240, + [SMALL_STATE(104)] = 4343, + [SMALL_STATE(105)] = 4446, + [SMALL_STATE(106)] = 4549, + [SMALL_STATE(107)] = 4612, + [SMALL_STATE(108)] = 4669, + [SMALL_STATE(109)] = 4732, + [SMALL_STATE(110)] = 4795, + [SMALL_STATE(111)] = 4898, + [SMALL_STATE(112)] = 5001, + [SMALL_STATE(113)] = 5064, + [SMALL_STATE(114)] = 5127, + [SMALL_STATE(115)] = 5230, + [SMALL_STATE(116)] = 5333, + [SMALL_STATE(117)] = 5436, + [SMALL_STATE(118)] = 5499, + [SMALL_STATE(119)] = 5562, + [SMALL_STATE(120)] = 5665, + [SMALL_STATE(121)] = 5768, + [SMALL_STATE(122)] = 5871, + [SMALL_STATE(123)] = 5927, + [SMALL_STATE(124)] = 6027, + [SMALL_STATE(125)] = 6127, + [SMALL_STATE(126)] = 6183, + [SMALL_STATE(127)] = 6281, + [SMALL_STATE(128)] = 6381, + [SMALL_STATE(129)] = 6481, + [SMALL_STATE(130)] = 6537, + [SMALL_STATE(131)] = 6637, + [SMALL_STATE(132)] = 6737, + [SMALL_STATE(133)] = 6836, + [SMALL_STATE(134)] = 6933, + [SMALL_STATE(135)] = 7027, + [SMALL_STATE(136)] = 7123, + [SMALL_STATE(137)] = 7178, + [SMALL_STATE(138)] = 7266, + [SMALL_STATE(139)] = 7356, + [SMALL_STATE(140)] = 7410, + [SMALL_STATE(141)] = 7495, + [SMALL_STATE(142)] = 7582, + [SMALL_STATE(143)] = 7663, + [SMALL_STATE(144)] = 7742, + [SMALL_STATE(145)] = 7821, + [SMALL_STATE(146)] = 7902, + [SMALL_STATE(147)] = 7954, + [SMALL_STATE(148)] = 8030, + [SMALL_STATE(149)] = 8108, + [SMALL_STATE(150)] = 8160, + [SMALL_STATE(151)] = 8212, + [SMALL_STATE(152)] = 8264, + [SMALL_STATE(153)] = 8316, + [SMALL_STATE(154)] = 8363, + [SMALL_STATE(155)] = 8437, + [SMALL_STATE(156)] = 8509, + [SMALL_STATE(157)] = 8583, + [SMALL_STATE(158)] = 8631, + [SMALL_STATE(159)] = 8705, + [SMALL_STATE(160)] = 8753, + [SMALL_STATE(161)] = 8801, + [SMALL_STATE(162)] = 8868, + [SMALL_STATE(163)] = 8935, + [SMALL_STATE(164)] = 8978, + [SMALL_STATE(165)] = 9017, + [SMALL_STATE(166)] = 9059, + [SMALL_STATE(167)] = 9097, + [SMALL_STATE(168)] = 9135, + [SMALL_STATE(169)] = 9170, + [SMALL_STATE(170)] = 9205, + [SMALL_STATE(171)] = 9242, + [SMALL_STATE(172)] = 9277, + [SMALL_STATE(173)] = 9312, + [SMALL_STATE(174)] = 9347, + [SMALL_STATE(175)] = 9382, + [SMALL_STATE(176)] = 9417, + [SMALL_STATE(177)] = 9452, + [SMALL_STATE(178)] = 9487, + [SMALL_STATE(179)] = 9522, + [SMALL_STATE(180)] = 9557, + [SMALL_STATE(181)] = 9592, + [SMALL_STATE(182)] = 9641, + [SMALL_STATE(183)] = 9690, + [SMALL_STATE(184)] = 9739, + [SMALL_STATE(185)] = 9788, + [SMALL_STATE(186)] = 9837, + [SMALL_STATE(187)] = 9886, + [SMALL_STATE(188)] = 9935, + [SMALL_STATE(189)] = 9984, + [SMALL_STATE(190)] = 10033, + [SMALL_STATE(191)] = 10082, + [SMALL_STATE(192)] = 10131, + [SMALL_STATE(193)] = 10180, + [SMALL_STATE(194)] = 10229, + [SMALL_STATE(195)] = 10278, + [SMALL_STATE(196)] = 10324, + [SMALL_STATE(197)] = 10358, + [SMALL_STATE(198)] = 10391, + [SMALL_STATE(199)] = 10437, + [SMALL_STATE(200)] = 10480, + [SMALL_STATE(201)] = 10523, + [SMALL_STATE(202)] = 10566, + [SMALL_STATE(203)] = 10609, + [SMALL_STATE(204)] = 10652, + [SMALL_STATE(205)] = 10695, + [SMALL_STATE(206)] = 10738, + [SMALL_STATE(207)] = 10781, + [SMALL_STATE(208)] = 10824, + [SMALL_STATE(209)] = 10852, + [SMALL_STATE(210)] = 10892, + [SMALL_STATE(211)] = 10932, + [SMALL_STATE(212)] = 10972, + [SMALL_STATE(213)] = 11000, + [SMALL_STATE(214)] = 11026, + [SMALL_STATE(215)] = 11052, + [SMALL_STATE(216)] = 11078, + [SMALL_STATE(217)] = 11104, + [SMALL_STATE(218)] = 11130, + [SMALL_STATE(219)] = 11156, + [SMALL_STATE(220)] = 11182, + [SMALL_STATE(221)] = 11208, + [SMALL_STATE(222)] = 11234, + [SMALL_STATE(223)] = 11260, + [SMALL_STATE(224)] = 11286, + [SMALL_STATE(225)] = 11314, + [SMALL_STATE(226)] = 11340, + [SMALL_STATE(227)] = 11366, + [SMALL_STATE(228)] = 11392, + [SMALL_STATE(229)] = 11418, + [SMALL_STATE(230)] = 11444, + [SMALL_STATE(231)] = 11470, + [SMALL_STATE(232)] = 11496, + [SMALL_STATE(233)] = 11522, + [SMALL_STATE(234)] = 11548, + [SMALL_STATE(235)] = 11574, + [SMALL_STATE(236)] = 11600, + [SMALL_STATE(237)] = 11626, + [SMALL_STATE(238)] = 11652, + [SMALL_STATE(239)] = 11678, + [SMALL_STATE(240)] = 11715, + [SMALL_STATE(241)] = 11734, + [SMALL_STATE(242)] = 11753, + [SMALL_STATE(243)] = 11772, + [SMALL_STATE(244)] = 11809, + [SMALL_STATE(245)] = 11837, + [SMALL_STATE(246)] = 11865, + [SMALL_STATE(247)] = 11883, + [SMALL_STATE(248)] = 11909, + [SMALL_STATE(249)] = 11930, + [SMALL_STATE(250)] = 11951, + [SMALL_STATE(251)] = 11967, + [SMALL_STATE(252)] = 11981, + [SMALL_STATE(253)] = 12001, + [SMALL_STATE(254)] = 12021, + [SMALL_STATE(255)] = 12035, + [SMALL_STATE(256)] = 12049, + [SMALL_STATE(257)] = 12063, + [SMALL_STATE(258)] = 12077, + [SMALL_STATE(259)] = 12091, + [SMALL_STATE(260)] = 12109, + [SMALL_STATE(261)] = 12123, + [SMALL_STATE(262)] = 12137, + [SMALL_STATE(263)] = 12151, + [SMALL_STATE(264)] = 12165, + [SMALL_STATE(265)] = 12178, + [SMALL_STATE(266)] = 12191, + [SMALL_STATE(267)] = 12206, + [SMALL_STATE(268)] = 12223, + [SMALL_STATE(269)] = 12238, + [SMALL_STATE(270)] = 12257, + [SMALL_STATE(271)] = 12274, + [SMALL_STATE(272)] = 12287, + [SMALL_STATE(273)] = 12302, + [SMALL_STATE(274)] = 12317, + [SMALL_STATE(275)] = 12332, + [SMALL_STATE(276)] = 12347, + [SMALL_STATE(277)] = 12360, + [SMALL_STATE(278)] = 12373, + [SMALL_STATE(279)] = 12388, + [SMALL_STATE(280)] = 12402, + [SMALL_STATE(281)] = 12416, + [SMALL_STATE(282)] = 12432, + [SMALL_STATE(283)] = 12444, + [SMALL_STATE(284)] = 12458, + [SMALL_STATE(285)] = 12474, + [SMALL_STATE(286)] = 12490, + [SMALL_STATE(287)] = 12504, + [SMALL_STATE(288)] = 12518, + [SMALL_STATE(289)] = 12534, + [SMALL_STATE(290)] = 12550, + [SMALL_STATE(291)] = 12566, + [SMALL_STATE(292)] = 12582, + [SMALL_STATE(293)] = 12594, + [SMALL_STATE(294)] = 12608, + [SMALL_STATE(295)] = 12624, + [SMALL_STATE(296)] = 12638, + [SMALL_STATE(297)] = 12651, + [SMALL_STATE(298)] = 12664, + [SMALL_STATE(299)] = 12677, + [SMALL_STATE(300)] = 12688, + [SMALL_STATE(301)] = 12701, + [SMALL_STATE(302)] = 12714, + [SMALL_STATE(303)] = 12727, + [SMALL_STATE(304)] = 12740, + [SMALL_STATE(305)] = 12753, + [SMALL_STATE(306)] = 12766, + [SMALL_STATE(307)] = 12775, + [SMALL_STATE(308)] = 12788, + [SMALL_STATE(309)] = 12801, + [SMALL_STATE(310)] = 12814, + [SMALL_STATE(311)] = 12827, + [SMALL_STATE(312)] = 12840, + [SMALL_STATE(313)] = 12851, + [SMALL_STATE(314)] = 12864, + [SMALL_STATE(315)] = 12877, + [SMALL_STATE(316)] = 12890, + [SMALL_STATE(317)] = 12901, + [SMALL_STATE(318)] = 12914, + [SMALL_STATE(319)] = 12927, + [SMALL_STATE(320)] = 12936, + [SMALL_STATE(321)] = 12949, + [SMALL_STATE(322)] = 12962, + [SMALL_STATE(323)] = 12975, + [SMALL_STATE(324)] = 12988, + [SMALL_STATE(325)] = 13001, + [SMALL_STATE(326)] = 13014, + [SMALL_STATE(327)] = 13027, + [SMALL_STATE(328)] = 13040, + [SMALL_STATE(329)] = 13053, + [SMALL_STATE(330)] = 13066, + [SMALL_STATE(331)] = 13079, + [SMALL_STATE(332)] = 13092, + [SMALL_STATE(333)] = 13105, + [SMALL_STATE(334)] = 13118, + [SMALL_STATE(335)] = 13129, + [SMALL_STATE(336)] = 13142, + [SMALL_STATE(337)] = 13155, + [SMALL_STATE(338)] = 13168, + [SMALL_STATE(339)] = 13181, + [SMALL_STATE(340)] = 13194, + [SMALL_STATE(341)] = 13205, + [SMALL_STATE(342)] = 13214, + [SMALL_STATE(343)] = 13227, + [SMALL_STATE(344)] = 13240, + [SMALL_STATE(345)] = 13253, + [SMALL_STATE(346)] = 13266, + [SMALL_STATE(347)] = 13279, + [SMALL_STATE(348)] = 13288, + [SMALL_STATE(349)] = 13301, + [SMALL_STATE(350)] = 13314, + [SMALL_STATE(351)] = 13327, + [SMALL_STATE(352)] = 13340, + [SMALL_STATE(353)] = 13353, + [SMALL_STATE(354)] = 13366, + [SMALL_STATE(355)] = 13379, + [SMALL_STATE(356)] = 13389, + [SMALL_STATE(357)] = 13399, + [SMALL_STATE(358)] = 13409, + [SMALL_STATE(359)] = 13417, + [SMALL_STATE(360)] = 13427, + [SMALL_STATE(361)] = 13437, + [SMALL_STATE(362)] = 13447, + [SMALL_STATE(363)] = 13455, + [SMALL_STATE(364)] = 13463, + [SMALL_STATE(365)] = 13473, + [SMALL_STATE(366)] = 13481, + [SMALL_STATE(367)] = 13491, + [SMALL_STATE(368)] = 13501, + [SMALL_STATE(369)] = 13511, + [SMALL_STATE(370)] = 13519, + [SMALL_STATE(371)] = 13529, + [SMALL_STATE(372)] = 13539, + [SMALL_STATE(373)] = 13549, + [SMALL_STATE(374)] = 13559, + [SMALL_STATE(375)] = 13569, + [SMALL_STATE(376)] = 13577, + [SMALL_STATE(377)] = 13587, + [SMALL_STATE(378)] = 13597, + [SMALL_STATE(379)] = 13607, + [SMALL_STATE(380)] = 13617, + [SMALL_STATE(381)] = 13625, + [SMALL_STATE(382)] = 13635, + [SMALL_STATE(383)] = 13645, + [SMALL_STATE(384)] = 13655, + [SMALL_STATE(385)] = 13662, + [SMALL_STATE(386)] = 13669, + [SMALL_STATE(387)] = 13676, + [SMALL_STATE(388)] = 13683, + [SMALL_STATE(389)] = 13690, + [SMALL_STATE(390)] = 13697, + [SMALL_STATE(391)] = 13704, + [SMALL_STATE(392)] = 13711, + [SMALL_STATE(393)] = 13718, + [SMALL_STATE(394)] = 13725, + [SMALL_STATE(395)] = 13732, + [SMALL_STATE(396)] = 13739, + [SMALL_STATE(397)] = 13746, + [SMALL_STATE(398)] = 13753, + [SMALL_STATE(399)] = 13760, + [SMALL_STATE(400)] = 13767, + [SMALL_STATE(401)] = 13774, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -18866,598 +18418,573 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(272), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(228), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(287), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(204), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(2), [34] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), - [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(101), + [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(114), [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_application, 2, 0, 19), [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_application, 2, 0, 19), - [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 2, 0, 0), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 2, 0, 0), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), - [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 1, 0, 0), - [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 1, 0, 0), + [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 1, 0, 0), + [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 1, 0, 0), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr80, 2, 0, 0), + [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr80, 2, 0, 0), [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), - [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(436), - [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(436), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), - [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113), - [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(404), - [83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), - [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), - [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(54), - [110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(161), - [113] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(79), - [116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(109), - [119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(15), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), - [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(113), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(100), - [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(404), - [133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(117), - [136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(406), - [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(144), - [142] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(149), - [145] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(80), - [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(253), - [151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(257), - [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(71), - [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(46), - [160] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(71), - [163] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(46), - [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(53), - [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__nontype_expr100, 1, 0, 0), - [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__nontype_expr100, 1, 0, 0), - [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), - [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), - [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), - [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 2, 0, 0), - [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), - [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), - [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), - [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), - [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 2, 0, 0), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 45), - [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 45), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 1, 0, 0), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 1, 0, 0), - [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 2, 0, 0), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 2, 0, 0), - [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), - [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), - [227] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(145), - [230] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(145), - [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_call, 3, 0, 38), - [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_call, 3, 0, 38), - [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_local_vars_declaration, 1, 0, 12), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_local_vars_declaration, 1, 0, 12), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_var_declaration, 2, 0, 7), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var_declaration, 2, 0, 7), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), - [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 3, 0, 27), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 3, 0, 27), - [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 28), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 28), - [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 4, 0, 36), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 4, 0, 36), - [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 4, 0, 36), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 4, 0, 36), - [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), - [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 39), - [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 39), - [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 47), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 47), - [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 6, 0, 50), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 6, 0, 50), - [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 1, 0, 0), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 1, 0, 0), - [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr75, 2, 0, 0), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr75, 2, 0, 0), - [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 2, 0, 0), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 2, 0, 0), - [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 3, 0, 0), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 3, 0, 0), - [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), - [303] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(143), - [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), - [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 1, 0, 0), - [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 1, 0, 0), - [314] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(134), - [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 2, 0, 0), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 2, 0, 0), - [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 1, 0, 0), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 1, 0, 0), - [327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr100, 1, 0, 0), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr100, 1, 0, 0), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(400), + [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(400), + [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__nontype_expr100, 1, 0, 0), + [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__nontype_expr100, 1, 0, 0), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), + [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), + [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 2, 0, 0), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 2, 0, 0), + [82] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), + [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 2, 0, 0), + [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), + [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 2, 0, 0), + [91] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_var_declaration, 2, 0, 7), + [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var_declaration, 2, 0, 7), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), + [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(373), + [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), + [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), + [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 1, 0, 0), + [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 1, 0, 0), + [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), + [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_local_vars_declaration, 1, 90, 12), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_local_vars_declaration, 1, 90, 12), + [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr30, 2, 0, 0), + [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr30, 2, 0, 0), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 3, 0, 27), + [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 3, 0, 27), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 27), + [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 3, 0, 27), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), + [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), + [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), + [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), + [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7), + [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(173), + [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(115), + [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(130), + [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(12), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), + [194] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(128), + [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(105), + [200] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(372), + [203] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(123), + [206] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(373), + [209] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(144), + [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(155), + [215] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(116), + [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(254), + [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(250), + [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(34), + [227] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4), + [230] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(34), + [233] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4), + [236] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(8), + [239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_expression, 4, 0, 36), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_expression, 4, 0, 36), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 27), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 27), + [247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 37), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 4, 0, 37), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 4, 0, 36), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 4, 0, 36), + [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 27), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 27), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 4, 0, 37), + [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_call, 3, 0, 38), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_call, 3, 0, 38), + [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 37), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_vars_declaration, 5, 0, 37), + [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 37), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_vars_declaration, 5, 0, 37), + [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 1, 0, 0), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 1, 0, 0), + [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typed_tuple, 3, 0, 28), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_tuple, 3, 0, 28), + [283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr75, 2, 0, 0), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr75, 2, 0, 0), + [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 1, 0, 0), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 1, 0, 0), + [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), + [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 3, 0, 0), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 3, 0, 0), + [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), + [305] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(143), + [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr20, 2, 0, 0), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr20, 2, 0, 0), + [312] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(140), + [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 2, 0, 0), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 2, 0, 0), + [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr17, 1, 0, 0), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr17, 1, 0, 0), + [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [329] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(49), + [332] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(103), [335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [337] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(48), - [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_application_repeat1, 2, 0, 0), SHIFT_REPEAT(95), - [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 2, 0, 0), - [345] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 2, 0, 0), - [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_identifier, 1, 0, 1), - [349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hole_type, 1, 0, 2), - [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 1, 0, 0), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 1, 0, 0), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), - [359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(425), - [362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(425), - [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [417] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), - [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(147), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [427] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr13, 1, 0, 0), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr13, 1, 0, 0), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_condition, 1, 0, 0), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 3, 0, 0), - [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 3, 0, 0), - [445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 3, 0, 0), - [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 3, 0, 0), - [449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ternary_expression, 5, 0, 46), - [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, 0, 46), - [453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 1, 0, 0), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 1, 0, 0), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [461] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(141), - [464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [468] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(135), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), - [473] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(272), - [476] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(387), - [479] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(228), - [482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(392), - [485] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(200), - [488] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(207), - [491] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(201), - [494] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(268), - [497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(208), - [500] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(271), - [503] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(287), - [506] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(273), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), - [511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 2, 0, 42), - [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 2, 0, 42), - [539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(408), - [541] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 3, 0, 0), - [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 3, 0, 0), - [547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), - [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), - [551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1, 0, 0), - [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1, 0, 0), - [555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 51), - [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 51), - [559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0), - [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0), - [563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 52), - [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 52), - [567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 3, 0, 53), - [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 3, 0, 53), - [571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 43), - [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, 0, 43), - [575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 2, 0, 35), - [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 2, 0, 35), - [579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, 0, 41), - [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, 0, 41), - [583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_while_statement, 4, 0, 48), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_while_statement, 4, 0, 48), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 2, 0, 49), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 2, 0, 49), - [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 3, 0, 44), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 3, 0, 44), - [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0), - [599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(279), - [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), - [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266), - [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), - [615] = {.entry = {.count = 1, .reusable = false}}, SHIFT(303), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289), - [633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), - [635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(291), - [637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(264), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [645] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [649] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), - [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(369), - [665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), - [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), - [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(293), - [671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294), - [673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), - [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 3, 0, 6), - [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 3, 0, 6), - [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 3, 0, 0), - [683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 3, 0, 0), - [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 4, 0, 10), - [687] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 4, 0, 10), - [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 5, 0, 0), - [691] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 5, 0, 0), - [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 6, 0, 0), - [695] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 6, 0, 0), - [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 7, 0, 0), - [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 7, 0, 0), - [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 8, 0, 0), - [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 8, 0, 0), - [705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 15), - [707] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 15), - [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 16), - [711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 16), - [713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 17), - [715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 17), - [717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 5, 0, 18), - [719] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 5, 0, 18), - [721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 3, 0, 4), - [723] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 3, 0, 4), - [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), - [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 3, 0, 5), - [729] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 3, 0, 5), - [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 3, 0, 6), - [733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 3, 0, 6), - [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 21), - [737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 21), - [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 22), - [741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 22), - [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 23), - [745] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 23), - [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 24), - [749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 24), - [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 25), - [753] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 25), - [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 26), - [757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 26), - [759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 4, 0, 4), - [761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 4, 0, 4), - [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 4, 0, 10), - [765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 4, 0, 10), - [767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 29), - [769] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 29), - [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 30), - [773] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 30), - [775] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 31), - [777] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 31), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [781] = {.entry = {.count = 1, .reusable = false}}, SHIFT(313), - [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), - [789] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr100, 1, 0, 0), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr100, 1, 0, 0), + [341] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(385), + [344] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr80_repeat1, 2, 0, 0), SHIFT_REPEAT(385), + [347] = {.entry = {.count = 1, .reusable = false}}, SHIFT(385), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_identifier, 1, 0, 1), + [353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hole_type, 1, 0, 2), + [355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 2, 0, 0), + [357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 2, 0, 0), + [359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 1, 0, 0), + [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 1, 0, 0), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_typed_tuple, 2, 0, 0), REDUCE(sym_tuple_type, 2, 0, 0), + [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tensor_expression, 2, 0, 0), REDUCE(sym_tensor_type, 2, 0, 0), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr15, 3, 0, 0), + [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr15, 3, 0, 0), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [419] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(148), + [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr30_repeat1, 2, 0, 0), SHIFT_REPEAT(148), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr13, 5, 0, 0), + [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr13, 5, 0, 0), + [459] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr13, 1, 0, 0), + [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr13, 1, 0, 0), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 1, 0, 0), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 1, 0, 0), + [471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [473] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr20_repeat1, 2, 0, 0), SHIFT_REPEAT(145), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), + [478] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(255), + [481] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(357), + [484] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(227), + [487] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(359), + [490] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(204), + [493] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(206), + [496] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(205), + [499] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(269), + [502] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(200), + [505] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(254), + [508] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(250), + [511] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(256), + [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), + [518] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expr17_repeat1, 2, 0, 0), SHIFT_REPEAT(141), + [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [545] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr10, 3, 0, 0), + [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr10, 3, 0, 0), + [549] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 2, 0, 41), + [551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 2, 0, 41), + [553] = {.entry = {.count = 1, .reusable = false}}, SHIFT(383), + [555] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [557] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), + [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), + [561] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 3, 0, 0), + [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 3, 0, 0), + [565] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 2, 0, 45), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 2, 0, 45), + [569] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 3, 0, 43), + [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 3, 0, 43), + [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1, 0, 0), + [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), + [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), + [579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_while_statement, 4, 0, 44), + [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_while_statement, 4, 0, 44), + [583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 3, 0, 48), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 3, 0, 48), + [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1, 0, 0), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1, 0, 0), + [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0), + [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 46), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 46), + [599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__if_statement_contents, 4, 0, 47), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_statement_contents, 4, 0, 47), + [603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 2, 0, 35), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 2, 0, 35), + [607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, 0, 40), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, 0, 40), + [611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 42), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, 0, 42), + [615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(252), + [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), + [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274), + [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(275), + [665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), + [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(334), + [669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 3, 0, 6), + [671] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 3, 0, 6), + [673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 3, 0, 0), + [675] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 3, 0, 0), + [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 4, 0, 10), + [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 4, 0, 10), + [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 5, 0, 0), + [683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 5, 0, 0), + [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 6, 0, 0), + [687] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 6, 0, 0), + [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 15), + [691] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 15), + [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 7, 0, 0), + [695] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 7, 0, 0), + [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_function_body, 8, 0, 0), + [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_function_body, 8, 0, 0), + [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 16), + [703] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 16), + [705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 17), + [707] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 17), + [709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 31), + [711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 31), + [713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 3, 0, 4), + [715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 3, 0, 4), + [717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), + [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 3, 0, 5), + [721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 3, 0, 5), + [723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declarations, 3, 0, 6), + [725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declarations, 3, 0, 6), + [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 21), + [729] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 21), + [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 22), + [733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 22), + [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 23), + [737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 23), + [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 24), + [741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 24), + [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 25), + [745] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 25), + [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 26), + [749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 26), + [751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_directive, 4, 0, 4), + [753] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_directive, 4, 0, 4), + [755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declarations, 4, 0, 10), + [757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declarations, 4, 0, 10), + [759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 29), + [761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 29), + [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 30), + [765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 30), + [767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_directive, 5, 0, 18), + [769] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_directive, 5, 0, 18), + [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [773] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292), + [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [781] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [783] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 3, 0, 0), + [785] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 0), + [787] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 2, 0, 0), + [789] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 2, 0, 0), [791] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 4, 0, 0), [793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 0), - [795] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 2, 0, 0), - [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 2, 0, 0), - [799] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_parameters, 3, 0, 0), - [801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 0), - [803] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 1, 0, 0), - [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 1, 0, 0), - [807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(231), - [809] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), SHIFT_REPEAT(247), - [812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), - [814] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), - [818] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 2, 0, 0), - [820] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), - [823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), - [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), - [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), - [830] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 4, 0, 13), - [832] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 4, 0, 13), - [834] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 4, 0, 13), - [836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 4, 0, 13), - [838] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primitive_type, 1, 0, 0), - [840] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_type, 1, 0, 0), - [842] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 0), - [844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), - [847] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), - [850] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), - [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), - [854] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_hint, 1, 0, 0), - [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_hint, 1, 0, 0), - [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 3, 0, 8), - [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 3, 0, 8), - [864] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 3, 0, 8), - [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 3, 0, 8), - [868] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(209), - [871] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(278), - [874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3, 0, 0), - [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, 0, 0), - [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [880] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), - [882] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), - [884] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(209), - [887] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(278), - [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4, 0, 0), - [892] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4, 0, 0), - [894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var_declaration, 1, 0, 3), - [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), - [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [902] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), - [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), - [914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 9), - [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 9), - [918] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_var_declaration, 1, 0, 3), REDUCE(sym_type_identifier, 1, 0, 1), - [921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 2, 0, 0), - [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 2, 0, 0), - [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), - [931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), - [943] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), SHIFT_REPEAT(339), - [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [952] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 9), - [955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 9), - [958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), - [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), - [962] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), - [964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), - [966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 1, 0, 0), - [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 1, 0, 0), - [972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_nested_tensor_declaration_repeat1, 2, 0, 0), - [974] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 1, 0, 3), - [976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 1, 0, 3), - [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), - [980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), - [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [990] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), SHIFT_REPEAT(213), - [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), - [995] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390), - [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, 0, 14), - [999] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), SHIFT_REPEAT(312), - [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), - [1004] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inline, 1, 0, 0), - [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inline, 1, 0, 0), - [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [1010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [1012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(108), - [1015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), - [1017] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), - [1019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [1027] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 3, 0, 0), - [1029] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 3, 0, 0), - [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [1039] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), - [1041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [1043] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_nested_tensor_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(184), - [1046] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(204), - [1049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), - [1051] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), - [1053] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218), - [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), - [1057] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), - [1059] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), SHIFT_REPEAT(329), - [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), - [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), - [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), - [1080] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), - [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [1086] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), - [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [1090] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), - [1092] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(196), - [1095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [1097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [1099] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), - [1101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), - [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [1107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [1109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), - [1111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(202), - [1114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 4, 0, 40), - [1116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 4, 0, 40), - [1118] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), - [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [1124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), - [1126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), - [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [1152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(309), - [1155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), - [1157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), SHIFT_REPEAT(209), - [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), - [1162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(206), - [1165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), - [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [1169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 4, 0, 20), - [1171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 4, 0, 20), - [1173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_tensor_declaration, 3, 0, 28), - [1175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [1177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), - [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, 0, 7), - [1181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_tensor_declaration, 4, 0, 37), - [1183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), - [1185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [1187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [1189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, 0, 3), - [1191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), - [1193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), - [1195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), - [1197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 2, 0, 7), - [1199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 2, 0, 7), - [1201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, 0, 9), - [1203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), - [1205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), - [1207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), - [1209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [1211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [1213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [1215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [1217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), - [1219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_tensor_declaration, 5, 0, 45), - [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), - [1223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [1225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), - [1228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 3, 0, 11), - [1230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 3, 0, 11), - [1232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [1234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), - [1236] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), - [1238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239), - [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [1242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [1244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [1246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), - [1248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [1250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [1252] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [1254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [1256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), - [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [1262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), - [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [1266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), + [797] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230), + [799] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), SHIFT_REPEAT(246), + [802] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_directive_repeat1, 2, 0, 0), + [804] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [806] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 1, 0, 0), + [808] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 1, 0, 0), + [810] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 0), + [812] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), + [815] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), REDUCE(sym_parameter_list_relaxed, 3, 0, 0), + [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0), + [820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0), + [822] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 2, 0, 0), + [824] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), + [827] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), REDUCE(sym_parameter_list_relaxed, 2, 0, 0), + [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0), + [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0), + [834] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_hint, 1, 0, 0), + [836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_hint, 1, 0, 0), + [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 3, 0, 9), + [842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 3, 0, 9), + [844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(202), + [847] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), SHIFT(265), + [850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(202), + [853] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), SHIFT(265), + [856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primitive_type, 1, 0, 0), + [858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_type, 1, 0, 0), + [860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parenthesized_type, 3, 0, 0), + [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parenthesized_type, 3, 0, 0), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364), + [868] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), + [870] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 4, 0, 13), + [872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 4, 0, 13), + [874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tensor_type, 4, 0, 13), + [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tensor_type, 4, 0, 13), + [878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4, 0, 0), + [880] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4, 0, 0), + [882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), + [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 34), + [886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 8), + [888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 3, 0, 8), + [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), + [892] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat2, 2, 0, 0), SHIFT_REPEAT(319), + [895] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 2, 0, 0), + [897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 2, 0, 0), + [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), + [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [905] = {.entry = {.count = 1, .reusable = false}}, SHIFT(356), + [907] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3, 0, 0), + [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, 0, 0), + [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [915] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_identifier, 1, 0, 1), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 8), + [918] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_hole_type, 1, 0, 2), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 8), + [921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), + [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list_relaxed, 4, 0, 32), + [925] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), + [927] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), SHIFT_REPEAT(280), + [930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat1, 2, 0, 0), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [936] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), + [938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, 0, 14), + [940] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), SHIFT_REPEAT(211), + [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_type_repeat1, 2, 0, 0), + [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [955] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 1, 0, 3), + [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 1, 0, 3), + [959] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(195), + [962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_vars_declaration_repeat1, 2, 0, 0), + [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [972] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inline, 1, 0, 0), + [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inline, 1, 0, 0), + [976] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 1, 0, 0), + [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 1, 0, 0), + [982] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(127), + [985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tensor_expression_repeat1, 2, 0, 0), + [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [997] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), + [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [1001] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), + [1003] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), + [1005] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_function_body_repeat3, 2, 0, 0), SHIFT_REPEAT(303), + [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [1010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [1012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [1020] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(288), + [1023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), + [1025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_id, 4, 0, 39), + [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_id, 4, 0, 39), + [1029] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), + [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [1035] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [1039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [1041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(238), + [1043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [1045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), + [1047] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), + [1049] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(201), + [1052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [1054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [1056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [1060] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), + [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [1066] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213), + [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [1074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [1082] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), + [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [1086] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), + [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), + [1090] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), SHIFT_REPEAT(203), + [1093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [1095] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_specifiers_list, 3, 0, 0), + [1097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_specifiers_list, 3, 0, 0), + [1099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [1101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [1107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [1109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [1111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [1113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [1115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), SHIFT_REPEAT(202), + [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 33), + [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [1126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(207), + [1129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), + [1131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), + [1133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_var_declaration, 2, 0, 7), + [1135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_var_declaration, 2, 0, 7), + [1137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [1139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [1141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, 0, 8), + [1143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [1145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, 0, 7), + [1147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, 0, 3), + [1151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 3, 0, 11), + [1153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 3, 0, 11), + [1155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), + [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration_value, 1, 0, 0), + [1161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constant_declarations_repeat1, 2, 0, 0), + [1163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [1165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), + [1167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_declaration, 4, 0, 20), + [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_declaration, 4, 0, 20), + [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [1173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [1175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), REDUCE(aux_sym_parameter_list_relaxed_repeat1, 2, 0, 0), + [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [1180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_var_declarations_repeat1, 2, 0, 0), + [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [1192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [1194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [1196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [1198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233), + [1200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174), + [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [1206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [1208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [1210] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), }; #ifdef __cplusplus