diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7706318..cb407b8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,4 +20,4 @@ jobs: # pypi: # uses: tree-sitter/workflows/.github/workflows/package-pypi.yml@main # secrets: - # PYPI_API_TOKEN: ${{secrets.PYPI_API_TOKEN}} \ No newline at end of file + # PYPI_API_TOKEN: ${{secrets.PYPI_API_TOKEN}} diff --git a/Cargo.toml b/Cargo.toml index 8eaf653..696f7ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tree-sitter-inference" description = "Inference grammar for tree-sitter" -version = "0.0.33" +version = "0.0.34" authors = [ "Georgii Plotnikov " ] diff --git a/Makefile b/Makefile index d54604f..995f4c5 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION := 0.0.33 +VERSION := 0.0.34 LANGUAGE_NAME := tree-sitter-Inference diff --git a/example.inf b/example.inf index 87560ec..ed4baf2 100644 --- a/example.inf +++ b/example.inf @@ -1,4 +1,4 @@ -///Constant +//Constant const MAX_MEM : i64 = 1000; const X : i32 = -1; const UNIT : () = (); @@ -8,12 +8,12 @@ const EMPTY_BOARD : [[bool; 3]; 3] = , [false, false, false] , [false, false, false] ]; -///Enum +//Enum enum Arch { Wasm, Evm } -///Expression +//Expression fn valid_Address(a: Address) -> Address { a = !a; return a; @@ -22,7 +22,7 @@ fn valid_Address(a: Address) -> Address { fn get_first(xs: [i32; 3]) -> i32 { return xs[0]; } -///Function +//Function fn func() -> i32 {} fn func() {} fn func(x: i32) -> i32 {} @@ -57,7 +57,7 @@ fn func() -> () { let a: i32 = 0; } } -///Spec +//Spec spec some_spec {} spec some_spec { external fn sorting_function (Address, Address) -> Address; @@ -65,7 +65,7 @@ spec some_spec { spec some_spec { type sf = sorting_function; } -///Struct +//Struct struct pizza { toppings : [PizzaTopping; 5]; } @@ -87,13 +87,13 @@ struct identity { return field; } } -///Use +//Use use inference::std; use inference::std::algorithms::sort; use { sort } from "./sort.rs"; use { sort, hash } from "./sort.rs"; use inference::std::algorithms::{sort,hash}; -///Binary Expression +//Binary Expression fn spec_assign() -> () { self.type = ABC; } @@ -112,13 +112,13 @@ fn constructor() -> some_spec { self.max_curr_mem = 2 ** 16; } fn constructor() -> some_spec { - self.mem = Array::new(); + self.mem = (Array u32')::new(); } fn constructor() -> some_spec { - self.mem = Array::new(10); + self.mem = (Array i64')::new(10); } fn constructor() -> some_spec { - self.mem = Array::new(10, a, false, get_name("abc"), "str", Array::new(10 * 2)); + self.mem = (Array u64')::new(10, a, false, get_name("abc"), "str", (Array i32')::new(10 * 2)); } fn valid_Address(a: Address) -> Address { assert (a < self.max_curr_mem && (a % 4)); @@ -131,7 +131,7 @@ fn valid_Address(a: Address) -> Address { fn main() -> i32 { return -1 - -2; } -///Assert +//Assert fn valid_Address(a: Address) -> Address { assert (a < 0); return a; @@ -139,7 +139,7 @@ fn valid_Address(a: Address) -> Address { fn proof() -> () { assert a < 0; } -///If-Else +//If-Else fn main() { let number : i32 = 3; if number < 5 { @@ -154,7 +154,7 @@ fn main() { print("condition was true"); } } -///Loop +//Loop fn main() { loop true { println("hello"); @@ -181,27 +181,27 @@ fn sum_all(xs: [i32; 10]) -> i32 { } return accumulator; } -///Variable Declaration +//Variable Declaration fn proof() -> () { let a: Address = 0; } fn proof() -> () { let a: i32 = @; } -///Variable Definition +//Variable Definition fn test() { let mem : [i32]; } fn test() { - let 3d_array : [[[u32]]]; + let array_3d : [[[u32]]]; } fn test() { - let x : [Optional; 4]; + let x : [Optional someNamespace::String'; 4]; } fn test() { let params : [i32; 3] = [100, MAX_MEM, 0, red_color]; } -///Misc +//Misc spec BasicConcepts { external fn sum(a: i32, b: i32) -> i32; external fn sub(i32, i32) -> i32; @@ -221,7 +221,7 @@ fn foo() { forall { let y: u32 = @; foobar(param1 : @, param2: 5); - /// + // } } } @@ -247,7 +247,7 @@ spec Definitions { spec Definitions { type Address = u32; } -spec AuctionSpec { +spec AuctionSpec { const MAX_BID: u64 = 1000; const MIN_BID: u64 = 100; struct Bid { @@ -339,7 +339,7 @@ fn sum(a: u32, b: u32) -> u32 { return a + b; } spec Bridge { - /// Spec-specific functions + // Spec-specific functions } external fn ideal_hash(b: [u8;100]) -> [u8;32]; spec Hasher { @@ -405,49 +405,49 @@ fn example() { } fn main() { forall { - /// Here computation splits into 2^32 subpaths, - /// with `x` holding distinct value on each + // Here computation splits into 2^32 subpaths, + // with `x` holding distinct value on each let x: u32 = @; - /// Here each computation splits further, independently - /// checking both required properties for every possible - /// value of `x` on separate execution paths. + // Here each computation splits further, independently + // checking both required properties for every possible + // value of `x` on separate execution paths. if @ { check_foo(x); } else { check_bar(x); } } - /// This point is reached iff both functions terminate - /// successfully on every possible input value. + // This point is reached iff both functions terminate + // successfully on every possible input value. print("Success!"); } fn main() { exists { - /// Here computation splits into 2^32 subpaths, - /// with `x` holding distinct value on each + // Here computation splits into 2^32 subpaths, + // with `x` holding distinct value on each let x: u32 = @; - /// Here each computation splits further, independently - /// checking both required properties for every possible - /// value of `x` on separate execution paths. + // Here each computation splits further, independently + // checking both required properties for every possible + // value of `x` on separate execution paths. if @ { check_foo(x); } else { check_bar(x); } } - /// This point is reached iff one of the functions terminate - /// successfully on at least one possible input value. + // This point is reached iff one of the functions terminate + // successfully on at least one possible input value. print("Success!"); } fn main() { forall { - /// Here computation splits into 2^32 subpaths, - /// with `x` holding distinct value on each + // Here computation splits into 2^32 subpaths, + // with `x` holding distinct value on each let x: u32 = @; - /// Here we filter only execution paths, where given - /// precondition is met, indicated by successfull termination - /// of function. + // Here we filter only execution paths, where given + // precondition is met, indicated by successfull termination + // of function. assume { check_foo(x); } - /// Here we check given implication of precondition above + // Here we check given implication of precondition above check_bar(x); } - /// This point is reached iff every value of x that successfully - /// pass through `check_foo` also successfully pass through - /// `check_bar`. + // This point is reached iff every value of x that successfully + // pass through `check_foo` also successfully pass through + // `check_bar`. print("Success!"); } fn main() { @@ -455,18 +455,18 @@ fn main() { assert(x + 1 > x); let user_input: bool = @; if user_input { - /// Handle true case + // Handle true case } else { - /// Handle false case + // Handle false case } let mut choice: i32 = @; choice = choice % 3; if (choice == 0) { - /// Handle case 0 + // Handle case 0 } else if (choice == 1) { - /// Handle case 1 + // Handle case 1 } else { - /// Handle case 2 + // Handle case 2 } } fn main() { @@ -495,7 +495,7 @@ fn add(a: u32, b: u32) -> u32 { return a + b; } fn curly_braces_example() { - /// code block + // code block } fn block_braces_example(a: u32, b: u32) -> u32 { return a + b; @@ -505,25 +505,25 @@ fn square_braces_example() { let b: [u32; 3] = [1, 2, 3]; let c: u32 = a[0]; } -fn triangular_braces_example(a: T) { - /// code block +fn triangular_braces_example T' (a: T) { + // code block } -fn foo(a: T) { - /// code block +fn foo T'(a: T) { + // code block } fn foo() { - /// This is the function body block + // This is the function body block } fn bar() { let flag: bool = true; if flag { - /// This is the 'if' block + // This is the 'if' block } else { - /// This is the 'else' block + // This is the 'else' block } let i: i32 = 10; loop i { - /// This is the loop block + // This is the loop block } } fn foo() -> i32 { @@ -534,29 +534,29 @@ fn foo(i: i32) -> () forall { assume { assert i > 0; } - /// This is equivalent to: + // This is equivalent to: if !(i > 0) { - /// Terminate the function or handle the case accordingly + // Terminate the function or handle the case accordingly return (); } } fn loop_example() { loop 10 { - /// This block will be executed 10 times + // This block will be executed 10 times } loop 0 { - /// This block will not be executed + // This block will not be executed } let i: i32 = 10; loop i { - /// This block will be executed 10 times - /// Modifying 'i' inside the loop is not allowed + // This block will be executed 10 times + // Modifying 'i' inside the loop is not allowed } } fn infinite_loop_example() forall { assume { loop () { - /// Infinite loop body + // Infinite loop body break; } } @@ -564,15 +564,15 @@ fn infinite_loop_example() forall { fn foo() { let flag: bool = true; if flag { - /// This block will be executed + // This block will be executed } else { - /// This block will not be executed + // This block will not be executed } } fn foo() { let x: i32 = 10; let y: i32 = @; - /// 'y' can be any possible i32 value + // 'y' can be any possible i32 value } type Address = u32; fn foo() { @@ -584,19 +584,19 @@ fn foo() { } fn foo() { let a: bool = true; - let b: bool = (1 == 2); /// false + let b: bool = (1 == 2); // false } fn foo() { - let a: i8 = (2 ** 7) - 1; /// 127 - let b: i16 = (2 ** 15) - 1; /// 32,767 - let c: i32 = (2 ** 31) - 1; /// 2,147,483,647 - let d: i64 = (2 ** 63) - 1; /// 9,223,372,036,854,775,807 + let a: i8 = (2 ** 7) - 1; // 127 + let b: i16 = (2 ** 15) - 1; // 32,767 + let c: i32 = (2 ** 31) - 1; // 2,147,483,647 + let d: i64 = (2 ** 63) - 1; // 9,223,372,036,854,775,807 } fn foo() { - let a: u8 = (2 ** 8) - 1; /// 255 - let b: u16 = (2 ** 16) - 1; /// 65,535 - let c: u32 = (2 ** 32) - 1; /// 4,294,967,295 - let d: u64 = (2 ** 64) - 1; /// 18,446,744,073,709,551,615 + let a: u8 = (2 ** 8) - 1; // 255 + let b: u16 = (2 ** 16) - 1; // 65,535 + let c: u32 = (2 ** 32) - 1; // 4,294,967,295 + let d: u64 = (2 ** 64) - 1; // 18,446,744,073,709,551,615 } fn foo() { let a: [i32; 3] = [1, 2, 3]; @@ -617,11 +617,11 @@ fn foo() { let a: i32 = 42; let mut b: bool = true; let mut i: i32 = 10; - let mut acc: i32 = 0; + let mut acc: i32 = 0; loop i { i = i + 1; b = i % 2 == 0; - if b { + if b { let c: i32 = a * 2; acc = acc + c; } diff --git a/grammar.js b/grammar.js index 84b12bc..ff82827 100644 --- a/grammar.js +++ b/grammar.js @@ -37,16 +37,16 @@ module.exports = grammar({ conflicts: $ => [ [$._simple_name, $.generic_name], - [$._simple_name, $.type_qualified_name], [$._lval_expression, $._name], [$.qualified_name, $.member_access_expression], - [$.type_unit, $.unit_literal], + [$._bracketed_generic_name, $._simple_name], ], extras: $ => [ /\s/, + $.docstring, $.comment, ], @@ -86,6 +86,7 @@ module.exports = grammar({ _type: $ => choice( $._embedded_type, + $._bracketed_generic_name, $._name, ), @@ -113,7 +114,7 @@ module.exports = grammar({ type_u32: _ => token('u32'), type_u64: _ => token('u64'), type_bool: _ => token('bool'), - type_unit: _ => token('()'), + type_unit: $ => seq('(', token.immediate(')')), type_array: $ => seq( '[', field('type', $._type), @@ -157,6 +158,7 @@ module.exports = grammar({ _non_lval_expression: $ => choice( $._literal, + $.type_member_access_expression, $.binary_expression, $.function_call_expression, $.struct_expression, @@ -181,53 +183,81 @@ module.exports = grammar({ ), member_access_expression: $ => prec(PRECEDENCE.DOT, seq( - field('expression', choice($._expression, $._embedded_type, $._name)), - choice($.attribute_access_operator, $.expand_operator), + field('expression', choice($._name, $.member_access_expression)), + '.', field('name', $._simple_name), )), + _identifier_like_embedded_type: $ => choice( + $.type_i8, $.type_i16, $.type_i32, $.type_i64, + $.type_u8, $.type_u16, $.type_u32, $.type_u64, + $.type_bool, $.type_fn + ), + + type_member_access_expression: $ => choice(prec(PRECEDENCE.DOT, seq( + field('expression', choice( + $.type_member_access_expression, + $._identifier_like_embedded_type, + $._name + )), + alias(token.immediate('::'), '::'), + field('name', $._simple_name), + )), + prec(PRECEDENCE.DOT, seq( + field('expression', $._bracketed_generic_name), + alias(token.immediate('::'), '::'), + field('name', $._simple_name), + )), + ), + function_call_expression: $ => prec.dynamic(PRECEDENCE.FUNC_CALL, seq( - field('function', $._lval_expression), - optional(field('type_parameters', alias($.type_argument_list, $.type_parameters))), + field('function', choice($._lval_expression, $.type_member_access_expression, $.parenthesized_expression)), '(', - optional(sep1(seq(optional(seq(field('argument_name', $._name), $._typedef_symbol)), field('argument', $._expression)), ',')), + optional( + sep1( + seq( + optional(seq(field('argument_name', $._name), ':')), + field('argument', $._expression) + ), + ',' + ), + ), ')', )), struct_expression: $ => seq( field('name', $._name), - $._lcb_symbol, + '{', optional(sep1( - seq(field('field_name', $._name), $._typedef_symbol, field('field_value', $._expression)), - $._comma_symbol)), - $._rcb_symbol, + seq(field('field_name', $._name), ':', field('field_value', $._expression)), ',')), + '}', ), expression_statement: $ => seq( $._expression, - $._terminal_symbol + ';' ), assign_statement: $ => prec.left(seq( field('left', $._lval_expression), - $.assign_operator, + '=', field('right', $._expression), - $._terminal_symbol, + ';', )), assert_statement: $ => seq( 'assert', $._expression, - $._terminal_symbol, + ';', ), - break_statement: $ => prec.left(seq('break', $._terminal_symbol)), + break_statement: _ => prec.left(seq('break', ';')), - parenthesized_expression: $ => seq( + parenthesized_expression: $ => prec(1, seq( '(', - $._non_lval_expression, + $._expression, ')', - ), + )), prefix_unary_expression: $ => prec(PRECEDENCE.UNARY, seq( field('operator', $.unary_not), @@ -235,25 +265,29 @@ module.exports = grammar({ )), binary_expression: $ => choice( + prec.right(PRECEDENCE.POW, seq( + field('left', $._expression), + field('operator', '**'), + field('right', $._expression), + )), ...[ - [$.pow_operator, PRECEDENCE.POW], - [$.and_operator, PRECEDENCE.LOGICAL_AND], - [$.or_operator, PRECEDENCE.LOGICAL_OR], - [$.bit_and_operator, PRECEDENCE.AND], - [$.bit_or_operator, PRECEDENCE.OR], - [$.bit_xor_operator, PRECEDENCE.XOR], - [$.shift_left_operator, PRECEDENCE.SHIFT], - [$.shift_right_operator, PRECEDENCE.SHIFT], - [$.add_operator, PRECEDENCE.ADD], - [$.sub_operator, PRECEDENCE.ADD], - [$.mul_operator, PRECEDENCE.MUL], - [$.mod_operator, PRECEDENCE.MUL], - [$.less_operator, PRECEDENCE.COMPARE], - [$.less_equal_operator, PRECEDENCE.COMPARE], - [$.equals_operator, PRECEDENCE.EQUALS], - [$.not_equals_operator, PRECEDENCE.EQUALS], - [$.greater_equal_operator, PRECEDENCE.COMPARE], - [$.greater_operator, PRECEDENCE.COMPARE], + ['&&', PRECEDENCE.LOGICAL_AND], + ['||', PRECEDENCE.LOGICAL_OR], + ['&', PRECEDENCE.AND], + ['|', PRECEDENCE.OR], + ['^', PRECEDENCE.XOR], + ['<<', PRECEDENCE.SHIFT], + ['>>', PRECEDENCE.SHIFT], + ['+', PRECEDENCE.ADD], + ['-', PRECEDENCE.ADD], + ['*', PRECEDENCE.MUL], + ['%', PRECEDENCE.MUL], + ['<', PRECEDENCE.COMPARE], + ['<=', PRECEDENCE.COMPARE], + ['==', PRECEDENCE.EQUALS], + ['!=', PRECEDENCE.EQUALS], + ['>=', PRECEDENCE.COMPARE], + ['>', PRECEDENCE.COMPARE], ].map(([operator, precedence]) => prec.left(precedence, seq( field('left', $._expression), @@ -267,104 +301,104 @@ module.exports = grammar({ 'let', optional(field('mut', $.mut_keyword)), field('name', $.identifier), - $._typedef_symbol, + ':', field('type', $._type), - optional(seq($.assign_operator, field('value', $._expression))), - $._terminal_symbol, + optional(seq('=', field('value', $._expression))), + ';', ), type_definition_statement: $ => seq( 'type', field('name', $.identifier), - $.assign_operator, + '=', field('type', $._type), - $._terminal_symbol, + ';', ), constant_definition: $ => seq( 'const', field('name', $.identifier), - $._typedef_symbol, + ':', field('type', $._type), - $.assign_operator, + '=', field('value', $._expression), - $._terminal_symbol, + ';', ), spec_definition: $ => seq( 'spec', field('name', $.identifier), - $._lcb_symbol, + '{', repeat($._definition), - $._rcb_symbol, + '}', ), enum_definition: $ => seq( 'enum', field('name', $.identifier), - $._lcb_symbol, - sep1(field('variant', $.identifier), $._comma_symbol), - $._rcb_symbol, + '{', + sep1(field('variant', $.identifier), ','), + '}', ), struct_definition: $ => seq( 'struct', field('name', $.identifier), - $._lcb_symbol, + '{', repeat(choice( seq(field('field', $.struct_field), ';'), field('value', $.function_definition), )), - $._rcb_symbol, + '}', ), struct_field: $ => seq( field('name', $.identifier), - $._typedef_symbol, + ':', field('type', $._type), ), block: $ => seq( - $._lcb_symbol, + '{', repeat(field('statement', $._statement)), - $._rcb_symbol, + '}', ), function_definition: $ => seq( - $.function_keyword, + 'fn', field('name', $.identifier), optional(field('type_parameters', $.type_argument_list_definition)), field('argument_list', $.argument_list), - optional(seq($.rightarrow_operator, field('returns', $._type))), + optional(seq('->', field('returns', $._type))), field('body', $._block), ), external_function_definition: $ => seq( 'external', - $.function_keyword, + 'fn', field('name', $.identifier), field('argument_list', $.argument_list), - optional(seq($.rightarrow_operator, field('returns', $._type))), + optional(seq('->', field('returns', $._type))), ';', ), argument_list: $ => seq( - $._lrb_symbol, + '(', optional( sep1( field('argument', choice($.argument_declaration, $.self_reference, $.ignore_argument, $._type) ), - $._comma_symbol + ',' ) ), - $._rrb_symbol, + ')', ), argument_declaration: $ => seq( optional(field('mut', $.mut_keyword)), field('name', $.identifier), - $._typedef_symbol, + ':', field('type', $._type), ), @@ -375,27 +409,27 @@ module.exports = grammar({ ignore_argument: $ => seq( '_', - $._typedef_symbol, + ':', field('type', $._type) ), assume_block: $ => seq( - $._assume_keyword, + 'assume', field('body', $.block), ), forall_block: $ => seq( - $._forall_keyword, + 'forall', field('body', $.block), ), exists_block: $ => seq( - $._exists_keyword, + 'exists', field('body', $.block), ), unique_block: $ => seq( - $._unique_keyword, + 'unique', field('body', $.block), ), @@ -403,7 +437,7 @@ module.exports = grammar({ 'if', field('condition', $._expression), field('if_arm', $._block), - repeat(seq('else if', field('else_if_condition', $._expression), field('else_if_arm', $._block))), + repeat(seq('else', 'if', field('else_if_condition', $._expression), field('else_if_arm', $._block))), optional(seq('else', field('else_arm', $._block))), )), @@ -417,83 +451,39 @@ module.exports = grammar({ 'use', choice( seq( - sep1(field('segment', $.identifier), $.expand_operator), + sep1(field('segment', $.identifier), '::'), optional( seq( - $.expand_operator, - $._lcb_symbol, - sep1(field('imported_type', $.identifier), $._comma_symbol), - $._rcb_symbol, + '::', + '{', + sep1(field('imported_type', $.identifier), ','), + '}', ), ), ), seq( - $._lcb_symbol, - sep1(field('imported_type', $.identifier), $._comma_symbol), - $._rcb_symbol, + '{', + sep1(field('imported_type', $.identifier), ','), + '}', 'from', field('from_literal', $.string_literal), ), ), - $._terminal_symbol, + ';', ), return_statement: $ => seq( 'return', - field('expression', $._expression), - $._terminal_symbol, + optional(field('expression', $._expression)), + ';', ), - function_keyword: _ => 'fn', - _forall_keyword: _ => 'forall', - _assume_keyword: _ => 'assume', - _exists_keyword: _ => 'exists', - _unique_keyword: _ => 'unique', uzumaki_keyword: _ => '@', mut_keyword: _ => 'mut', - unary_not: _ => '!', - - add_operator: _ => '+', - sub_operator: _ => '-', - mul_operator: _ => '*', - pow_operator: _ => '**', - mod_operator: _ => '%', - - and_operator: _ => '&&', - or_operator: _ => '||', - - shift_left_operator: _ => '<<', - shift_right_operator: _ => '>>', - bit_and_operator: _ => '&', - bit_or_operator: _ => '|', - bit_xor_operator: _ => '^', - - less_operator: _ => '<', - greater_operator: _ => '>', - less_equal_operator: _ => '<=', - greater_equal_operator: _ => '>=', - equals_operator: _ => '==', - not_equals_operator: _ => '!=', - - assign_operator: _ => '=', - expand_operator: _ => '::', - attribute_access_operator: _ => '.', - - rightarrow_operator: _ => '->', - - _lcb_symbol: _ => '{', - _rcb_symbol: _ => '}', - _lrb_symbol: _ => '(', - _rrb_symbol: _ => ')', - _comma_symbol: _ => ',', - _typedef_symbol: _ => ':', - _terminal_symbol: _ => ';', - - bool_literal: _ => choice( - 'true', - 'false', + token('true'), + token('false'), ), string_literal: $ => seq( @@ -504,9 +494,9 @@ module.exports = grammar({ _string_literal_content: _ => token.immediate(prec(1, /[^"\\\n]+/)), - number_literal: $ => seq(optional('-'), /\d+/), + number_literal: _ => seq(optional('-'), /\d+/), - unit_literal: _ => '()', + unit_literal: _ => seq('(', token.immediate(')')), array_literal: $ => seq( '[', @@ -517,7 +507,7 @@ module.exports = grammar({ ']', ), - qualified_identifier: $ => sep1($.identifier, $.attribute_access_operator), + qualified_identifier: $ => sep1($.identifier, '.'), _name: $ => choice( $.type_qualified_name, @@ -527,7 +517,7 @@ module.exports = grammar({ type_qualified_name: $ => seq( field('alias', $.identifier), - $.expand_operator, + '::', field('name', $._simple_name), ), @@ -538,27 +528,33 @@ module.exports = grammar({ qualified_name: $ => prec(PRECEDENCE.DOT, seq( field('qualifier', $._name), - $.attribute_access_operator, + '.', field('name', $._simple_name), )), - generic_name: $ => seq(field('base_type', $.identifier), $.type_argument_list), + generic_name: $ => seq( + field('base_type', $.identifier), + $.type_argument_list, + ), - type_argument_list_definition: $ => seq( - '<', - choice( - sep1(field('type', $.identifier), $._comma_symbol), - ), - '>', + _bracketed_generic_name: $ => seq( + '(', + $.generic_name, + ')' ), - type_argument_list: $ => seq( - '<', + type_argument_list_definition: $ => prec.left(seq( + seq(field('type', $.identifier), token.immediate('\'')), + repeat( + seq(field('type', $.identifier), token.immediate('\'')), + ) + )), + + type_argument_list: $ => prec.left(seq( choice( - sep1(field('type', $._type), $._comma_symbol), + sep1(seq(field('type', $._type), token.immediate('\'')), ','), ), - '>', - ), + )), _reserved_identifier: _ => choice( 'constructor', @@ -566,13 +562,13 @@ module.exports = grammar({ 'uzumaki', ), - _identifier: _ => /\w*[_a-zA-Z]\w*/, + _identifier: _ => /[A-Za-z_]\w*/, identifier: $ => choice( $._identifier, $._reserved_identifier, ), - // Comments start with '///' - comment: _ => token(seq('///', /[^\n\r]*/)), + docstring: _ => token(prec(1, /\/\/\/[^\n\r]*/)), + comment: _ => token(prec(0, /\/\/[^\n\r]*/)), }, }); diff --git a/package-lock.json b/package-lock.json index a6730d1..9c8745c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,26 +1,26 @@ { "name": "tree-sitter-inference", - "version": "0.0.33", + "version": "0.0.34", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tree-sitter-inference", - "version": "0.0.33", + "version": "0.0.34", "hasInstallScript": true, "license": "MIT", "dependencies": { - "node-addon-api": "8.3.1", + "node-addon-api": "8.5.0", "node-gyp-build": "4.8.4" }, "devDependencies": { - "eslint": "9.28.0", + "eslint": "9.33.0", "eslint-config-google": "^0.14.0", "prebuildify": "^6.0.1", - "tree-sitter-cli": "0.25.5" + "tree-sitter-cli": "0.25.8" }, "peerDependencies": { - "tree-sitter": "0.22.4" + "tree-sitter": "0.25.0" }, "peerDependenciesMeta": { "tree_sitter": { @@ -53,9 +53,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", - "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -68,9 +68,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", - "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -78,9 +78,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", - "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -115,9 +115,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.28.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz", - "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", + "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", "dev": true, "license": "MIT", "engines": { @@ -138,13 +138,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz", - "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.14.0", + "@eslint/core": "^0.15.2", "levn": "^0.4.1" }, "engines": { @@ -213,9 +213,9 @@ "license": "MIT" }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -465,20 +465,20 @@ } }, "node_modules/eslint": { - "version": "9.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz", - "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", + "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.20.0", - "@eslint/config-helpers": "^0.2.1", - "@eslint/core": "^0.14.0", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.28.0", - "@eslint/plugin-kit": "^0.3.1", + "@eslint/js": "9.33.0", + "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -489,9 +489,9 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -538,10 +538,11 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -579,10 +580,11 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -591,15 +593,15 @@ } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -609,9 +611,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -638,6 +640,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -989,9 +992,10 @@ } }, "node_modules/node-addon-api": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.1.tgz", - "integrity": "sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", + "license": "MIT", "engines": { "node": "^18 || ^20 || >= 21" } @@ -1294,10 +1298,11 @@ } }, "node_modules/tree-sitter": { - "version": "0.22.4", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.22.4.tgz", - "integrity": "sha512-usbHZP9/oxNsUY65MQUsduGRqDHQOou1cagUSwjhoSYAmSahjQDAVsh9s+SlZkn8X8+O1FULRGwHu7AFP3kjzg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.25.0.tgz", + "integrity": "sha512-PGZZzFW63eElZJDe/b/R/LbsjDDYJa5UEjLZJB59RQsMX+fo0j54fqBPn1MGKav/QNa0JR0zBiVaikYDWCj5KQ==", "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { "node-addon-api": "^8.3.0", @@ -1305,9 +1310,9 @@ } }, "node_modules/tree-sitter-cli": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.25.5.tgz", - "integrity": "sha512-aLAyf+T3Y5psFZPgd7bUovhhJtplD1hk1mIwMsSZGwoEa6iGgqeGYmV9zgjatT5bMPUfcKX9x1xZfYim7aItjQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.25.8.tgz", + "integrity": "sha512-avR7qo4qT+dNv2jj4M2e79vfc2etbWK6/umWcRsnEX1LTRhUL6p5AgGe6dP7+cV/RYFFk/VBz1rJuVCk+w5H2A==", "dev": true, "hasInstallScript": true, "license": "MIT", diff --git a/package.json b/package.json index 9aac863..7ab9660 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tree-sitter-inference", - "version": "0.0.33", + "version": "0.0.34", "description": "Inference grammar for tree-sitter", "main": "bindings/node", "types": "bindings/node", @@ -42,11 +42,11 @@ "h": "tree-sitter highlight example.inf" }, "dependencies": { - "node-addon-api": "8.3.1", + "node-addon-api": "8.5.0", "node-gyp-build": "4.8.4" }, "peerDependencies": { - "tree-sitter": "0.22.4" + "tree-sitter": "0.25.0" }, "peerDependenciesMeta": { "tree_sitter": { @@ -54,10 +54,10 @@ } }, "devDependencies": { - "eslint": "9.28.0", + "eslint": "9.33.0", "eslint-config-google": "^0.14.0", "prebuildify": "^6.0.1", - "tree-sitter-cli": "0.25.5" + "tree-sitter-cli": "0.25.8" }, "files": [ "grammar.js", diff --git a/parser.exp b/parser.exp new file mode 100644 index 0000000..ced6b85 Binary files /dev/null and b/parser.exp differ diff --git a/parser.lib b/parser.lib new file mode 100644 index 0000000..4c9f6e0 Binary files /dev/null and b/parser.lib differ diff --git a/pyproject.toml b/pyproject.toml index 47c3854..600068a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "tree-sitter-inference" description = "Inference grammar for tree-sitter" -version = "0.0.33" +version = "0.0.34" keywords = ["incremental", "parsing", "tree-sitter", "inference"] classifiers = [ "Intended Audience :: Developers", diff --git a/queries/highlights.scm b/queries/highlights.scm index 180db26..8497267 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -26,7 +26,7 @@ "struct" @keyword.type "enum" @keyword.type "return" @keyword.return -(function_keyword) @keyword.function +"fn" @keyword.function [ "use" "external" ] @keyword.import [ "if" "else" ] @keyword.conditional "let" @keyword diff --git a/src/grammar.json b/src/grammar.json index 4b79fd4..94183a2 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -111,6 +111,10 @@ "type": "SYMBOL", "name": "_embedded_type" }, + { + "type": "SYMBOL", + "name": "_bracketed_generic_name" + }, { "type": "SYMBOL", "name": "_name" @@ -234,11 +238,20 @@ } }, "type_unit": { - "type": "TOKEN", - "content": { - "type": "STRING", - "value": "()" - } + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": ")" + } + } + ] }, "type_array": { "type": "SEQ", @@ -412,6 +425,10 @@ "type": "SYMBOL", "name": "_literal" }, + { + "type": "SYMBOL", + "name": "type_member_access_expression" + }, { "type": "SYMBOL", "name": "binary_expression" @@ -506,31 +523,18 @@ "members": [ { "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "_embedded_type" + "name": "_name" }, { "type": "SYMBOL", - "name": "_name" + "name": "member_access_expression" } ] } }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "attribute_access_operator" - }, - { - "type": "SYMBOL", - "name": "expand_operator" - } - ] + "type": "STRING", + "value": "." }, { "type": "FIELD", @@ -543,6 +547,143 @@ ] } }, + "_identifier_like_embedded_type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_i8" + }, + { + "type": "SYMBOL", + "name": "type_i16" + }, + { + "type": "SYMBOL", + "name": "type_i32" + }, + { + "type": "SYMBOL", + "name": "type_i64" + }, + { + "type": "SYMBOL", + "name": "type_u8" + }, + { + "type": "SYMBOL", + "name": "type_u16" + }, + { + "type": "SYMBOL", + "name": "type_u32" + }, + { + "type": "SYMBOL", + "name": "type_u64" + }, + { + "type": "SYMBOL", + "name": "type_bool" + }, + { + "type": "SYMBOL", + "name": "type_fn" + } + ] + }, + "type_member_access_expression": { + "type": "CHOICE", + "members": [ + { + "type": "PREC", + "value": 2000, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "expression", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_member_access_expression" + }, + { + "type": "SYMBOL", + "name": "_identifier_like_embedded_type" + }, + { + "type": "SYMBOL", + "name": "_name" + } + ] + } + }, + { + "type": "ALIAS", + "content": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "::" + } + }, + "named": false, + "value": "::" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_simple_name" + } + } + ] + } + }, + { + "type": "PREC", + "value": 2000, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "expression", + "content": { + "type": "SYMBOL", + "name": "_bracketed_generic_name" + } + }, + { + "type": "ALIAS", + "content": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "::" + } + }, + "named": false, + "value": "::" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_simple_name" + } + } + ] + } + } + ] + }, "function_call_expression": { "type": "PREC_DYNAMIC", "value": 1500, @@ -553,30 +694,22 @@ "type": "FIELD", "name": "function", "content": { - "type": "SYMBOL", - "name": "_lval_expression" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "type_argument_list" - }, - "named": true, - "value": "type_parameters" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_lval_expression" + }, + { + "type": "SYMBOL", + "name": "type_member_access_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" } - }, - { - "type": "BLANK" - } - ] + ] + } }, { "type": "STRING", @@ -606,8 +739,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" } ] }, @@ -653,8 +786,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" } ] }, @@ -702,8 +835,8 @@ } }, { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "CHOICE", @@ -723,8 +856,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -742,8 +875,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_comma_symbol" + "type": "STRING", + "value": "," }, { "type": "SEQ", @@ -757,8 +890,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -781,8 +914,8 @@ ] }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" } ] }, @@ -794,8 +927,8 @@ "name": "_expression" }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, @@ -814,8 +947,8 @@ } }, { - "type": "SYMBOL", - "name": "assign_operator" + "type": "STRING", + "value": "=" }, { "type": "FIELD", @@ -826,8 +959,8 @@ } }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] } @@ -844,8 +977,8 @@ "name": "_expression" }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, @@ -860,28 +993,32 @@ "value": "break" }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] } }, "parenthesized_expression": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_non_lval_expression" - }, - { - "type": "STRING", - "value": ")" - } - ] + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": ")" + } + ] + } }, "prefix_unary_expression": { "type": "PREC", @@ -908,7 +1045,7 @@ "type": "CHOICE", "members": [ { - "type": "PREC_LEFT", + "type": "PREC_RIGHT", "value": 990, "content": { "type": "SEQ", @@ -925,8 +1062,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "pow_operator" + "type": "STRING", + "value": "**" } }, { @@ -958,8 +1095,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "and_operator" + "type": "STRING", + "value": "&&" } }, { @@ -991,8 +1128,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "or_operator" + "type": "STRING", + "value": "||" } }, { @@ -1024,8 +1161,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "bit_and_operator" + "type": "STRING", + "value": "&" } }, { @@ -1057,8 +1194,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "bit_or_operator" + "type": "STRING", + "value": "|" } }, { @@ -1090,8 +1227,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "bit_xor_operator" + "type": "STRING", + "value": "^" } }, { @@ -1123,8 +1260,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "shift_left_operator" + "type": "STRING", + "value": "<<" } }, { @@ -1156,8 +1293,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "shift_right_operator" + "type": "STRING", + "value": ">>" } }, { @@ -1189,8 +1326,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "add_operator" + "type": "STRING", + "value": "+" } }, { @@ -1222,8 +1359,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "sub_operator" + "type": "STRING", + "value": "-" } }, { @@ -1255,8 +1392,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "mul_operator" + "type": "STRING", + "value": "*" } }, { @@ -1288,8 +1425,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "mod_operator" + "type": "STRING", + "value": "%" } }, { @@ -1321,8 +1458,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "less_operator" + "type": "STRING", + "value": "<" } }, { @@ -1354,8 +1491,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "less_equal_operator" + "type": "STRING", + "value": "<=" } }, { @@ -1387,8 +1524,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "equals_operator" + "type": "STRING", + "value": "==" } }, { @@ -1420,8 +1557,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "not_equals_operator" + "type": "STRING", + "value": "!=" } }, { @@ -1453,8 +1590,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "greater_equal_operator" + "type": "STRING", + "value": ">=" } }, { @@ -1486,8 +1623,8 @@ "type": "FIELD", "name": "operator", "content": { - "type": "SYMBOL", - "name": "greater_operator" + "type": "STRING", + "value": ">" } }, { @@ -1535,8 +1672,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -1553,8 +1690,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "assign_operator" + "type": "STRING", + "value": "=" }, { "type": "FIELD", @@ -1572,8 +1709,8 @@ ] }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, @@ -1593,8 +1730,8 @@ } }, { - "type": "SYMBOL", - "name": "assign_operator" + "type": "STRING", + "value": "=" }, { "type": "FIELD", @@ -1605,8 +1742,8 @@ } }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, @@ -1626,8 +1763,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -1638,8 +1775,8 @@ } }, { - "type": "SYMBOL", - "name": "assign_operator" + "type": "STRING", + "value": "=" }, { "type": "FIELD", @@ -1650,8 +1787,8 @@ } }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, @@ -1671,8 +1808,8 @@ } }, { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "REPEAT", @@ -1682,8 +1819,8 @@ } }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" } ] }, @@ -1703,8 +1840,8 @@ } }, { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "SEQ", @@ -1723,8 +1860,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_comma_symbol" + "type": "STRING", + "value": "," }, { "type": "FIELD", @@ -1740,8 +1877,8 @@ ] }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" } ] }, @@ -1761,8 +1898,8 @@ } }, { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "REPEAT", @@ -1798,8 +1935,8 @@ } }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" } ] }, @@ -1815,8 +1952,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -1832,8 +1969,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "REPEAT", @@ -1847,8 +1984,8 @@ } }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" } ] }, @@ -1856,8 +1993,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "function_keyword" + "type": "STRING", + "value": "fn" }, { "type": "FIELD", @@ -1898,8 +2035,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "rightarrow_operator" + "type": "STRING", + "value": "->" }, { "type": "FIELD", @@ -1934,8 +2071,8 @@ "value": "external" }, { - "type": "SYMBOL", - "name": "function_keyword" + "type": "STRING", + "value": "fn" }, { "type": "FIELD", @@ -1960,8 +2097,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "rightarrow_operator" + "type": "STRING", + "value": "->" }, { "type": "FIELD", @@ -1988,8 +2125,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_lrb_symbol" + "type": "STRING", + "value": "(" }, { "type": "CHOICE", @@ -2028,8 +2165,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_comma_symbol" + "type": "STRING", + "value": "," }, { "type": "FIELD", @@ -2067,8 +2204,8 @@ ] }, { - "type": "SYMBOL", - "name": "_rrb_symbol" + "type": "STRING", + "value": ")" } ] }, @@ -2100,8 +2237,8 @@ } }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -2146,8 +2283,8 @@ "value": "_" }, { - "type": "SYMBOL", - "name": "_typedef_symbol" + "type": "STRING", + "value": ":" }, { "type": "FIELD", @@ -2163,8 +2300,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_assume_keyword" + "type": "STRING", + "value": "assume" }, { "type": "FIELD", @@ -2180,8 +2317,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_forall_keyword" + "type": "STRING", + "value": "forall" }, { "type": "FIELD", @@ -2197,8 +2334,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_exists_keyword" + "type": "STRING", + "value": "exists" }, { "type": "FIELD", @@ -2214,8 +2351,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_unique_keyword" + "type": "STRING", + "value": "unique" }, { "type": "FIELD", @@ -2260,7 +2397,11 @@ "members": [ { "type": "STRING", - "value": "else if" + "value": "else" + }, + { + "type": "STRING", + "value": "if" }, { "type": "FIELD", @@ -2372,8 +2513,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "expand_operator" + "type": "STRING", + "value": "::" }, { "type": "FIELD", @@ -2395,12 +2536,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "expand_operator" + "type": "STRING", + "value": "::" }, { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "SEQ", @@ -2419,8 +2560,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_comma_symbol" + "type": "STRING", + "value": "," }, { "type": "FIELD", @@ -2436,8 +2577,8 @@ ] }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" } ] }, @@ -2452,8 +2593,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_lcb_symbol" + "type": "STRING", + "value": "{" }, { "type": "SEQ", @@ -2472,8 +2613,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_comma_symbol" + "type": "STRING", + "value": "," }, { "type": "FIELD", @@ -2489,8 +2630,8 @@ ] }, { - "type": "SYMBOL", - "name": "_rcb_symbol" + "type": "STRING", + "value": "}" }, { "type": "STRING", @@ -2509,8 +2650,8 @@ ] }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, @@ -2522,39 +2663,27 @@ "value": "return" }, { - "type": "FIELD", - "name": "expression", - "content": { - "type": "SYMBOL", - "name": "_expression" - } + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "expression", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "BLANK" + } + ] }, { - "type": "SYMBOL", - "name": "_terminal_symbol" + "type": "STRING", + "value": ";" } ] }, - "function_keyword": { - "type": "STRING", - "value": "fn" - }, - "_forall_keyword": { - "type": "STRING", - "value": "forall" - }, - "_assume_keyword": { - "type": "STRING", - "value": "assume" - }, - "_exists_keyword": { - "type": "STRING", - "value": "exists" - }, - "_unique_keyword": { - "type": "STRING", - "value": "unique" - }, "uzumaki_keyword": { "type": "STRING", "value": "@" @@ -2567,132 +2696,22 @@ "type": "STRING", "value": "!" }, - "add_operator": { - "type": "STRING", - "value": "+" - }, - "sub_operator": { - "type": "STRING", - "value": "-" - }, - "mul_operator": { - "type": "STRING", - "value": "*" - }, - "pow_operator": { - "type": "STRING", - "value": "**" - }, - "mod_operator": { - "type": "STRING", - "value": "%" - }, - "and_operator": { - "type": "STRING", - "value": "&&" - }, - "or_operator": { - "type": "STRING", - "value": "||" - }, - "shift_left_operator": { - "type": "STRING", - "value": "<<" - }, - "shift_right_operator": { - "type": "STRING", - "value": ">>" - }, - "bit_and_operator": { - "type": "STRING", - "value": "&" - }, - "bit_or_operator": { - "type": "STRING", - "value": "|" - }, - "bit_xor_operator": { - "type": "STRING", - "value": "^" - }, - "less_operator": { - "type": "STRING", - "value": "<" - }, - "greater_operator": { - "type": "STRING", - "value": ">" - }, - "less_equal_operator": { - "type": "STRING", - "value": "<=" - }, - "greater_equal_operator": { - "type": "STRING", - "value": ">=" - }, - "equals_operator": { - "type": "STRING", - "value": "==" - }, - "not_equals_operator": { - "type": "STRING", - "value": "!=" - }, - "assign_operator": { - "type": "STRING", - "value": "=" - }, - "expand_operator": { - "type": "STRING", - "value": "::" - }, - "attribute_access_operator": { - "type": "STRING", - "value": "." - }, - "rightarrow_operator": { - "type": "STRING", - "value": "->" - }, - "_lcb_symbol": { - "type": "STRING", - "value": "{" - }, - "_rcb_symbol": { - "type": "STRING", - "value": "}" - }, - "_lrb_symbol": { - "type": "STRING", - "value": "(" - }, - "_rrb_symbol": { - "type": "STRING", - "value": ")" - }, - "_comma_symbol": { - "type": "STRING", - "value": "," - }, - "_typedef_symbol": { - "type": "STRING", - "value": ":" - }, - "_terminal_symbol": { - "type": "STRING", - "value": ";" - }, "bool_literal": { "type": "CHOICE", "members": [ { - "type": "STRING", - "value": "true" + "type": "TOKEN", + "content": { + "type": "STRING", + "value": "true" + } }, { - "type": "STRING", - "value": "false" + "type": "TOKEN", + "content": { + "type": "STRING", + "value": "false" + } } ] }, @@ -2754,8 +2773,20 @@ ] }, "unit_literal": { - "type": "STRING", - "value": "()" + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": ")" + } + } + ] }, "array_literal": { "type": "SEQ", @@ -2816,8 +2847,8 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "attribute_access_operator" + "type": "STRING", + "value": "." }, { "type": "SYMBOL", @@ -2857,8 +2888,8 @@ } }, { - "type": "SYMBOL", - "name": "expand_operator" + "type": "STRING", + "value": "::" }, { "type": "FIELD", @@ -2898,8 +2929,8 @@ } }, { - "type": "SYMBOL", - "name": "attribute_access_operator" + "type": "STRING", + "value": "." }, { "type": "FIELD", @@ -2929,17 +2960,52 @@ } ] }, - "type_argument_list_definition": { + "_bracketed_generic_name": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "<" + "value": "(" }, { - "type": "CHOICE", - "members": [ - { + "type": "SYMBOL", + "name": "generic_name" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "type_argument_list_definition": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "'" + } + } + ] + }, + { + "type": "REPEAT", + "content": { "type": "SEQ", "members": [ { @@ -2951,65 +3017,33 @@ } }, { - "type": "REPEAT", + "type": "IMMEDIATE_TOKEN", "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma_symbol" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] + "type": "STRING", + "value": "'" } } ] } - ] - }, - { - "type": "STRING", - "value": ">" - } - ] + } + ] + } }, "type_argument_list": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "<" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_type" - } - }, - { - "type": "REPEAT", - "content": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { "type": "SEQ", "members": [ - { - "type": "SYMBOL", - "name": "_comma_symbol" - }, { "type": "FIELD", "name": "type", @@ -3017,19 +3051,54 @@ "type": "SYMBOL", "name": "_type" } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "'" + } } ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "_type" + } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "STRING", + "value": "'" + } + } + ] + } + ] + } } - } - ] - } - ] - }, - { - "type": "STRING", - "value": ">" - } - ] + ] + } + ] + } + ] + } }, "_reserved_identifier": { "type": "CHOICE", @@ -3050,7 +3119,7 @@ }, "_identifier": { "type": "PATTERN", - "value": "\\w*[_a-zA-Z]\\w*" + "value": "[A-Za-z_]\\w*" }, "identifier": { "type": "CHOICE", @@ -3065,20 +3134,26 @@ } ] }, + "docstring": { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "\\/\\/\\/[^\\n\\r]*" + } + } + }, "comment": { "type": "TOKEN", "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "///" - }, - { - "type": "PATTERN", - "value": "[^\\n\\r]*" - } - ] + "type": "PREC", + "value": 0, + "content": { + "type": "PATTERN", + "value": "\\/\\/[^\\n\\r]*" + } } } }, @@ -3087,6 +3162,10 @@ "type": "PATTERN", "value": "\\s" }, + { + "type": "SYMBOL", + "name": "docstring" + }, { "type": "SYMBOL", "name": "comment" @@ -3097,10 +3176,6 @@ "_simple_name", "generic_name" ], - [ - "_simple_name", - "type_qualified_name" - ], [ "_lval_expression", "_name" @@ -3110,8 +3185,8 @@ "member_access_expression" ], [ - "type_unit", - "unit_literal" + "_bracketed_generic_name", + "_simple_name" ] ], "precedences": [], diff --git a/src/node-types.json b/src/node-types.json index 80c6a5f..e8c1eae 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -24,9 +24,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -103,6 +111,14 @@ "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "argument_declaration", "named": true @@ -265,6 +281,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -337,6 +357,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -408,6 +432,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -501,6 +529,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -511,16 +543,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "assign_operator", - "named": true - } - ] } }, { @@ -599,6 +621,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -614,76 +640,76 @@ "required": true, "types": [ { - "type": "add_operator", - "named": true + "type": "!=", + "named": false }, { - "type": "and_operator", - "named": true + "type": "%", + "named": false }, { - "type": "bit_and_operator", - "named": true + "type": "&", + "named": false }, { - "type": "bit_or_operator", - "named": true + "type": "&&", + "named": false }, { - "type": "bit_xor_operator", - "named": true + "type": "*", + "named": false }, { - "type": "equals_operator", - "named": true + "type": "**", + "named": false }, { - "type": "greater_equal_operator", - "named": true + "type": "+", + "named": false }, { - "type": "greater_operator", - "named": true + "type": "-", + "named": false }, { - "type": "less_equal_operator", - "named": true + "type": "<", + "named": false }, { - "type": "less_operator", - "named": true + "type": "<<", + "named": false }, { - "type": "mod_operator", - "named": true + "type": "<=", + "named": false }, { - "type": "mul_operator", - "named": true + "type": "==", + "named": false }, { - "type": "not_equals_operator", - "named": true + "type": ">", + "named": false }, { - "type": "or_operator", - "named": true + "type": ">=", + "named": false }, { - "type": "pow_operator", - "named": true + "type": ">>", + "named": false }, { - "type": "shift_left_operator", - "named": true + "type": "^", + "named": false }, { - "type": "shift_right_operator", - "named": true + "type": "|", + "named": false }, { - "type": "sub_operator", - "named": true + "type": "||", + "named": false } ] }, @@ -743,6 +769,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -852,9 +882,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -977,6 +1015,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -987,16 +1029,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "assign_operator", - "named": true - } - ] } }, { @@ -1047,7 +1079,7 @@ "fields": {}, "children": { "multiple": false, - "required": true, + "required": false, "types": [ { "type": "array_index_access_expression", @@ -1101,6 +1133,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -1137,9 +1173,17 @@ ] }, "returns": { - "multiple": false, + "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -1206,20 +1250,6 @@ } ] } - }, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "function_keyword", - "named": true - }, - { - "type": "rightarrow_operator", - "named": true - } - ] } }, { @@ -1298,6 +1328,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -1349,15 +1383,13 @@ { "type": "member_access_expression", "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ + }, + { + "type": "parenthesized_expression", + "named": true + }, { - "type": "type_parameters", + "type": "type_member_access_expression", "named": true } ] @@ -1415,9 +1447,17 @@ ] }, "returns": { - "multiple": false, + "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -1494,27 +1534,8 @@ } ] } - }, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "function_keyword", - "named": true - }, - { - "type": "rightarrow_operator", - "named": true - } - ] } }, - { - "type": "function_keyword", - "named": true, - "fields": {} - }, { "type": "generic_name", "named": true, @@ -1541,11 +1562,6 @@ ] } }, - { - "type": "greater_operator", - "named": true, - "fields": {} - }, { "type": "identifier", "named": true, @@ -1611,6 +1627,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -1729,6 +1749,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -1772,9 +1796,17 @@ "named": true, "fields": { "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -1843,11 +1875,6 @@ } } }, - { - "type": "less_operator", - "named": true, - "fields": {} - }, { "type": "loop_statement", "named": true, @@ -1934,6 +1961,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -1954,26 +1985,6 @@ "multiple": false, "required": true, "types": [ - { - "type": "array_index_access_expression", - "named": true - }, - { - "type": "array_literal", - "named": true - }, - { - "type": "binary_expression", - "named": true - }, - { - "type": "bool_literal", - "named": true - }, - { - "type": "function_call_expression", - "named": true - }, { "type": "generic_name", "named": true @@ -1986,89 +1997,13 @@ "type": "member_access_expression", "named": true }, - { - "type": "number_literal", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "prefix_unary_expression", - "named": true - }, { "type": "qualified_name", "named": true }, - { - "type": "string_literal", - "named": true - }, - { - "type": "struct_expression", - "named": true - }, - { - "type": "type_array", - "named": true - }, - { - "type": "type_bool", - "named": true - }, - { - "type": "type_fn", - "named": true - }, - { - "type": "type_i16", - "named": true - }, - { - "type": "type_i32", - "named": true - }, - { - "type": "type_i64", - "named": true - }, - { - "type": "type_i8", - "named": true - }, { "type": "type_qualified_name", "named": true - }, - { - "type": "type_u16", - "named": true - }, - { - "type": "type_u32", - "named": true - }, - { - "type": "type_u64", - "named": true - }, - { - "type": "type_u8", - "named": true - }, - { - "type": "type_unit", - "named": true - }, - { - "type": "unit_literal", - "named": true - }, - { - "type": "uzumaki_keyword", - "named": true } ] }, @@ -2086,20 +2021,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "attribute_access_operator", - "named": true - }, - { - "type": "expand_operator", - "named": true - } - ] } }, { @@ -2113,8 +2034,12 @@ "fields": {}, "children": { "multiple": false, - "required": true, + "required": false, "types": [ + { + "type": "array_index_access_expression", + "named": true + }, { "type": "array_literal", "named": true @@ -2131,6 +2056,18 @@ "type": "function_call_expression", "named": true }, + { + "type": "generic_name", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "member_access_expression", + "named": true + }, { "type": "number_literal", "named": true @@ -2151,6 +2088,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -2233,6 +2174,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -2284,16 +2229,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "attribute_access_operator", - "named": true - } - ] } }, { @@ -2302,7 +2237,7 @@ "fields": { "expression": { "multiple": false, - "required": true, + "required": false, "types": [ { "type": "array_index_access_expression", @@ -2356,6 +2291,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -2368,11 +2307,6 @@ } } }, - { - "type": "rightarrow_operator", - "named": true, - "fields": {} - }, { "type": "self_reference", "named": true, @@ -2602,6 +2536,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -2651,9 +2589,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -2722,11 +2668,6 @@ } } }, - { - "type": "sub_operator", - "named": true, - "fields": {} - }, { "type": "type_argument_list", "named": true, @@ -2735,6 +2676,14 @@ "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -2850,9 +2799,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -2936,9 +2893,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -3005,16 +2970,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "assign_operator", - "named": true - } - ] } }, { @@ -3032,9 +2987,17 @@ ] }, "returns": { - "multiple": false, + "multiple": true, "required": false, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -3104,13 +3067,21 @@ } }, { - "type": "type_parameters", + "type": "type_member_access_expression", "named": true, "fields": { - "type": { + "expression": { "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -3123,10 +3094,6 @@ "type": "qualified_name", "named": true }, - { - "type": "type_array", - "named": true - }, { "type": "type_bool", "named": true @@ -3151,6 +3118,10 @@ "type": "type_i8", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "type_qualified_name", "named": true @@ -3170,9 +3141,19 @@ { "type": "type_u8", "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "generic_name", + "named": true }, { - "type": "type_unit", + "type": "identifier", "named": true } ] @@ -3207,16 +3188,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expand_operator", - "named": true - } - ] } }, { @@ -3279,16 +3250,6 @@ } ] } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "expand_operator", - "named": true - } - ] } }, { @@ -3316,9 +3277,17 @@ ] }, "type": { - "multiple": false, + "multiple": true, "required": true, "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "generic_name", "named": true @@ -3441,6 +3410,10 @@ "type": "struct_expression", "named": true }, + { + "type": "type_member_access_expression", + "named": true + }, { "type": "unit_literal", "named": true @@ -3451,34 +3424,52 @@ } ] } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "assign_operator", - "named": true - } - ] } }, + { + "type": "!=", + "named": false + }, { "type": "\"", "named": false }, { - "type": "(", + "type": "%", "named": false }, { - "type": "()", + "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 @@ -3491,10 +3482,18 @@ "type": "->", "named": false }, + { + "type": ".", + "named": false + }, { "type": ":", "named": false }, + { + "type": "::", + "named": false + }, { "type": ";", "named": false @@ -3504,56 +3503,56 @@ "named": false }, { - "type": ">", + "type": "<<", "named": false }, { - "type": "[", + "type": "<=", "named": false }, { - "type": "]", + "type": "=", "named": false }, { - "type": "_", + "type": "==", "named": false }, { - "type": "add_operator", - "named": true + "type": ">", + "named": false }, { - "type": "and_operator", - "named": true + "type": ">=", + "named": false }, { - "type": "assert", + "type": ">>", "named": false }, { - "type": "assign_operator", - "named": true + "type": "[", + "named": false }, { - "type": "assume", + "type": "]", "named": false }, { - "type": "attribute_access_operator", - "named": true + "type": "^", + "named": false }, { - "type": "bit_and_operator", - "named": true + "type": "_", + "named": false }, { - "type": "bit_or_operator", - "named": true + "type": "assert", + "named": false }, { - "type": "bit_xor_operator", - "named": true + "type": "assume", + "named": false }, { "type": "break", @@ -3573,29 +3572,22 @@ "named": false }, { - "type": "else", - "named": false + "type": "docstring", + "named": true, + "extra": true }, { - "type": "else if", + "type": "else", "named": false }, { "type": "enum", "named": false }, - { - "type": "equals_operator", - "named": true - }, { "type": "exists", "named": false }, - { - "type": "expand_operator", - "named": true - }, { "type": "external", "named": false @@ -3616,18 +3608,10 @@ "type": "from", "named": false }, - { - "type": "greater_equal_operator", - "named": true - }, { "type": "if", "named": false }, - { - "type": "less_equal_operator", - "named": true - }, { "type": "let", "named": false @@ -3636,30 +3620,10 @@ "type": "loop", "named": false }, - { - "type": "mod_operator", - "named": true - }, - { - "type": "mul_operator", - "named": true - }, { "type": "mut_keyword", "named": true }, - { - "type": "not_equals_operator", - "named": true - }, - { - "type": "or_operator", - "named": true - }, - { - "type": "pow_operator", - "named": true - }, { "type": "proof", "named": false @@ -3672,14 +3636,6 @@ "type": "self", "named": false }, - { - "type": "shift_left_operator", - "named": true - }, - { - "type": "shift_right_operator", - "named": true - }, { "type": "spec", "named": false @@ -3756,6 +3712,14 @@ "type": "{", "named": false }, + { + "type": "|", + "named": false + }, + { + "type": "||", + "named": false + }, { "type": "}", "named": false diff --git a/src/parser.c b/src/parser.c index b33158b..fb993cf 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,4 +1,4 @@ -/* Automatically @generated by tree-sitter v0.25.4 (726dcd1e872149d95de581589fc408fb8ea9cb0b) */ +/* Automatically @generated by tree-sitter v0.25.8 */ #include "tree_sitter/parser.h" @@ -15,16 +15,16 @@ #endif #define LANGUAGE_VERSION 15 -#define STATE_COUNT 446 -#define LARGE_STATE_COUNT 12 -#define SYMBOL_COUNT 168 -#define ALIAS_COUNT 1 -#define TOKEN_COUNT 78 +#define STATE_COUNT 482 +#define LARGE_STATE_COUNT 11 +#define SYMBOL_COUNT 157 +#define ALIAS_COUNT 0 +#define TOKEN_COUNT 80 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 35 #define MAX_ALIAS_SEQUENCE_LENGTH 9 #define MAX_RESERVED_WORD_SET_SIZE 0 -#define PRODUCTION_ID_COUNT 81 +#define PRODUCTION_ID_COUNT 77 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { @@ -37,165 +37,153 @@ enum ts_symbol_identifiers { sym_type_u32 = 7, sym_type_u64 = 8, sym_type_bool = 9, - anon_sym_LPAREN_RPAREN = 10, - anon_sym_LBRACK = 11, - anon_sym_SEMI = 12, - anon_sym_RBRACK = 13, - anon_sym_fn = 14, - anon_sym_DASH_GT = 15, - anon_sym_LPAREN = 16, - anon_sym_COMMA = 17, - anon_sym_RPAREN = 18, - anon_sym_assert = 19, - anon_sym_break = 20, - anon_sym_let = 21, - anon_sym_type = 22, - anon_sym_const = 23, - anon_sym_spec = 24, - anon_sym_enum = 25, - anon_sym_struct = 26, - anon_sym_external = 27, - anon_sym_self = 28, - anon_sym__ = 29, - anon_sym_if = 30, - anon_sym_elseif = 31, - anon_sym_else = 32, - anon_sym_loop = 33, - anon_sym_use = 34, - anon_sym_from = 35, - anon_sym_return = 36, - anon_sym_forall = 37, - anon_sym_assume = 38, - anon_sym_exists = 39, - anon_sym_unique = 40, - sym_uzumaki_keyword = 41, - sym_mut_keyword = 42, - sym_unary_not = 43, - sym_add_operator = 44, - anon_sym_DASH = 45, - sym_mul_operator = 46, - sym_pow_operator = 47, - sym_mod_operator = 48, - sym_and_operator = 49, - sym_or_operator = 50, - sym_shift_left_operator = 51, - sym_shift_right_operator = 52, - sym_bit_and_operator = 53, - sym_bit_or_operator = 54, - sym_bit_xor_operator = 55, - anon_sym_LT = 56, - anon_sym_GT = 57, - sym_less_equal_operator = 58, - sym_greater_equal_operator = 59, - sym_equals_operator = 60, - sym_not_equals_operator = 61, - sym_assign_operator = 62, - sym_expand_operator = 63, - sym_attribute_access_operator = 64, - anon_sym_LBRACE = 65, - anon_sym_RBRACE = 66, - anon_sym_COLON = 67, + anon_sym_LPAREN = 10, + anon_sym_RPAREN = 11, + anon_sym_LBRACK = 12, + anon_sym_SEMI = 13, + anon_sym_RBRACK = 14, + anon_sym_fn = 15, + anon_sym_DASH_GT = 16, + anon_sym_DOT = 17, + anon_sym_COLON_COLON = 18, + anon_sym_COLON = 19, + anon_sym_COMMA = 20, + anon_sym_RPAREN2 = 21, + anon_sym_LBRACE = 22, + anon_sym_RBRACE = 23, + anon_sym_EQ = 24, + anon_sym_assert = 25, + anon_sym_break = 26, + anon_sym_STAR_STAR = 27, + anon_sym_AMP_AMP = 28, + anon_sym_PIPE_PIPE = 29, + anon_sym_AMP = 30, + anon_sym_PIPE = 31, + anon_sym_CARET = 32, + anon_sym_LT_LT = 33, + anon_sym_GT_GT = 34, + anon_sym_PLUS = 35, + anon_sym_DASH = 36, + anon_sym_STAR = 37, + anon_sym_PERCENT = 38, + anon_sym_LT = 39, + anon_sym_LT_EQ = 40, + anon_sym_EQ_EQ = 41, + anon_sym_BANG_EQ = 42, + anon_sym_GT_EQ = 43, + anon_sym_GT = 44, + anon_sym_let = 45, + anon_sym_type = 46, + anon_sym_const = 47, + anon_sym_spec = 48, + anon_sym_enum = 49, + anon_sym_struct = 50, + anon_sym_external = 51, + anon_sym_self = 52, + anon_sym__ = 53, + anon_sym_assume = 54, + anon_sym_forall = 55, + anon_sym_exists = 56, + anon_sym_unique = 57, + anon_sym_if = 58, + anon_sym_else = 59, + anon_sym_loop = 60, + anon_sym_use = 61, + anon_sym_COLON_COLON2 = 62, + anon_sym_from = 63, + anon_sym_return = 64, + sym_uzumaki_keyword = 65, + sym_mut_keyword = 66, + sym_unary_not = 67, anon_sym_true = 68, anon_sym_false = 69, anon_sym_DQUOTE = 70, sym__string_literal_content = 71, aux_sym_number_literal_token1 = 72, - anon_sym_constructor = 73, - anon_sym_proof = 74, - anon_sym_uzumaki = 75, - sym__identifier = 76, - sym_comment = 77, - sym_source_file = 78, - sym__statement = 79, - sym__definition = 80, - sym__type = 81, - sym__embedded_type = 82, - sym_type_unit = 83, - sym_type_array = 84, - sym_type_fn = 85, - sym__literal = 86, - sym__expression = 87, - sym__lval_expression = 88, - sym__non_lval_expression = 89, - sym__block = 90, - sym_array_index_access_expression = 91, - sym_member_access_expression = 92, - sym_function_call_expression = 93, - sym_struct_expression = 94, - sym_expression_statement = 95, - sym_assign_statement = 96, - sym_assert_statement = 97, - sym_break_statement = 98, - sym_parenthesized_expression = 99, - sym_prefix_unary_expression = 100, - sym_binary_expression = 101, - sym_variable_definition_statement = 102, - sym_type_definition_statement = 103, - sym_constant_definition = 104, - sym_spec_definition = 105, - sym_enum_definition = 106, - sym_struct_definition = 107, - sym_struct_field = 108, - sym_block = 109, - sym_function_definition = 110, - sym_external_function_definition = 111, - sym_argument_list = 112, - sym_argument_declaration = 113, - sym_self_reference = 114, - sym_ignore_argument = 115, - sym_assume_block = 116, - sym_forall_block = 117, - sym_exists_block = 118, - sym_unique_block = 119, - sym_if_statement = 120, - sym_loop_statement = 121, - sym_use_directive = 122, - sym_return_statement = 123, - sym_function_keyword = 124, - sym__forall_keyword = 125, - sym__assume_keyword = 126, - sym__exists_keyword = 127, - sym__unique_keyword = 128, - sym_sub_operator = 129, - sym_less_operator = 130, - sym_greater_operator = 131, - sym_rightarrow_operator = 132, - sym__lcb_symbol = 133, - sym__rcb_symbol = 134, - sym__lrb_symbol = 135, - sym__rrb_symbol = 136, - sym__comma_symbol = 137, - sym__typedef_symbol = 138, - sym__terminal_symbol = 139, - sym_bool_literal = 140, - sym_string_literal = 141, - sym_number_literal = 142, - sym_unit_literal = 143, - sym_array_literal = 144, - sym__name = 145, - sym_type_qualified_name = 146, - sym__simple_name = 147, - sym_qualified_name = 148, - sym_generic_name = 149, - sym_type_argument_list_definition = 150, - sym_type_argument_list = 151, - sym__reserved_identifier = 152, - sym_identifier = 153, - aux_sym_source_file_repeat1 = 154, - aux_sym_function_call_expression_repeat1 = 155, - aux_sym_struct_expression_repeat1 = 156, - aux_sym_spec_definition_repeat1 = 157, - aux_sym_enum_definition_repeat1 = 158, - aux_sym_struct_definition_repeat1 = 159, - aux_sym_block_repeat1 = 160, - aux_sym_argument_list_repeat1 = 161, - aux_sym_if_statement_repeat1 = 162, - aux_sym_use_directive_repeat1 = 163, - aux_sym_use_directive_repeat2 = 164, - aux_sym_array_literal_repeat1 = 165, - aux_sym_type_argument_list_definition_repeat1 = 166, - aux_sym_type_argument_list_repeat1 = 167, - alias_sym_type_parameters = 168, + anon_sym_SQUOTE = 73, + anon_sym_constructor = 74, + anon_sym_proof = 75, + anon_sym_uzumaki = 76, + sym__identifier = 77, + sym_docstring = 78, + sym_comment = 79, + sym_source_file = 80, + sym__statement = 81, + sym__definition = 82, + sym__type = 83, + sym__embedded_type = 84, + sym_type_unit = 85, + sym_type_array = 86, + sym_type_fn = 87, + sym__literal = 88, + sym__expression = 89, + sym__lval_expression = 90, + sym__non_lval_expression = 91, + sym__block = 92, + sym_array_index_access_expression = 93, + sym_member_access_expression = 94, + sym__identifier_like_embedded_type = 95, + sym_type_member_access_expression = 96, + sym_function_call_expression = 97, + sym_struct_expression = 98, + sym_expression_statement = 99, + sym_assign_statement = 100, + sym_assert_statement = 101, + sym_break_statement = 102, + sym_parenthesized_expression = 103, + sym_prefix_unary_expression = 104, + sym_binary_expression = 105, + sym_variable_definition_statement = 106, + sym_type_definition_statement = 107, + sym_constant_definition = 108, + sym_spec_definition = 109, + sym_enum_definition = 110, + sym_struct_definition = 111, + sym_struct_field = 112, + sym_block = 113, + sym_function_definition = 114, + sym_external_function_definition = 115, + sym_argument_list = 116, + sym_argument_declaration = 117, + sym_self_reference = 118, + sym_ignore_argument = 119, + sym_assume_block = 120, + sym_forall_block = 121, + sym_exists_block = 122, + sym_unique_block = 123, + sym_if_statement = 124, + sym_loop_statement = 125, + sym_use_directive = 126, + sym_return_statement = 127, + sym_bool_literal = 128, + sym_string_literal = 129, + sym_number_literal = 130, + sym_unit_literal = 131, + sym_array_literal = 132, + sym__name = 133, + sym_type_qualified_name = 134, + sym__simple_name = 135, + sym_qualified_name = 136, + sym_generic_name = 137, + sym__bracketed_generic_name = 138, + sym_type_argument_list_definition = 139, + sym_type_argument_list = 140, + sym__reserved_identifier = 141, + sym_identifier = 142, + aux_sym_source_file_repeat1 = 143, + aux_sym_function_call_expression_repeat1 = 144, + aux_sym_struct_expression_repeat1 = 145, + aux_sym_spec_definition_repeat1 = 146, + aux_sym_enum_definition_repeat1 = 147, + aux_sym_struct_definition_repeat1 = 148, + aux_sym_block_repeat1 = 149, + aux_sym_argument_list_repeat1 = 150, + aux_sym_if_statement_repeat1 = 151, + aux_sym_use_directive_repeat1 = 152, + aux_sym_use_directive_repeat2 = 153, + aux_sym_array_literal_repeat1 = 154, + aux_sym_type_argument_list_definition_repeat1 = 155, + aux_sym_type_argument_list_repeat1 = 156, }; static const char * const ts_symbol_names[] = { @@ -209,17 +197,41 @@ static const char * const ts_symbol_names[] = { [sym_type_u32] = "type_u32", [sym_type_u64] = "type_u64", [sym_type_bool] = "type_bool", - [anon_sym_LPAREN_RPAREN] = "()", + [anon_sym_LPAREN] = "(", + [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_SEMI] = ";", [anon_sym_RBRACK] = "]", [anon_sym_fn] = "fn", [anon_sym_DASH_GT] = "->", - [anon_sym_LPAREN] = "(", + [anon_sym_DOT] = ".", + [anon_sym_COLON_COLON] = "::", + [anon_sym_COLON] = ":", [anon_sym_COMMA] = ",", - [anon_sym_RPAREN] = ")", + [anon_sym_RPAREN2] = ")", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_EQ] = "=", [anon_sym_assert] = "assert", [anon_sym_break] = "break", + [anon_sym_STAR_STAR] = "**", + [anon_sym_AMP_AMP] = "&&", + [anon_sym_PIPE_PIPE] = "||", + [anon_sym_AMP] = "&", + [anon_sym_PIPE] = "|", + [anon_sym_CARET] = "^", + [anon_sym_LT_LT] = "<<", + [anon_sym_GT_GT] = ">>", + [anon_sym_PLUS] = "+", + [anon_sym_DASH] = "-", + [anon_sym_STAR] = "*", + [anon_sym_PERCENT] = "%", + [anon_sym_LT] = "<", + [anon_sym_LT_EQ] = "<=", + [anon_sym_EQ_EQ] = "==", + [anon_sym_BANG_EQ] = "!=", + [anon_sym_GT_EQ] = ">=", + [anon_sym_GT] = ">", [anon_sym_let] = "let", [anon_sym_type] = "type", [anon_sym_const] = "const", @@ -229,53 +241,31 @@ static const char * const ts_symbol_names[] = { [anon_sym_external] = "external", [anon_sym_self] = "self", [anon_sym__] = "_", + [anon_sym_assume] = "assume", + [anon_sym_forall] = "forall", + [anon_sym_exists] = "exists", + [anon_sym_unique] = "unique", [anon_sym_if] = "if", - [anon_sym_elseif] = "else if", [anon_sym_else] = "else", [anon_sym_loop] = "loop", [anon_sym_use] = "use", + [anon_sym_COLON_COLON2] = "::", [anon_sym_from] = "from", [anon_sym_return] = "return", - [anon_sym_forall] = "forall", - [anon_sym_assume] = "assume", - [anon_sym_exists] = "exists", - [anon_sym_unique] = "unique", [sym_uzumaki_keyword] = "uzumaki_keyword", [sym_mut_keyword] = "mut_keyword", [sym_unary_not] = "unary_not", - [sym_add_operator] = "add_operator", - [anon_sym_DASH] = "-", - [sym_mul_operator] = "mul_operator", - [sym_pow_operator] = "pow_operator", - [sym_mod_operator] = "mod_operator", - [sym_and_operator] = "and_operator", - [sym_or_operator] = "or_operator", - [sym_shift_left_operator] = "shift_left_operator", - [sym_shift_right_operator] = "shift_right_operator", - [sym_bit_and_operator] = "bit_and_operator", - [sym_bit_or_operator] = "bit_or_operator", - [sym_bit_xor_operator] = "bit_xor_operator", - [anon_sym_LT] = "<", - [anon_sym_GT] = ">", - [sym_less_equal_operator] = "less_equal_operator", - [sym_greater_equal_operator] = "greater_equal_operator", - [sym_equals_operator] = "equals_operator", - [sym_not_equals_operator] = "not_equals_operator", - [sym_assign_operator] = "assign_operator", - [sym_expand_operator] = "expand_operator", - [sym_attribute_access_operator] = "attribute_access_operator", - [anon_sym_LBRACE] = "{", - [anon_sym_RBRACE] = "}", - [anon_sym_COLON] = ":", [anon_sym_true] = "true", [anon_sym_false] = "false", [anon_sym_DQUOTE] = "\"", [sym__string_literal_content] = "_string_literal_content", [aux_sym_number_literal_token1] = "number_literal_token1", + [anon_sym_SQUOTE] = "'", [anon_sym_constructor] = "constructor", [anon_sym_proof] = "proof", [anon_sym_uzumaki] = "uzumaki", [sym__identifier] = "_identifier", + [sym_docstring] = "docstring", [sym_comment] = "comment", [sym_source_file] = "source_file", [sym__statement] = "_statement", @@ -292,6 +282,8 @@ static const char * const ts_symbol_names[] = { [sym__block] = "_block", [sym_array_index_access_expression] = "array_index_access_expression", [sym_member_access_expression] = "member_access_expression", + [sym__identifier_like_embedded_type] = "_identifier_like_embedded_type", + [sym_type_member_access_expression] = "type_member_access_expression", [sym_function_call_expression] = "function_call_expression", [sym_struct_expression] = "struct_expression", [sym_expression_statement] = "expression_statement", @@ -323,22 +315,6 @@ static const char * const ts_symbol_names[] = { [sym_loop_statement] = "loop_statement", [sym_use_directive] = "use_directive", [sym_return_statement] = "return_statement", - [sym_function_keyword] = "function_keyword", - [sym__forall_keyword] = "_forall_keyword", - [sym__assume_keyword] = "_assume_keyword", - [sym__exists_keyword] = "_exists_keyword", - [sym__unique_keyword] = "_unique_keyword", - [sym_sub_operator] = "sub_operator", - [sym_less_operator] = "less_operator", - [sym_greater_operator] = "greater_operator", - [sym_rightarrow_operator] = "rightarrow_operator", - [sym__lcb_symbol] = "_lcb_symbol", - [sym__rcb_symbol] = "_rcb_symbol", - [sym__lrb_symbol] = "_lrb_symbol", - [sym__rrb_symbol] = "_rrb_symbol", - [sym__comma_symbol] = "_comma_symbol", - [sym__typedef_symbol] = "_typedef_symbol", - [sym__terminal_symbol] = "_terminal_symbol", [sym_bool_literal] = "bool_literal", [sym_string_literal] = "string_literal", [sym_number_literal] = "number_literal", @@ -349,6 +325,7 @@ static const char * const ts_symbol_names[] = { [sym__simple_name] = "_simple_name", [sym_qualified_name] = "qualified_name", [sym_generic_name] = "generic_name", + [sym__bracketed_generic_name] = "_bracketed_generic_name", [sym_type_argument_list_definition] = "type_argument_list_definition", [sym_type_argument_list] = "type_argument_list", [sym__reserved_identifier] = "_reserved_identifier", @@ -367,7 +344,6 @@ static const char * const ts_symbol_names[] = { [aux_sym_array_literal_repeat1] = "array_literal_repeat1", [aux_sym_type_argument_list_definition_repeat1] = "type_argument_list_definition_repeat1", [aux_sym_type_argument_list_repeat1] = "type_argument_list_repeat1", - [alias_sym_type_parameters] = "type_parameters", }; static const TSSymbol ts_symbol_map[] = { @@ -381,17 +357,41 @@ static const TSSymbol ts_symbol_map[] = { [sym_type_u32] = sym_type_u32, [sym_type_u64] = sym_type_u64, [sym_type_bool] = sym_type_bool, - [anon_sym_LPAREN_RPAREN] = anon_sym_LPAREN_RPAREN, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_SEMI] = anon_sym_SEMI, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_fn] = anon_sym_fn, [anon_sym_DASH_GT] = anon_sym_DASH_GT, - [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_DOT] = anon_sym_DOT, + [anon_sym_COLON_COLON] = anon_sym_COLON_COLON2, + [anon_sym_COLON] = anon_sym_COLON, [anon_sym_COMMA] = anon_sym_COMMA, - [anon_sym_RPAREN] = anon_sym_RPAREN, + [anon_sym_RPAREN2] = anon_sym_RPAREN, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_EQ] = anon_sym_EQ, [anon_sym_assert] = anon_sym_assert, [anon_sym_break] = anon_sym_break, + [anon_sym_STAR_STAR] = anon_sym_STAR_STAR, + [anon_sym_AMP_AMP] = anon_sym_AMP_AMP, + [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE, + [anon_sym_AMP] = anon_sym_AMP, + [anon_sym_PIPE] = anon_sym_PIPE, + [anon_sym_CARET] = anon_sym_CARET, + [anon_sym_LT_LT] = anon_sym_LT_LT, + [anon_sym_GT_GT] = anon_sym_GT_GT, + [anon_sym_PLUS] = anon_sym_PLUS, + [anon_sym_DASH] = anon_sym_DASH, + [anon_sym_STAR] = anon_sym_STAR, + [anon_sym_PERCENT] = anon_sym_PERCENT, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_LT_EQ] = anon_sym_LT_EQ, + [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, + [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, + [anon_sym_GT_EQ] = anon_sym_GT_EQ, + [anon_sym_GT] = anon_sym_GT, [anon_sym_let] = anon_sym_let, [anon_sym_type] = anon_sym_type, [anon_sym_const] = anon_sym_const, @@ -401,53 +401,31 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_external] = anon_sym_external, [anon_sym_self] = anon_sym_self, [anon_sym__] = anon_sym__, + [anon_sym_assume] = anon_sym_assume, + [anon_sym_forall] = anon_sym_forall, + [anon_sym_exists] = anon_sym_exists, + [anon_sym_unique] = anon_sym_unique, [anon_sym_if] = anon_sym_if, - [anon_sym_elseif] = anon_sym_elseif, [anon_sym_else] = anon_sym_else, [anon_sym_loop] = anon_sym_loop, [anon_sym_use] = anon_sym_use, + [anon_sym_COLON_COLON2] = anon_sym_COLON_COLON2, [anon_sym_from] = anon_sym_from, [anon_sym_return] = anon_sym_return, - [anon_sym_forall] = anon_sym_forall, - [anon_sym_assume] = anon_sym_assume, - [anon_sym_exists] = anon_sym_exists, - [anon_sym_unique] = anon_sym_unique, [sym_uzumaki_keyword] = sym_uzumaki_keyword, [sym_mut_keyword] = sym_mut_keyword, [sym_unary_not] = sym_unary_not, - [sym_add_operator] = sym_add_operator, - [anon_sym_DASH] = anon_sym_DASH, - [sym_mul_operator] = sym_mul_operator, - [sym_pow_operator] = sym_pow_operator, - [sym_mod_operator] = sym_mod_operator, - [sym_and_operator] = sym_and_operator, - [sym_or_operator] = sym_or_operator, - [sym_shift_left_operator] = sym_shift_left_operator, - [sym_shift_right_operator] = sym_shift_right_operator, - [sym_bit_and_operator] = sym_bit_and_operator, - [sym_bit_or_operator] = sym_bit_or_operator, - [sym_bit_xor_operator] = sym_bit_xor_operator, - [anon_sym_LT] = anon_sym_LT, - [anon_sym_GT] = anon_sym_GT, - [sym_less_equal_operator] = sym_less_equal_operator, - [sym_greater_equal_operator] = sym_greater_equal_operator, - [sym_equals_operator] = sym_equals_operator, - [sym_not_equals_operator] = sym_not_equals_operator, - [sym_assign_operator] = sym_assign_operator, - [sym_expand_operator] = sym_expand_operator, - [sym_attribute_access_operator] = sym_attribute_access_operator, - [anon_sym_LBRACE] = anon_sym_LBRACE, - [anon_sym_RBRACE] = anon_sym_RBRACE, - [anon_sym_COLON] = anon_sym_COLON, [anon_sym_true] = anon_sym_true, [anon_sym_false] = anon_sym_false, [anon_sym_DQUOTE] = anon_sym_DQUOTE, [sym__string_literal_content] = sym__string_literal_content, [aux_sym_number_literal_token1] = aux_sym_number_literal_token1, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, [anon_sym_constructor] = anon_sym_constructor, [anon_sym_proof] = anon_sym_proof, [anon_sym_uzumaki] = anon_sym_uzumaki, [sym__identifier] = sym__identifier, + [sym_docstring] = sym_docstring, [sym_comment] = sym_comment, [sym_source_file] = sym_source_file, [sym__statement] = sym__statement, @@ -464,6 +442,8 @@ static const TSSymbol ts_symbol_map[] = { [sym__block] = sym__block, [sym_array_index_access_expression] = sym_array_index_access_expression, [sym_member_access_expression] = sym_member_access_expression, + [sym__identifier_like_embedded_type] = sym__identifier_like_embedded_type, + [sym_type_member_access_expression] = sym_type_member_access_expression, [sym_function_call_expression] = sym_function_call_expression, [sym_struct_expression] = sym_struct_expression, [sym_expression_statement] = sym_expression_statement, @@ -495,22 +475,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_loop_statement] = sym_loop_statement, [sym_use_directive] = sym_use_directive, [sym_return_statement] = sym_return_statement, - [sym_function_keyword] = sym_function_keyword, - [sym__forall_keyword] = sym__forall_keyword, - [sym__assume_keyword] = sym__assume_keyword, - [sym__exists_keyword] = sym__exists_keyword, - [sym__unique_keyword] = sym__unique_keyword, - [sym_sub_operator] = sym_sub_operator, - [sym_less_operator] = sym_less_operator, - [sym_greater_operator] = sym_greater_operator, - [sym_rightarrow_operator] = sym_rightarrow_operator, - [sym__lcb_symbol] = sym__lcb_symbol, - [sym__rcb_symbol] = sym__rcb_symbol, - [sym__lrb_symbol] = sym__lrb_symbol, - [sym__rrb_symbol] = sym__rrb_symbol, - [sym__comma_symbol] = sym__comma_symbol, - [sym__typedef_symbol] = sym__typedef_symbol, - [sym__terminal_symbol] = sym__terminal_symbol, [sym_bool_literal] = sym_bool_literal, [sym_string_literal] = sym_string_literal, [sym_number_literal] = sym_number_literal, @@ -521,6 +485,7 @@ static const TSSymbol ts_symbol_map[] = { [sym__simple_name] = sym__simple_name, [sym_qualified_name] = sym_qualified_name, [sym_generic_name] = sym_generic_name, + [sym__bracketed_generic_name] = sym__bracketed_generic_name, [sym_type_argument_list_definition] = sym_type_argument_list_definition, [sym_type_argument_list] = sym_type_argument_list, [sym__reserved_identifier] = sym__reserved_identifier, @@ -539,7 +504,6 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_array_literal_repeat1] = aux_sym_array_literal_repeat1, [aux_sym_type_argument_list_definition_repeat1] = aux_sym_type_argument_list_definition_repeat1, [aux_sym_type_argument_list_repeat1] = aux_sym_type_argument_list_repeat1, - [alias_sym_type_parameters] = alias_sym_type_parameters, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -583,7 +547,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_LPAREN_RPAREN] = { + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { .visible = true, .named = false, }, @@ -607,213 +575,209 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LPAREN] = { + [anon_sym_DOT] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { + [anon_sym_COLON_COLON] = { .visible = true, .named = false, }, - [anon_sym_RPAREN] = { + [anon_sym_COLON] = { .visible = true, .named = false, }, - [anon_sym_assert] = { + [anon_sym_COMMA] = { .visible = true, .named = false, }, - [anon_sym_break] = { + [anon_sym_RPAREN2] = { .visible = true, .named = false, }, - [anon_sym_let] = { + [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_type] = { + [anon_sym_RBRACE] = { .visible = true, .named = false, }, - [anon_sym_const] = { + [anon_sym_EQ] = { .visible = true, .named = false, }, - [anon_sym_spec] = { + [anon_sym_assert] = { .visible = true, .named = false, }, - [anon_sym_enum] = { + [anon_sym_break] = { .visible = true, .named = false, }, - [anon_sym_struct] = { + [anon_sym_STAR_STAR] = { .visible = true, .named = false, }, - [anon_sym_external] = { + [anon_sym_AMP_AMP] = { .visible = true, .named = false, }, - [anon_sym_self] = { + [anon_sym_PIPE_PIPE] = { .visible = true, .named = false, }, - [anon_sym__] = { + [anon_sym_AMP] = { .visible = true, .named = false, }, - [anon_sym_if] = { + [anon_sym_PIPE] = { .visible = true, .named = false, }, - [anon_sym_elseif] = { + [anon_sym_CARET] = { .visible = true, .named = false, }, - [anon_sym_else] = { + [anon_sym_LT_LT] = { .visible = true, .named = false, }, - [anon_sym_loop] = { + [anon_sym_GT_GT] = { .visible = true, .named = false, }, - [anon_sym_use] = { + [anon_sym_PLUS] = { .visible = true, .named = false, }, - [anon_sym_from] = { + [anon_sym_DASH] = { .visible = true, .named = false, }, - [anon_sym_return] = { + [anon_sym_STAR] = { .visible = true, .named = false, }, - [anon_sym_forall] = { + [anon_sym_PERCENT] = { .visible = true, .named = false, }, - [anon_sym_assume] = { + [anon_sym_LT] = { .visible = true, .named = false, }, - [anon_sym_exists] = { + [anon_sym_LT_EQ] = { .visible = true, .named = false, }, - [anon_sym_unique] = { + [anon_sym_EQ_EQ] = { .visible = true, .named = false, }, - [sym_uzumaki_keyword] = { + [anon_sym_BANG_EQ] = { .visible = true, - .named = true, + .named = false, }, - [sym_mut_keyword] = { + [anon_sym_GT_EQ] = { .visible = true, - .named = true, + .named = false, }, - [sym_unary_not] = { + [anon_sym_GT] = { .visible = true, - .named = true, + .named = false, }, - [sym_add_operator] = { + [anon_sym_let] = { .visible = true, - .named = true, + .named = false, }, - [anon_sym_DASH] = { + [anon_sym_type] = { .visible = true, .named = false, }, - [sym_mul_operator] = { + [anon_sym_const] = { .visible = true, - .named = true, + .named = false, }, - [sym_pow_operator] = { + [anon_sym_spec] = { .visible = true, - .named = true, + .named = false, }, - [sym_mod_operator] = { + [anon_sym_enum] = { .visible = true, - .named = true, + .named = false, }, - [sym_and_operator] = { + [anon_sym_struct] = { .visible = true, - .named = true, + .named = false, }, - [sym_or_operator] = { + [anon_sym_external] = { .visible = true, - .named = true, + .named = false, }, - [sym_shift_left_operator] = { + [anon_sym_self] = { .visible = true, - .named = true, + .named = false, }, - [sym_shift_right_operator] = { + [anon_sym__] = { .visible = true, - .named = true, + .named = false, }, - [sym_bit_and_operator] = { + [anon_sym_assume] = { .visible = true, - .named = true, + .named = false, }, - [sym_bit_or_operator] = { + [anon_sym_forall] = { .visible = true, - .named = true, + .named = false, }, - [sym_bit_xor_operator] = { + [anon_sym_exists] = { .visible = true, - .named = true, + .named = false, }, - [anon_sym_LT] = { + [anon_sym_unique] = { .visible = true, .named = false, }, - [anon_sym_GT] = { + [anon_sym_if] = { .visible = true, .named = false, }, - [sym_less_equal_operator] = { + [anon_sym_else] = { .visible = true, - .named = true, + .named = false, }, - [sym_greater_equal_operator] = { + [anon_sym_loop] = { .visible = true, - .named = true, + .named = false, }, - [sym_equals_operator] = { + [anon_sym_use] = { .visible = true, - .named = true, + .named = false, }, - [sym_not_equals_operator] = { + [anon_sym_COLON_COLON2] = { .visible = true, - .named = true, + .named = false, }, - [sym_assign_operator] = { + [anon_sym_from] = { .visible = true, - .named = true, + .named = false, }, - [sym_expand_operator] = { + [anon_sym_return] = { .visible = true, - .named = true, + .named = false, }, - [sym_attribute_access_operator] = { + [sym_uzumaki_keyword] = { .visible = true, .named = true, }, - [anon_sym_LBRACE] = { - .visible = true, - .named = false, - }, - [anon_sym_RBRACE] = { + [sym_mut_keyword] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_COLON] = { + [sym_unary_not] = { .visible = true, - .named = false, + .named = true, }, [anon_sym_true] = { .visible = true, @@ -835,6 +799,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, [anon_sym_constructor] = { .visible = true, .named = false, @@ -851,6 +819,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_docstring] = { + .visible = true, + .named = true, + }, [sym_comment] = { .visible = true, .named = true, @@ -915,6 +887,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__identifier_like_embedded_type] = { + .visible = false, + .named = true, + }, + [sym_type_member_access_expression] = { + .visible = true, + .named = true, + }, [sym_function_call_expression] = { .visible = true, .named = true, @@ -1039,70 +1019,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_function_keyword] = { - .visible = true, - .named = true, - }, - [sym__forall_keyword] = { - .visible = false, - .named = true, - }, - [sym__assume_keyword] = { - .visible = false, - .named = true, - }, - [sym__exists_keyword] = { - .visible = false, - .named = true, - }, - [sym__unique_keyword] = { - .visible = false, - .named = true, - }, - [sym_sub_operator] = { - .visible = true, - .named = true, - }, - [sym_less_operator] = { - .visible = true, - .named = true, - }, - [sym_greater_operator] = { - .visible = true, - .named = true, - }, - [sym_rightarrow_operator] = { - .visible = true, - .named = true, - }, - [sym__lcb_symbol] = { - .visible = false, - .named = true, - }, - [sym__rcb_symbol] = { - .visible = false, - .named = true, - }, - [sym__lrb_symbol] = { - .visible = false, - .named = true, - }, - [sym__rrb_symbol] = { - .visible = false, - .named = true, - }, - [sym__comma_symbol] = { - .visible = false, - .named = true, - }, - [sym__typedef_symbol] = { - .visible = false, - .named = true, - }, - [sym__terminal_symbol] = { - .visible = false, - .named = true, - }, [sym_bool_literal] = { .visible = true, .named = true, @@ -1143,6 +1059,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__bracketed_generic_name] = { + .visible = false, + .named = true, + }, [sym_type_argument_list_definition] = { .visible = true, .named = true, @@ -1215,10 +1135,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [alias_sym_type_parameters] = { - .visible = true, - .named = true, - }, }; enum ts_field_identifiers { @@ -1300,390 +1216,345 @@ static const char * const ts_field_names[] = { static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 1}, - [3] = {.index = 2, .length = 1}, - [4] = {.index = 3, .length = 2}, - [5] = {.index = 5, .length = 2}, - [6] = {.index = 7, .length = 3}, - [7] = {.index = 10, .length = 1}, - [8] = {.index = 11, .length = 2}, - [9] = {.index = 13, .length = 1}, - [10] = {.index = 14, .length = 2}, - [11] = {.index = 16, .length = 1}, - [12] = {.index = 17, .length = 3}, - [13] = {.index = 20, .length = 4}, - [14] = {.index = 24, .length = 2}, - [15] = {.index = 26, .length = 1}, - [16] = {.index = 27, .length = 2}, - [17] = {.index = 29, .length = 1}, - [18] = {.index = 30, .length = 1}, - [19] = {.index = 31, .length = 1}, - [20] = {.index = 32, .length = 1}, - [21] = {.index = 33, .length = 1}, - [22] = {.index = 34, .length = 4}, + [2] = {.index = 1, .length = 3}, + [3] = {.index = 4, .length = 1}, + [4] = {.index = 5, .length = 1}, + [5] = {.index = 6, .length = 1}, + [6] = {.index = 7, .length = 2}, + [7] = {.index = 9, .length = 2}, + [8] = {.index = 11, .length = 1}, + [9] = {.index = 12, .length = 1}, + [10] = {.index = 13, .length = 1}, + [11] = {.index = 14, .length = 1}, + [12] = {.index = 15, .length = 1}, + [13] = {.index = 16, .length = 1}, + [14] = {.index = 17, .length = 4}, + [15] = {.index = 21, .length = 2}, + [16] = {.index = 23, .length = 2}, + [17] = {.index = 25, .length = 2}, + [18] = {.index = 27, .length = 1}, + [19] = {.index = 28, .length = 3}, + [20] = {.index = 31, .length = 4}, + [21] = {.index = 35, .length = 2}, + [22] = {.index = 37, .length = 1}, [23] = {.index = 38, .length = 2}, - [24] = {.index = 40, .length = 2}, - [25] = {.index = 42, .length = 1}, - [26] = {.index = 43, .length = 3}, - [27] = {.index = 46, .length = 2}, - [28] = {.index = 48, .length = 2}, - [29] = {.index = 50, .length = 2}, - [30] = {.index = 52, .length = 2}, - [31] = {.index = 54, .length = 4}, - [32] = {.index = 58, .length = 1}, - [33] = {.index = 59, .length = 1}, - [34] = {.index = 60, .length = 2}, - [35] = {.index = 62, .length = 1}, - [36] = {.index = 63, .length = 2}, - [37] = {.index = 65, .length = 2}, - [38] = {.index = 67, .length = 2}, - [39] = {.index = 69, .length = 3}, - [40] = {.index = 72, .length = 3}, - [41] = {.index = 75, .length = 2}, - [42] = {.index = 77, .length = 2}, - [43] = {.index = 79, .length = 2}, - [44] = {.index = 81, .length = 2}, - [45] = {.index = 83, .length = 1}, - [46] = {.index = 84, .length = 2}, - [47] = {.index = 86, .length = 3}, - [48] = {.index = 89, .length = 1}, - [49] = {.index = 90, .length = 1}, - [50] = {.index = 91, .length = 3}, - [51] = {.index = 94, .length = 5}, - [52] = {.index = 99, .length = 2}, - [53] = {.index = 101, .length = 3}, - [54] = {.index = 104, .length = 3}, - [55] = {.index = 107, .length = 3}, - [56] = {.index = 110, .length = 4}, - [57] = {.index = 114, .length = 2}, - [58] = {.index = 116, .length = 2}, - [59] = {.index = 118, .length = 2}, - [60] = {.index = 120, .length = 2}, - [61] = {.index = 122, .length = 4}, - [62] = {.index = 126, .length = 3}, - [63] = {.index = 129, .length = 4}, - [64] = {.index = 133, .length = 4}, - [65] = {.index = 137, .length = 4}, - [66] = {.index = 141, .length = 3}, - [67] = {.index = 144, .length = 3}, - [68] = {.index = 147, .length = 2}, - [69] = {.index = 149, .length = 5}, - [70] = {.index = 154, .length = 3}, - [71] = {.index = 157, .length = 5}, - [72] = {.index = 162, .length = 3}, - [73] = {.index = 165, .length = 2}, - [74] = {.index = 167, .length = 5}, + [24] = {.index = 40, .length = 1}, + [25] = {.index = 41, .length = 1}, + [26] = {.index = 42, .length = 2}, + [27] = {.index = 44, .length = 2}, + [28] = {.index = 46, .length = 2}, + [29] = {.index = 48, .length = 2}, + [30] = {.index = 50, .length = 2}, + [31] = {.index = 52, .length = 4}, + [32] = {.index = 56, .length = 1}, + [33] = {.index = 57, .length = 1}, + [34] = {.index = 58, .length = 2}, + [35] = {.index = 60, .length = 2}, + [36] = {.index = 62, .length = 1}, + [37] = {.index = 63, .length = 3}, + [38] = {.index = 66, .length = 2}, + [39] = {.index = 68, .length = 2}, + [40] = {.index = 70, .length = 3}, + [41] = {.index = 73, .length = 2}, + [42] = {.index = 75, .length = 2}, + [43] = {.index = 77, .length = 1}, + [44] = {.index = 78, .length = 3}, + [45] = {.index = 81, .length = 1}, + [46] = {.index = 82, .length = 2}, + [47] = {.index = 84, .length = 1}, + [48] = {.index = 85, .length = 5}, + [49] = {.index = 90, .length = 3}, + [50] = {.index = 93, .length = 3}, + [51] = {.index = 96, .length = 2}, + [52] = {.index = 98, .length = 2}, + [53] = {.index = 100, .length = 2}, + [54] = {.index = 102, .length = 4}, + [55] = {.index = 106, .length = 2}, + [56] = {.index = 108, .length = 2}, + [57] = {.index = 110, .length = 2}, + [58] = {.index = 112, .length = 3}, + [59] = {.index = 115, .length = 3}, + [60] = {.index = 118, .length = 3}, + [61] = {.index = 121, .length = 3}, + [62] = {.index = 124, .length = 4}, + [63] = {.index = 128, .length = 4}, + [64] = {.index = 132, .length = 4}, + [65] = {.index = 136, .length = 4}, + [66] = {.index = 140, .length = 3}, + [67] = {.index = 143, .length = 5}, + [68] = {.index = 148, .length = 3}, + [69] = {.index = 151, .length = 3}, + [70] = {.index = 154, .length = 2}, + [71] = {.index = 156, .length = 2}, + [72] = {.index = 158, .length = 5}, + [73] = {.index = 163, .length = 5}, + [74] = {.index = 168, .length = 4}, [75] = {.index = 172, .length = 4}, - [76] = {.index = 176, .length = 5}, - [77] = {.index = 181, .length = 4}, - [78] = {.index = 185, .length = 4}, - [79] = {.index = 189, .length = 6}, - [80] = {.index = 195, .length = 2}, + [76] = {.index = 176, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_segment, 1}, [1] = + {field_argument_list, 2}, + {field_body, 3}, {field_name, 1}, - [2] = + [4] = + {field_type, 0}, + [5] = + {field_name, 1}, + [6] = {field_value, 0}, - [3] = + [7] = {field_segment, 1}, {field_segment, 2, .inherited = true}, - [5] = + [9] = {field_segment, 0, .inherited = true}, {field_segment, 1, .inherited = true}, - [7] = - {field_argument_list, 2}, - {field_body, 3}, - {field_name, 1}, - [10] = - {field_arguments, 1}, [11] = - {field_name, 1}, - {field_type, 3}, + {field_arguments, 1}, + [12] = + {field_mut, 0}, [13] = - {field_base_type, 0}, + {field_argument, 1}, [14] = - {field_name, 1}, - {field_variant, 3}, + {field_base_type, 0}, + [15] = + {field_statement, 0}, [16] = - {field_field, 0}, + {field_body, 1}, [17] = - {field_field, 3, .inherited = true}, + {field_argument_list, 3}, + {field_body, 4}, + {field_name, 1}, + {field_type_parameters, 2}, + [21] = + {field_type, 0}, + {field_type, 2, .inherited = true}, + [23] = + {field_name, 1}, + {field_type, 3}, + [25] = + {field_name, 1}, + {field_variant, 3}, + [27] = + {field_field, 0}, + [28] = + {field_field, 3, .inherited = true}, {field_name, 1}, {field_value, 3, .inherited = true}, - [20] = + [31] = {field_field, 0, .inherited = true}, {field_field, 1, .inherited = true}, {field_value, 0, .inherited = true}, {field_value, 1, .inherited = true}, - [24] = + [35] = {field_argument_list, 3}, {field_name, 2}, - [26] = + [37] = {field_imported_type, 1}, - [27] = + [38] = {field_imported_type, 0, .inherited = true}, {field_imported_type, 1, .inherited = true}, - [29] = + [40] = {field_type, 1}, - [30] = - {field_body, 1}, - [31] = - {field_statement, 0}, - [32] = - {field_mut, 0}, - [33] = + [41] = + {field_type, 2}, + [42] = {field_argument, 1}, - [34] = - {field_argument_list, 3}, - {field_body, 4}, - {field_name, 1}, - {field_type_parameters, 2}, - [38] = + {field_argument, 2, .inherited = true}, + [44] = + {field_argument, 0, .inherited = true}, + {field_argument, 1, .inherited = true}, + [46] = {field_name, 2}, {field_qualifier, 0}, - [40] = - {field_alias, 0}, - {field_name, 2}, - [42] = - {field_variant, 1}, - [43] = - {field_name, 1}, - {field_variant, 3}, - {field_variant, 4, .inherited = true}, - [46] = - {field_variant, 0, .inherited = true}, - {field_variant, 1, .inherited = true}, [48] = {field_name, 0}, {field_type, 2}, [50] = - {field_type, 1}, - {field_type, 2, .inherited = true}, + {field_alias, 0}, + {field_name, 2}, [52] = - {field_type, 0, .inherited = true}, - {field_type, 1, .inherited = true}, - [54] = {field_argument_list, 2}, {field_body, 5}, {field_name, 1}, {field_returns, 4}, - [58] = + [56] = {field_operator, 0}, - [59] = + [57] = {field_statement, 1, .inherited = true}, - [60] = + [58] = {field_statement, 0, .inherited = true}, {field_statement, 1, .inherited = true}, + [60] = + {field_type, 0, .inherited = true}, + {field_type, 1, .inherited = true}, [62] = - {field_type, 2}, + {field_variant, 1}, [63] = - {field_argument, 1}, - {field_argument, 2, .inherited = true}, - [65] = - {field_argument, 0, .inherited = true}, - {field_argument, 1, .inherited = true}, - [67] = + {field_name, 1}, + {field_variant, 3}, + {field_variant, 4, .inherited = true}, + [66] = + {field_variant, 0, .inherited = true}, + {field_variant, 1, .inherited = true}, + [68] = {field_arguments, 1}, {field_returns, 3}, - [69] = + [70] = + {field_mut, 0}, {field_name, 1}, {field_type, 3}, - {field_value, 5}, - [72] = - {field_argument_list, 3}, - {field_name, 2}, - {field_returns, 5}, - [75] = - {field_from_literal, 5}, - {field_imported_type, 2}, - [77] = - {field_imported_type, 4}, - {field_segment, 1}, - [79] = + [73] = {field_condition, 1}, {field_if_arm, 2}, - [81] = + [75] = {field_body, 2}, {field_condition, 1}, - [83] = + [77] = {field_expression, 1}, - [84] = - {field_expression, 0}, - {field_name, 2}, - [86] = + [78] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [89] = + [81] = {field_function, 0}, - [90] = + [82] = + {field_expression, 0}, + {field_name, 2}, + [84] = {field_name, 0}, - [91] = - {field_mut, 0}, - {field_name, 1}, - {field_type, 3}, - [94] = + [85] = {field_argument_list, 3}, {field_body, 6}, {field_name, 1}, {field_returns, 5}, {field_type_parameters, 2}, - [99] = - {field_length, 3}, - {field_type, 1}, - [101] = - {field_from_literal, 6}, + [90] = + {field_name, 1}, + {field_type, 3}, + {field_value, 5}, + [93] = + {field_argument_list, 3}, + {field_name, 2}, + {field_returns, 5}, + [96] = + {field_from_literal, 5}, {field_imported_type, 2}, - {field_imported_type, 3, .inherited = true}, - [104] = + [98] = {field_imported_type, 4}, - {field_imported_type, 5, .inherited = true}, - {field_segment, 1}, - [107] = - {field_imported_type, 5}, {field_segment, 1}, - {field_segment, 2, .inherited = true}, - [110] = + [100] = + {field_length, 3}, + {field_type, 1}, + [102] = {field_condition, 1}, {field_else_if_arm, 3, .inherited = true}, {field_else_if_condition, 3, .inherited = true}, {field_if_arm, 2}, - [114] = - {field_array, 0}, - {field_index, 2}, - [116] = + [106] = {field_argument, 2}, {field_function, 0}, - [118] = + [108] = + {field_array, 0}, + {field_index, 2}, + [110] = {field_left, 0}, {field_right, 2}, - [120] = - {field_function, 0}, - {field_type_parameters, 1}, - [122] = + [112] = + {field_from_literal, 6}, + {field_imported_type, 2}, + {field_imported_type, 3, .inherited = true}, + [115] = + {field_imported_type, 4}, + {field_imported_type, 5, .inherited = true}, + {field_segment, 1}, + [118] = {field_imported_type, 5}, - {field_imported_type, 6, .inherited = true}, {field_segment, 1}, {field_segment, 2, .inherited = true}, - [126] = + [121] = {field_condition, 1}, {field_else_arm, 4}, {field_if_arm, 2}, - [129] = + [124] = {field_else_if_arm, 0, .inherited = true}, {field_else_if_arm, 1, .inherited = true}, {field_else_if_condition, 0, .inherited = true}, {field_else_if_condition, 1, .inherited = true}, - [133] = + [128] = {field_argument, 2}, {field_argument, 3, .inherited = true}, {field_argument_name, 3, .inherited = true}, {field_function, 0}, - [137] = + [132] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, {field_argument_name, 0, .inherited = true}, {field_argument_name, 1, .inherited = true}, - [141] = - {field_argument, 3}, - {field_function, 0}, - {field_type_parameters, 1}, - [144] = + [136] = + {field_imported_type, 5}, + {field_imported_type, 6, .inherited = true}, + {field_segment, 1}, + {field_segment, 2, .inherited = true}, + [140] = {field_mut, 1}, {field_name, 2}, {field_type, 4}, - [147] = - {field_else_if_arm, 2}, - {field_else_if_condition, 1}, - [149] = + [143] = {field_condition, 1}, {field_else_arm, 5}, {field_else_if_arm, 3, .inherited = true}, {field_else_if_condition, 3, .inherited = true}, {field_if_arm, 2}, - [154] = + [148] = {field_argument, 4}, {field_argument_name, 2}, {field_function, 0}, - [157] = - {field_argument, 3}, - {field_argument, 4, .inherited = true}, - {field_argument_name, 4, .inherited = true}, - {field_function, 0}, - {field_type_parameters, 1}, - [162] = + [151] = {field_field_name, 2}, {field_field_value, 4}, {field_name, 0}, - [165] = + [154] = + {field_else_if_arm, 3}, + {field_else_if_condition, 2}, + [156] = {field_argument, 3}, {field_argument_name, 1}, - [167] = + [158] = {field_argument, 4}, {field_argument, 5, .inherited = true}, {field_argument_name, 2}, {field_argument_name, 5, .inherited = true}, {field_function, 0}, - [172] = - {field_argument, 5}, - {field_argument_name, 3}, - {field_function, 0}, - {field_type_parameters, 1}, - [176] = + [163] = {field_field_name, 2}, {field_field_name, 5, .inherited = true}, {field_field_value, 4}, {field_field_value, 5, .inherited = true}, {field_name, 0}, - [181] = + [168] = {field_field_name, 0, .inherited = true}, {field_field_name, 1, .inherited = true}, {field_field_value, 0, .inherited = true}, {field_field_value, 1, .inherited = true}, - [185] = + [172] = {field_mut, 1}, {field_name, 2}, {field_type, 4}, {field_value, 6}, - [189] = - {field_argument, 5}, - {field_argument, 6, .inherited = true}, - {field_argument_name, 3}, - {field_argument_name, 6, .inherited = true}, - {field_function, 0}, - {field_type_parameters, 1}, - [195] = + [176] = {field_field_name, 1}, {field_field_value, 3}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, - [60] = { - [1] = alias_sym_type_parameters, - }, - [66] = { - [1] = alias_sym_type_parameters, - }, - [71] = { - [1] = alias_sym_type_parameters, - }, - [75] = { - [1] = alias_sym_type_parameters, - }, - [79] = { - [1] = alias_sym_type_parameters, - }, }; static const uint16_t ts_non_terminal_alias_map[] = { - sym_type_argument_list, 2, - sym_type_argument_list, - alias_sym_type_parameters, 0, }; @@ -1692,23 +1563,23 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 3, + [4] = 4, [5] = 3, [6] = 2, [7] = 2, [8] = 3, [9] = 2, - [10] = 10, + [10] = 3, [11] = 11, [12] = 12, - [13] = 13, - [14] = 14, + [13] = 12, + [14] = 12, [15] = 15, - [16] = 16, - [17] = 17, - [18] = 18, - [19] = 19, - [20] = 20, + [16] = 15, + [17] = 15, + [18] = 15, + [19] = 15, + [20] = 15, [21] = 21, [22] = 22, [23] = 23, @@ -1717,7 +1588,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 25, + [29] = 29, [30] = 30, [31] = 31, [32] = 32, @@ -1732,53 +1603,53 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [41] = 41, [42] = 42, [43] = 43, - [44] = 31, - [45] = 33, - [46] = 16, - [47] = 17, - [48] = 18, + [44] = 44, + [45] = 42, + [46] = 46, + [47] = 47, + [48] = 48, [49] = 49, - [50] = 19, - [51] = 20, - [52] = 21, - [53] = 22, - [54] = 23, - [55] = 24, - [56] = 49, - [57] = 57, - [58] = 58, - [59] = 59, - [60] = 60, - [61] = 61, - [62] = 62, - [63] = 63, - [64] = 64, - [65] = 65, - [66] = 66, - [67] = 67, - [68] = 68, - [69] = 69, - [70] = 70, - [71] = 71, - [72] = 72, - [73] = 73, - [74] = 74, - [75] = 65, + [50] = 50, + [51] = 43, + [52] = 52, + [53] = 27, + [54] = 41, + [55] = 25, + [56] = 26, + [57] = 46, + [58] = 47, + [59] = 48, + [60] = 49, + [61] = 50, + [62] = 42, + [63] = 44, + [64] = 46, + [65] = 47, + [66] = 48, + [67] = 49, + [68] = 50, + [69] = 43, + [70] = 52, + [71] = 27, + [72] = 41, + [73] = 25, + [74] = 26, + [75] = 52, [76] = 76, - [77] = 77, - [78] = 61, - [79] = 63, + [77] = 76, + [78] = 76, + [79] = 76, [80] = 80, - [81] = 60, + [81] = 81, [82] = 82, [83] = 83, [84] = 84, - [85] = 85, - [86] = 64, + [85] = 15, + [86] = 86, [87] = 87, [88] = 88, [89] = 89, - [90] = 62, + [90] = 90, [91] = 91, [92] = 92, [93] = 93, @@ -1789,22 +1660,22 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [98] = 98, [99] = 99, [100] = 100, - [101] = 101, - [102] = 102, - [103] = 103, - [104] = 104, - [105] = 105, - [106] = 106, + [101] = 12, + [102] = 86, + [103] = 87, + [104] = 88, + [105] = 89, + [106] = 90, [107] = 107, [108] = 108, - [109] = 109, + [109] = 83, [110] = 110, [111] = 111, [112] = 112, - [113] = 113, + [113] = 12, [114] = 114, [115] = 115, - [116] = 116, + [116] = 15, [117] = 117, [118] = 118, [119] = 119, @@ -1813,9 +1684,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [122] = 122, [123] = 123, [124] = 124, - [125] = 125, - [126] = 126, - [127] = 127, + [125] = 12, + [126] = 12, + [127] = 15, [128] = 128, [129] = 129, [130] = 130, @@ -1824,64 +1695,64 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [133] = 133, [134] = 134, [135] = 135, - [136] = 128, + [136] = 136, [137] = 137, - [138] = 138, + [138] = 135, [139] = 139, - [140] = 140, + [140] = 135, [141] = 141, [142] = 142, [143] = 143, [144] = 144, [145] = 145, - [146] = 141, + [146] = 119, [147] = 147, - [148] = 148, + [148] = 121, [149] = 149, - [150] = 150, - [151] = 142, + [150] = 136, + [151] = 151, [152] = 152, - [153] = 153, - [154] = 154, - [155] = 155, + [153] = 135, + [154] = 149, + [155] = 147, [156] = 156, [157] = 157, - [158] = 156, - [159] = 157, - [160] = 129, - [161] = 130, - [162] = 131, - [163] = 132, - [164] = 133, - [165] = 134, - [166] = 135, - [167] = 143, - [168] = 137, - [169] = 141, - [170] = 154, + [158] = 158, + [159] = 159, + [160] = 160, + [161] = 156, + [162] = 162, + [163] = 163, + [164] = 164, + [165] = 165, + [166] = 166, + [167] = 167, + [168] = 168, + [169] = 169, + [170] = 170, [171] = 171, - [172] = 153, - [173] = 149, - [174] = 171, - [175] = 117, - [176] = 125, + [172] = 172, + [173] = 173, + [174] = 174, + [175] = 175, + [176] = 176, [177] = 177, - [178] = 117, + [178] = 178, [179] = 179, - [180] = 125, - [181] = 181, - [182] = 182, + [180] = 180, + [181] = 133, + [182] = 130, [183] = 183, [184] = 184, - [185] = 185, - [186] = 186, - [187] = 185, - [188] = 188, + [185] = 183, + [186] = 183, + [187] = 187, + [188] = 184, [189] = 189, [190] = 190, [191] = 191, [192] = 192, - [193] = 193, + [193] = 184, [194] = 194, [195] = 195, [196] = 196, @@ -1890,28 +1761,28 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [199] = 199, [200] = 200, [201] = 201, - [202] = 123, - [203] = 203, - [204] = 204, - [205] = 205, - [206] = 206, - [207] = 207, - [208] = 206, - [209] = 207, - [210] = 98, - [211] = 211, - [212] = 212, - [213] = 213, - [214] = 214, - [215] = 213, - [216] = 216, - [217] = 217, - [218] = 218, - [219] = 219, - [220] = 214, - [221] = 94, - [222] = 93, - [223] = 223, + [202] = 199, + [203] = 192, + [204] = 194, + [205] = 195, + [206] = 196, + [207] = 191, + [208] = 197, + [209] = 198, + [210] = 189, + [211] = 200, + [212] = 190, + [213] = 200, + [214] = 199, + [215] = 192, + [216] = 194, + [217] = 195, + [218] = 196, + [219] = 191, + [220] = 197, + [221] = 198, + [222] = 189, + [223] = 190, [224] = 224, [225] = 225, [226] = 226, @@ -1929,168 +1800,168 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [238] = 238, [239] = 239, [240] = 240, - [241] = 61, - [242] = 65, - [243] = 64, + [241] = 232, + [242] = 242, + [243] = 243, [244] = 244, [245] = 245, [246] = 246, [247] = 247, [248] = 248, - [249] = 63, - [250] = 77, + [249] = 249, + [250] = 76, [251] = 251, - [252] = 62, + [252] = 252, [253] = 253, [254] = 254, - [255] = 72, + [255] = 255, [256] = 256, - [257] = 60, + [257] = 257, [258] = 258, - [259] = 259, + [259] = 256, [260] = 260, [261] = 261, [262] = 262, [263] = 263, [264] = 264, - [265] = 265, + [265] = 260, [266] = 266, [267] = 267, [268] = 268, [269] = 269, [270] = 270, - [271] = 271, + [271] = 268, [272] = 272, - [273] = 273, + [273] = 270, [274] = 274, - [275] = 272, + [275] = 275, [276] = 276, - [277] = 269, - [278] = 274, - [279] = 274, - [280] = 280, - [281] = 281, - [282] = 93, - [283] = 283, + [277] = 87, + [278] = 278, + [279] = 279, + [280] = 111, + [281] = 88, + [282] = 282, + [283] = 83, [284] = 284, - [285] = 248, - [286] = 286, + [285] = 89, + [286] = 107, [287] = 287, - [288] = 244, - [289] = 289, - [290] = 247, - [291] = 240, + [288] = 90, + [289] = 86, + [290] = 290, + [291] = 291, [292] = 292, - [293] = 61, - [294] = 65, - [295] = 63, - [296] = 60, - [297] = 64, + [293] = 293, + [294] = 294, + [295] = 295, + [296] = 296, + [297] = 297, [298] = 298, [299] = 299, - [300] = 62, + [300] = 300, [301] = 301, - [302] = 302, + [302] = 298, [303] = 303, [304] = 304, [305] = 305, [306] = 306, - [307] = 93, + [307] = 307, [308] = 308, - [309] = 309, + [309] = 306, [310] = 310, [311] = 311, [312] = 312, - [313] = 313, - [314] = 314, - [315] = 315, - [316] = 301, - [317] = 317, - [318] = 299, - [319] = 317, - [320] = 320, - [321] = 321, - [322] = 322, - [323] = 323, - [324] = 94, + [313] = 306, + [314] = 306, + [315] = 304, + [316] = 316, + [317] = 304, + [318] = 310, + [319] = 311, + [320] = 312, + [321] = 310, + [322] = 311, + [323] = 312, + [324] = 304, [325] = 325, [326] = 326, [327] = 327, [328] = 328, [329] = 329, - [330] = 320, + [330] = 275, [331] = 331, - [332] = 238, + [332] = 332, [333] = 333, [334] = 334, [335] = 335, - [336] = 336, + [336] = 287, [337] = 337, [338] = 338, [339] = 339, [340] = 340, [341] = 341, [342] = 342, - [343] = 336, + [343] = 343, [344] = 344, [345] = 345, - [346] = 341, + [346] = 346, [347] = 347, - [348] = 348, - [349] = 349, - [350] = 337, - [351] = 351, - [352] = 352, + [348] = 332, + [349] = 284, + [350] = 86, + [351] = 87, + [352] = 88, [353] = 353, [354] = 354, - [355] = 99, - [356] = 356, + [355] = 279, + [356] = 89, [357] = 357, - [358] = 358, - [359] = 359, - [360] = 360, - [361] = 361, - [362] = 362, - [363] = 363, + [358] = 90, + [359] = 340, + [360] = 83, + [361] = 354, + [362] = 335, + [363] = 338, [364] = 364, [365] = 365, [366] = 366, - [367] = 354, + [367] = 367, [368] = 368, - [369] = 360, - [370] = 361, + [369] = 369, + [370] = 370, [371] = 371, - [372] = 362, - [373] = 363, - [374] = 95, + [372] = 372, + [373] = 335, + [374] = 374, [375] = 375, - [376] = 360, - [377] = 361, - [378] = 362, - [379] = 363, - [380] = 360, - [381] = 361, - [382] = 362, - [383] = 363, - [384] = 353, - [385] = 237, + [376] = 376, + [377] = 377, + [378] = 378, + [379] = 379, + [380] = 380, + [381] = 370, + [382] = 382, + [383] = 383, + [384] = 384, + [385] = 385, [386] = 386, [387] = 387, - [388] = 238, + [388] = 388, [389] = 389, - [390] = 97, - [391] = 354, - [392] = 392, + [390] = 338, + [391] = 391, + [392] = 370, [393] = 393, [394] = 394, [395] = 395, [396] = 396, - [397] = 397, + [397] = 395, [398] = 398, [399] = 399, [400] = 400, - [401] = 401, - [402] = 402, + [401] = 399, + [402] = 400, [403] = 403, [404] = 404, [405] = 405, @@ -2103,37 +1974,73 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [412] = 412, [413] = 413, [414] = 414, - [415] = 415, - [416] = 416, - [417] = 399, + [415] = 398, + [416] = 398, + [417] = 417, [418] = 418, - [419] = 419, - [420] = 420, + [419] = 395, + [420] = 398, [421] = 421, [422] = 422, - [423] = 423, + [423] = 399, [424] = 424, - [425] = 425, - [426] = 426, - [427] = 427, - [428] = 419, - [429] = 429, - [430] = 430, + [425] = 335, + [426] = 338, + [427] = 400, + [428] = 428, + [429] = 428, + [430] = 399, [431] = 431, - [432] = 432, - [433] = 433, - [434] = 434, - [435] = 435, - [436] = 436, - [437] = 431, + [432] = 408, + [433] = 428, + [434] = 400, + [435] = 395, + [436] = 428, + [437] = 437, [438] = 438, [439] = 439, [440] = 440, [441] = 441, - [442] = 436, + [442] = 442, [443] = 443, [444] = 444, [445] = 445, + [446] = 439, + [447] = 447, + [448] = 448, + [449] = 449, + [450] = 450, + [451] = 451, + [452] = 452, + [453] = 453, + [454] = 454, + [455] = 455, + [456] = 456, + [457] = 457, + [458] = 458, + [459] = 459, + [460] = 460, + [461] = 461, + [462] = 462, + [463] = 463, + [464] = 464, + [465] = 465, + [466] = 443, + [467] = 467, + [468] = 468, + [469] = 469, + [470] = 455, + [471] = 471, + [472] = 472, + [473] = 439, + [474] = 474, + [475] = 475, + [476] = 469, + [477] = 477, + [478] = 478, + [479] = 447, + [480] = 462, + [481] = 481, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -2141,2071 +2048,2446 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(133); + if (eof) ADVANCE(142); ADVANCE_MAP( - '!', 205, - '"', 238, - '%', 211, - '&', 216, - '(', 160, + '!', 241, + '"', 246, + '%', 196, + '&', 187, + '\'', 254, + '(', 161, ')', 162, - '*', 209, - '+', 206, - ',', 161, - '-', 208, - '.', 230, - '/', 16, - ':', 233, - ';', 154, - '<', 220, - '=', 228, - '>', 222, - '@', 201, - '[', 153, - ']', 155, - '^', 218, - '_', 180, - 'a', 103, - 'b', 80, - 'c', 79, - 'e', 64, - 'f', 28, - 'i', 17, - 'l', 36, - 'm', 121, - 'p', 98, - 'r', 47, - 's', 46, - 't', 96, - 'u', 18, - '{', 231, - '|', 217, - '}', 232, + '*', 195, + '+', 192, + ',', 174, + '-', 194, + '.', 169, + '/', 24, + ':', 172, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '@', 237, + '[', 163, + ']', 165, + '^', 189, + '_', 216, + 'a', 111, + 'b', 88, + 'c', 87, + 'e', 72, + 'f', 38, + 'i', 25, + 'l', 46, + 'm', 129, + 'p', 106, + 'r', 57, + 's', 56, + 't', 104, + 'u', 26, + '{', 176, + '|', 188, + '}', 177, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(0); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(244); + lookahead == ' ') SKIP(139); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); END_STATE(); case 1: - if (lookahead == '\n') SKIP(6); - if (lookahead == '"') ADVANCE(238); - if (lookahead == '/') ADVANCE(242); + if (lookahead == '\n') SKIP(14); + if (lookahead == '"') ADVANCE(246); + if (lookahead == '/') ADVANCE(251); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(240); + lookahead == ' ') ADVANCE(250); if (lookahead != 0 && - lookahead != '\\') ADVANCE(243); + lookahead != '\\') ADVANCE(252); END_STATE(); case 2: ADVANCE_MAP( - '!', 204, - '"', 238, - '(', 160, - ')', 162, - ',', 161, - '-', 207, - '.', 230, - '/', 16, - ':', 233, - ';', 154, - '<', 219, - '=', 227, - '>', 221, - '@', 201, - '[', 153, - ']', 155, - 'a', 320, - 'b', 300, - 'c', 298, - 'e', 343, - 'f', 262, - 'i', 252, - 'l', 268, - 'p', 315, - 'r', 276, - 't', 310, - 'u', 254, - '{', 231, - '}', 232, + '!', 35, + '%', 196, + '&', 187, + '\'', 254, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 193, + '.', 169, + '/', 24, + ':', 172, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '[', 163, + ']', 165, + '^', 189, + 'b', 311, + 'c', 316, + 'f', 304, + 'i', 262, + 'p', 325, + 'u', 264, + '{', 176, + '|', 188, + '}', 177, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(2); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); + lookahead == ' ') SKIP(4); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('d' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 3: ADVANCE_MAP( - '!', 204, - '"', 238, - '(', 160, - ')', 162, - '-', 207, - '/', 16, - '@', 201, - '[', 153, - ']', 155, - 'b', 301, - 'c', 306, - 'f', 263, - 'i', 253, - 'p', 315, - 't', 311, - 'u', 255, + '!', 35, + '%', 196, + '&', 187, + '\'', 254, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 193, + '.', 169, + '/', 24, + ':', 173, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '[', 163, + ']', 165, + '^', 189, + 'b', 311, + 'c', 316, + 'f', 304, + 'i', 262, + 'p', 325, + 'u', 264, + '|', 188, + '}', 177, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(3); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); + lookahead == ' ') SKIP(5); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 4: ADVANCE_MAP( - '!', 204, - '"', 238, - '(', 160, - '-', 207, - '/', 16, - '@', 201, - '[', 153, - 'a', 320, - 'b', 300, - 'c', 298, - 'e', 291, - 'f', 262, - 'i', 252, - 'l', 268, - 'p', 315, - 'r', 276, - 't', 310, - 'u', 254, - '{', 231, - '}', 232, + '!', 35, + '%', 196, + '&', 187, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 193, + '.', 169, + '/', 24, + ':', 173, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '[', 163, + ']', 165, + '^', 189, + 'b', 311, + 'c', 316, + 'f', 304, + 'i', 262, + 'p', 325, + 'u', 264, + '{', 176, + '|', 188, + '}', 177, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(4); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('d' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 5: ADVANCE_MAP( - '!', 204, - '"', 238, - '(', 160, - '-', 207, - '/', 16, - '@', 201, - '[', 153, - 'a', 325, - 'b', 301, - 'c', 306, - 'e', 343, - 'f', 262, - 'i', 253, - 'p', 315, - 't', 311, - 'u', 254, - '{', 231, + '!', 35, + '%', 196, + '&', 187, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 193, + '.', 169, + '/', 24, + ':', 173, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '[', 163, + ']', 165, + '^', 189, + 'b', 311, + 'c', 316, + 'f', 304, + 'i', 262, + 'p', 325, + 'u', 264, + '|', 188, + '}', 177, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(5); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('d' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 6: - if (lookahead == '"') ADVANCE(238); - if (lookahead == '/') ADVANCE(16); + ADVANCE_MAP( + '!', 35, + '%', 196, + '&', 187, + '(', 161, + '*', 195, + '+', 192, + '-', 193, + '.', 169, + '/', 24, + ':', 34, + '<', 197, + '=', 36, + '>', 202, + '[', 163, + '^', 189, + 'a', 335, + 'b', 311, + 'c', 316, + 'e', 353, + 'f', 303, + 'i', 262, + 'p', 325, + 'u', 263, + '{', 176, + '|', 188, + ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(6); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 7: ADVANCE_MAP( - '(', 159, - ')', 162, - ',', 161, - '-', 27, - '.', 230, - '/', 16, - ':', 233, - ';', 154, - '<', 219, - '=', 227, - '>', 221, - ']', 155, - 'a', 107, - 'e', 129, - 'f', 81, - 'u', 72, - '{', 231, - '}', 232, + '!', 35, + '%', 196, + '&', 187, + '(', 161, + '*', 195, + '+', 192, + '-', 193, + '.', 169, + '/', 24, + ':', 33, + '<', 197, + '=', 36, + '>', 202, + '[', 163, + '^', 189, + 'a', 335, + 'b', 311, + 'c', 316, + 'e', 353, + 'f', 303, + 'i', 262, + 'p', 325, + 'u', 263, + '{', 176, + '|', 188, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(7); + lookahead == ' ') SKIP(6); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 8: ADVANCE_MAP( - '(', 10, + '!', 240, + '"', 246, + '(', 161, ')', 162, - ',', 161, - '-', 27, - '.', 230, - '/', 16, - ':', 25, - ';', 154, - '>', 221, - '[', 153, - ']', 155, - '_', 181, - 'b', 301, - 'c', 306, - 'f', 294, - 'i', 253, - 'm', 342, - 'p', 315, - 's', 278, - 'u', 255, + '-', 193, + '/', 24, + ';', 164, + '@', 237, + '[', 163, + ']', 165, + 'b', 311, + 'c', 316, + 'f', 272, + 'i', 262, + 'p', 325, + 't', 321, + 'u', 264, ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131); + lookahead == ' ') SKIP(11); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 9: ADVANCE_MAP( - '(', 10, - '/', 16, - '[', 153, - 'b', 301, - 'c', 306, - 'f', 294, - 'i', 253, - 'p', 315, - 'u', 255, + '!', 240, + '"', 246, + '(', 161, + ')', 175, + '-', 193, + '/', 24, + '@', 237, + '[', 163, + 'b', 311, + 'c', 316, + 'f', 272, + 'i', 262, + 'p', 325, + 't', 321, + 'u', 264, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(9); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 10: - if (lookahead == ')') ADVANCE(152); + ADVANCE_MAP( + '!', 240, + '"', 246, + '(', 161, + '-', 193, + '/', 24, + ':', 34, + ';', 164, + '@', 237, + '[', 163, + 'a', 330, + 'b', 310, + 'c', 308, + 'e', 353, + 'f', 271, + 'i', 261, + 'l', 277, + 'p', 325, + 'r', 285, + 't', 320, + 'u', 263, + '{', 176, + '}', 177, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(10); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 11: - if (lookahead == '-') ADVANCE(207); - if (lookahead == '/') ADVANCE(16); - if (lookahead == 'c') ADVANCE(306); - if (lookahead == 'p') ADVANCE(315); - if (lookahead == 'u') ADVANCE(344); - if (lookahead == '{') ADVANCE(231); - if (lookahead == '}') ADVANCE(232); + ADVANCE_MAP( + '!', 240, + '"', 246, + '(', 161, + '-', 193, + '/', 24, + ';', 164, + '@', 237, + '[', 163, + ']', 165, + 'b', 311, + 'c', 316, + 'f', 272, + 'i', 262, + 'p', 325, + 't', 321, + 'u', 264, + ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(11); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 12: - if (lookahead == '/') ADVANCE(16); - if (lookahead == 'c') ADVANCE(306); - if (lookahead == 'f') ADVANCE(294); - if (lookahead == 'p') ADVANCE(315); - if (lookahead == 'u') ADVANCE(344); - if (lookahead == '}') ADVANCE(232); + ADVANCE_MAP( + '!', 240, + '"', 246, + '(', 161, + '-', 193, + '/', 24, + '@', 237, + '[', 163, + 'a', 330, + 'b', 310, + 'c', 308, + 'e', 300, + 'f', 271, + 'i', 261, + 'l', 277, + 'p', 325, + 'r', 285, + 't', 320, + 'u', 263, + '{', 176, + '}', 177, + ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(12); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 13: - if (lookahead == '/') ADVANCE(16); - if (lookahead == 'c') ADVANCE(306); - if (lookahead == 'm') ADVANCE(342); - if (lookahead == 'p') ADVANCE(315); - if (lookahead == 'u') ADVANCE(344); + ADVANCE_MAP( + '!', 240, + '"', 246, + '(', 161, + '-', 193, + '/', 24, + '@', 237, + '[', 163, + 'a', 335, + 'b', 311, + 'c', 316, + 'e', 353, + 'f', 271, + 'i', 262, + 'p', 325, + 't', 321, + 'u', 263, + '{', 176, + ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(13); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 14: - if (lookahead == '/') ADVANCE(16); - if (lookahead == 'c') ADVANCE(306); - if (lookahead == 'p') ADVANCE(315); - if (lookahead == 's') ADVANCE(278); - if (lookahead == 'u') ADVANCE(344); + if (lookahead == '"') ADVANCE(246); + if (lookahead == '/') ADVANCE(24); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(14); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); END_STATE(); case 15: - if (lookahead == '/') ADVANCE(346); + ADVANCE_MAP( + '\'', 254, + '(', 161, + ')', 162, + ',', 174, + '-', 193, + '/', 24, + ':', 173, + ';', 164, + '=', 178, + 'c', 316, + 'p', 325, + 'u', 354, + '{', 176, + '}', 177, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(19); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 16: - if (lookahead == '/') ADVANCE(15); + ADVANCE_MAP( + '\'', 254, + '(', 161, + ')', 175, + ',', 174, + '-', 37, + '/', 24, + ':', 33, + ';', 164, + '=', 178, + '[', 163, + ']', 165, + '_', 217, + 'b', 311, + 'c', 316, + 'f', 304, + 'i', 262, + 'm', 352, + 'p', 325, + 's', 287, + 'u', 264, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(18); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 17: - if (lookahead == '1') ADVANCE(23); - if (lookahead == '3') ADVANCE(19); - if (lookahead == '6') ADVANCE(21); - if (lookahead == '8') ADVANCE(134); - if (lookahead == 'f') ADVANCE(182); + ADVANCE_MAP( + '\'', 254, + ')', 175, + ',', 174, + '-', 37, + '/', 24, + ':', 33, + ';', 164, + '=', 178, + ']', 165, + 'a', 115, + 'e', 137, + 'f', 89, + 'u', 80, + '{', 176, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(20); END_STATE(); case 18: - if (lookahead == '1') ADVANCE(24); - if (lookahead == '3') ADVANCE(20); - if (lookahead == '6') ADVANCE(22); - if (lookahead == '8') ADVANCE(142); - if (lookahead == 'n') ADVANCE(53); - if (lookahead == 's') ADVANCE(39); - if (lookahead == 'z') ADVANCE(123); + ADVANCE_MAP( + '(', 161, + ')', 175, + ',', 174, + '-', 37, + '/', 24, + ';', 164, + '=', 178, + '[', 163, + ']', 165, + '_', 217, + 'b', 311, + 'c', 316, + 'f', 304, + 'i', 262, + 'm', 352, + 'p', 325, + 's', 287, + 'u', 264, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(18); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 19: - if (lookahead == '2') ADVANCE(138); + ADVANCE_MAP( + '(', 161, + ',', 174, + '-', 193, + '/', 24, + ':', 173, + ';', 164, + '=', 178, + 'c', 316, + 'p', 325, + 'u', 354, + '{', 176, + '}', 177, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(19); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 20: - if (lookahead == '2') ADVANCE(146); + ADVANCE_MAP( + ')', 175, + ',', 174, + '-', 37, + '/', 24, + ';', 164, + '=', 178, + ']', 165, + 'a', 115, + 'e', 137, + 'f', 89, + 'u', 80, + '{', 176, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(20); END_STATE(); case 21: - if (lookahead == '4') ADVANCE(140); + if (lookahead == '/') ADVANCE(24); + if (lookahead == 'c') ADVANCE(316); + if (lookahead == 'f') ADVANCE(304); + if (lookahead == 'p') ADVANCE(325); + if (lookahead == 'u') ADVANCE(354); + if (lookahead == '}') ADVANCE(177); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(21); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 22: - if (lookahead == '4') ADVANCE(148); + if (lookahead == '/') ADVANCE(24); + if (lookahead == 'c') ADVANCE(316); + if (lookahead == 'm') ADVANCE(352); + if (lookahead == 'p') ADVANCE(325); + if (lookahead == 'u') ADVANCE(354); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(22); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 23: - if (lookahead == '6') ADVANCE(136); + if (lookahead == '/') ADVANCE(24); + if (lookahead == 'c') ADVANCE(316); + if (lookahead == 'p') ADVANCE(325); + if (lookahead == 's') ADVANCE(287); + if (lookahead == 'u') ADVANCE(354); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(23); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 24: - if (lookahead == '6') ADVANCE(144); + if (lookahead == '/') ADVANCE(357); END_STATE(); case 25: - if (lookahead == ':') ADVANCE(229); + if (lookahead == '1') ADVANCE(31); + if (lookahead == '3') ADVANCE(27); + if (lookahead == '6') ADVANCE(29); + if (lookahead == '8') ADVANCE(143); + if (lookahead == 'f') ADVANCE(226); END_STATE(); case 26: - if (lookahead == '=') ADVANCE(226); + if (lookahead == '1') ADVANCE(32); + if (lookahead == '3') ADVANCE(28); + if (lookahead == '6') ADVANCE(30); + if (lookahead == '8') ADVANCE(151); + if (lookahead == 'n') ADVANCE(62); + if (lookahead == 's') ADVANCE(49); + if (lookahead == 'z') ADVANCE(131); END_STATE(); case 27: - if (lookahead == '>') ADVANCE(158); + if (lookahead == '2') ADVANCE(147); END_STATE(); case 28: - if (lookahead == 'a') ADVANCE(66); - if (lookahead == 'n') ADVANCE(156); - if (lookahead == 'o') ADVANCE(95); - if (lookahead == 'r') ADVANCE(83); + if (lookahead == '2') ADVANCE(155); END_STATE(); case 29: - if (lookahead == 'a') ADVANCE(58); + if (lookahead == '4') ADVANCE(149); END_STATE(); case 30: - if (lookahead == 'a') ADVANCE(59); + if (lookahead == '4') ADVANCE(157); END_STATE(); case 31: - if (lookahead == 'a') ADVANCE(65); + if (lookahead == '6') ADVANCE(145); END_STATE(); case 32: - if (lookahead == 'a') ADVANCE(63); + if (lookahead == '6') ADVANCE(153); END_STATE(); case 33: - if (lookahead == 'c') ADVANCE(174); + if (lookahead == ':') ADVANCE(170); END_STATE(); case 34: - if (lookahead == 'c') ADVANCE(115); + if (lookahead == ':') ADVANCE(233); END_STATE(); case 35: - if (lookahead == 'c') ADVANCE(119); + if (lookahead == '=') ADVANCE(200); END_STATE(); case 36: - if (lookahead == 'e') ADVANCE(111); - if (lookahead == 'o') ADVANCE(82); + if (lookahead == '=') ADVANCE(199); END_STATE(); case 37: - if (lookahead == 'e') ADVANCE(29); + if (lookahead == '>') ADVANCE(168); END_STATE(); case 38: - if (lookahead == 'e') ADVANCE(33); + if (lookahead == 'a') ADVANCE(74); + if (lookahead == 'n') ADVANCE(166); + if (lookahead == 'o') ADVANCE(103); + if (lookahead == 'r') ADVANCE(91); END_STATE(); case 39: - if (lookahead == 'e') ADVANCE(189); + if (lookahead == 'a') ADVANCE(66); END_STATE(); case 40: - if (lookahead == 'e') ADVANCE(185); + if (lookahead == 'a') ADVANCE(67); END_STATE(); case 41: - if (lookahead == 'e') ADVANCE(234); + if (lookahead == 'a') ADVANCE(73); END_STATE(); case 42: - if (lookahead == 'e') ADVANCE(169); + if (lookahead == 'a') ADVANCE(71); END_STATE(); case 43: - if (lookahead == 'e') ADVANCE(236); + if (lookahead == 'c') ADVANCE(210); END_STATE(); case 44: - if (lookahead == 'e') ADVANCE(195); + if (lookahead == 'c') ADVANCE(123); END_STATE(); case 45: - if (lookahead == 'e') ADVANCE(199); + if (lookahead == 'c') ADVANCE(127); END_STATE(); case 46: - if (lookahead == 'e') ADVANCE(60); - if (lookahead == 'p') ADVANCE(38); - if (lookahead == 't') ADVANCE(99); + if (lookahead == 'e') ADVANCE(119); + if (lookahead == 'o') ADVANCE(90); END_STATE(); case 47: - if (lookahead == 'e') ADVANCE(118); + if (lookahead == 'e') ADVANCE(39); END_STATE(); case 48: - if (lookahead == 'e') ADVANCE(100); - if (lookahead == 'u') ADVANCE(69); + if (lookahead == 'e') ADVANCE(43); END_STATE(); case 49: - if (lookahead == 'e') ADVANCE(94); + if (lookahead == 'e') ADVANCE(232); END_STATE(); case 50: - if (lookahead == 'f') ADVANCE(178); + if (lookahead == 'e') ADVANCE(228); END_STATE(); case 51: - if (lookahead == 'f') ADVANCE(248); + if (lookahead == 'e') ADVANCE(242); END_STATE(); case 52: - if (lookahead == 'f') ADVANCE(184); + if (lookahead == 'e') ADVANCE(205); END_STATE(); case 53: - if (lookahead == 'i') ADVANCE(92); + if (lookahead == 'e') ADVANCE(244); END_STATE(); case 54: - if (lookahead == 'i') ADVANCE(250); + if (lookahead == 'e') ADVANCE(218); END_STATE(); case 55: - if (lookahead == 'i') ADVANCE(52); + if (lookahead == 'e') ADVANCE(224); END_STATE(); case 56: - if (lookahead == 'i') ADVANCE(106); + if (lookahead == 'e') ADVANCE(68); + if (lookahead == 'p') ADVANCE(48); + if (lookahead == 't') ADVANCE(107); END_STATE(); case 57: - if (lookahead == 'i') ADVANCE(106); - if (lookahead == 't') ADVANCE(49); + if (lookahead == 'e') ADVANCE(126); END_STATE(); case 58: - if (lookahead == 'k') ADVANCE(165); + if (lookahead == 'e') ADVANCE(108); + if (lookahead == 'u') ADVANCE(77); END_STATE(); case 59: - if (lookahead == 'k') ADVANCE(54); + if (lookahead == 'e') ADVANCE(102); END_STATE(); case 60: - if (lookahead == 'l') ADVANCE(50); + if (lookahead == 'f') ADVANCE(214); END_STATE(); case 61: - if (lookahead == 'l') ADVANCE(150); + if (lookahead == 'f') ADVANCE(257); END_STATE(); case 62: - if (lookahead == 'l') ADVANCE(193); + if (lookahead == 'i') ADVANCE(100); END_STATE(); case 63: - if (lookahead == 'l') ADVANCE(177); + if (lookahead == 'i') ADVANCE(259); END_STATE(); case 64: - if (lookahead == 'l') ADVANCE(105); - if (lookahead == 'n') ADVANCE(120); - if (lookahead == 'x') ADVANCE(57); + if (lookahead == 'i') ADVANCE(114); END_STATE(); case 65: - if (lookahead == 'l') ADVANCE(62); + if (lookahead == 'i') ADVANCE(114); + if (lookahead == 't') ADVANCE(59); END_STATE(); case 66: - if (lookahead == 'l') ADVANCE(109); + if (lookahead == 'k') ADVANCE(182); END_STATE(); case 67: - if (lookahead == 'm') ADVANCE(175); + if (lookahead == 'k') ADVANCE(63); END_STATE(); case 68: - if (lookahead == 'm') ADVANCE(190); + if (lookahead == 'l') ADVANCE(60); END_STATE(); case 69: - if (lookahead == 'm') ADVANCE(44); + if (lookahead == 'l') ADVANCE(159); END_STATE(); case 70: - if (lookahead == 'm') ADVANCE(30); + if (lookahead == 'l') ADVANCE(220); END_STATE(); case 71: - if (lookahead == 'n') ADVANCE(156); - if (lookahead == 'o') ADVANCE(95); + if (lookahead == 'l') ADVANCE(213); END_STATE(); case 72: - if (lookahead == 'n') ADVANCE(53); + if (lookahead == 'l') ADVANCE(113); + if (lookahead == 'n') ADVANCE(128); + if (lookahead == 'x') ADVANCE(65); END_STATE(); case 73: - if (lookahead == 'n') ADVANCE(53); - if (lookahead == 's') ADVANCE(39); + if (lookahead == 'l') ADVANCE(70); END_STATE(); case 74: - if (lookahead == 'n') ADVANCE(191); + if (lookahead == 'l') ADVANCE(117); END_STATE(); case 75: - if (lookahead == 'n') ADVANCE(120); - if (lookahead == 'x') ADVANCE(57); + if (lookahead == 'm') ADVANCE(211); END_STATE(); case 76: - if (lookahead == 'n') ADVANCE(104); + if (lookahead == 'm') ADVANCE(234); END_STATE(); case 77: - if (lookahead == 'n') ADVANCE(32); + if (lookahead == 'm') ADVANCE(54); END_STATE(); case 78: - if (lookahead == 'n') ADVANCE(110); + if (lookahead == 'm') ADVANCE(40); END_STATE(); case 79: - if (lookahead == 'o') ADVANCE(76); + if (lookahead == 'n') ADVANCE(166); + if (lookahead == 'o') ADVANCE(103); END_STATE(); case 80: - if (lookahead == 'o') ADVANCE(85); - if (lookahead == 'r') ADVANCE(37); + if (lookahead == 'n') ADVANCE(62); END_STATE(); case 81: - if (lookahead == 'o') ADVANCE(95); + if (lookahead == 'n') ADVANCE(62); + if (lookahead == 's') ADVANCE(49); END_STATE(); case 82: - if (lookahead == 'o') ADVANCE(89); + if (lookahead == 'n') ADVANCE(235); END_STATE(); case 83: - if (lookahead == 'o') ADVANCE(68); + if (lookahead == 'n') ADVANCE(128); + if (lookahead == 'x') ADVANCE(65); END_STATE(); case 84: - if (lookahead == 'o') ADVANCE(51); + if (lookahead == 'n') ADVANCE(112); END_STATE(); case 85: - if (lookahead == 'o') ADVANCE(61); + if (lookahead == 'n') ADVANCE(42); END_STATE(); case 86: - if (lookahead == 'o') ADVANCE(84); + if (lookahead == 'n') ADVANCE(118); END_STATE(); case 87: - if (lookahead == 'o') ADVANCE(93); + if (lookahead == 'o') ADVANCE(84); END_STATE(); case 88: - if (lookahead == 'o') ADVANCE(78); + if (lookahead == 'o') ADVANCE(93); + if (lookahead == 'r') ADVANCE(47); END_STATE(); case 89: - if (lookahead == 'p') ADVANCE(187); + if (lookahead == 'o') ADVANCE(103); END_STATE(); case 90: - if (lookahead == 'p') ADVANCE(38); - if (lookahead == 't') ADVANCE(99); + if (lookahead == 'o') ADVANCE(97); END_STATE(); case 91: - if (lookahead == 'p') ADVANCE(42); + if (lookahead == 'o') ADVANCE(76); END_STATE(); case 92: - if (lookahead == 'q') ADVANCE(127); + if (lookahead == 'o') ADVANCE(61); END_STATE(); case 93: - if (lookahead == 'r') ADVANCE(246); + if (lookahead == 'o') ADVANCE(69); END_STATE(); case 94: - if (lookahead == 'r') ADVANCE(77); + if (lookahead == 'o') ADVANCE(92); END_STATE(); case 95: - if (lookahead == 'r') ADVANCE(31); + if (lookahead == 'o') ADVANCE(101); END_STATE(); case 96: - if (lookahead == 'r') ADVANCE(126); - if (lookahead == 'y') ADVANCE(91); + if (lookahead == 'o') ADVANCE(86); END_STATE(); case 97: - if (lookahead == 'r') ADVANCE(74); + if (lookahead == 'p') ADVANCE(230); END_STATE(); case 98: - if (lookahead == 'r') ADVANCE(86); + if (lookahead == 'p') ADVANCE(48); + if (lookahead == 't') ADVANCE(107); END_STATE(); case 99: - if (lookahead == 'r') ADVANCE(122); + if (lookahead == 'p') ADVANCE(52); END_STATE(); case 100: - if (lookahead == 'r') ADVANCE(114); + if (lookahead == 'q') ADVANCE(135); END_STATE(); case 101: - if (lookahead == 's') ADVANCE(48); + if (lookahead == 'r') ADVANCE(255); END_STATE(); case 102: - if (lookahead == 's') ADVANCE(197); + if (lookahead == 'r') ADVANCE(85); END_STATE(); case 103: - if (lookahead == 's') ADVANCE(101); + if (lookahead == 'r') ADVANCE(41); END_STATE(); case 104: - if (lookahead == 's') ADVANCE(113); + if (lookahead == 'r') ADVANCE(134); + if (lookahead == 'y') ADVANCE(99); END_STATE(); case 105: - if (lookahead == 's') ADVANCE(40); + if (lookahead == 'r') ADVANCE(82); END_STATE(); case 106: - if (lookahead == 's') ADVANCE(117); + if (lookahead == 'r') ADVANCE(94); END_STATE(); case 107: - if (lookahead == 's') ADVANCE(108); + if (lookahead == 'r') ADVANCE(130); END_STATE(); case 108: - if (lookahead == 's') ADVANCE(124); + if (lookahead == 'r') ADVANCE(122); END_STATE(); case 109: - if (lookahead == 's') ADVANCE(43); + if (lookahead == 's') ADVANCE(58); END_STATE(); case 110: - if (lookahead == 's') ADVANCE(116); + if (lookahead == 's') ADVANCE(222); END_STATE(); case 111: - if (lookahead == 't') ADVANCE(167); + if (lookahead == 's') ADVANCE(109); END_STATE(); case 112: - if (lookahead == 't') ADVANCE(202); + if (lookahead == 's') ADVANCE(121); END_STATE(); case 113: - if (lookahead == 't') ADVANCE(173); + if (lookahead == 's') ADVANCE(50); END_STATE(); case 114: - if (lookahead == 't') ADVANCE(163); + if (lookahead == 's') ADVANCE(125); END_STATE(); case 115: - if (lookahead == 't') ADVANCE(176); + if (lookahead == 's') ADVANCE(116); END_STATE(); case 116: - if (lookahead == 't') ADVANCE(171); + if (lookahead == 's') ADVANCE(132); END_STATE(); case 117: - if (lookahead == 't') ADVANCE(102); + if (lookahead == 's') ADVANCE(53); END_STATE(); case 118: - if (lookahead == 't') ADVANCE(125); + if (lookahead == 's') ADVANCE(124); END_STATE(); case 119: - if (lookahead == 't') ADVANCE(87); + if (lookahead == 't') ADVANCE(203); END_STATE(); case 120: - if (lookahead == 'u') ADVANCE(67); + if (lookahead == 't') ADVANCE(238); END_STATE(); case 121: - if (lookahead == 'u') ADVANCE(112); + if (lookahead == 't') ADVANCE(209); END_STATE(); case 122: - if (lookahead == 'u') ADVANCE(34); + if (lookahead == 't') ADVANCE(180); END_STATE(); case 123: - if (lookahead == 'u') ADVANCE(70); + if (lookahead == 't') ADVANCE(212); END_STATE(); case 124: - if (lookahead == 'u') ADVANCE(69); + if (lookahead == 't') ADVANCE(207); END_STATE(); case 125: - if (lookahead == 'u') ADVANCE(97); + if (lookahead == 't') ADVANCE(110); END_STATE(); case 126: - if (lookahead == 'u') ADVANCE(41); + if (lookahead == 't') ADVANCE(133); END_STATE(); case 127: - if (lookahead == 'u') ADVANCE(45); + if (lookahead == 't') ADVANCE(95); END_STATE(); case 128: - if (lookahead == 'u') ADVANCE(35); + if (lookahead == 'u') ADVANCE(75); END_STATE(); case 129: - if (lookahead == 'x') ADVANCE(56); + if (lookahead == 'u') ADVANCE(120); END_STATE(); case 130: - if (lookahead == 'y') ADVANCE(91); + if (lookahead == 'u') ADVANCE(44); END_STATE(); case 131: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + if (lookahead == 'u') ADVANCE(78); END_STATE(); case 132: - if (eof) ADVANCE(133); - ADVANCE_MAP( - '!', 26, - '%', 211, - '&', 216, - '(', 159, - ')', 162, - '*', 209, - '+', 206, - ',', 161, - '-', 207, - '.', 230, - '/', 16, - ':', 233, - ';', 154, - '<', 220, - '=', 228, - '>', 222, - '[', 153, - ']', 155, - '^', 218, - 'a', 107, - 'c', 88, - 'e', 75, - 'f', 71, - 's', 90, - 't', 130, - 'u', 73, - '{', 231, - '|', 217, - '}', 232, - ); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(132); + if (lookahead == 'u') ADVANCE(77); END_STATE(); case 133: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == 'u') ADVANCE(105); END_STATE(); case 134: - ACCEPT_TOKEN(sym_type_i8); + if (lookahead == 'u') ADVANCE(51); END_STATE(); case 135: - ACCEPT_TOKEN(sym_type_i8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + if (lookahead == 'u') ADVANCE(55); END_STATE(); case 136: - ACCEPT_TOKEN(sym_type_i16); + if (lookahead == 'u') ADVANCE(45); END_STATE(); case 137: - ACCEPT_TOKEN(sym_type_i16); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + if (lookahead == 'x') ADVANCE(64); END_STATE(); case 138: - ACCEPT_TOKEN(sym_type_i32); + if (lookahead == 'y') ADVANCE(99); END_STATE(); case 139: - ACCEPT_TOKEN(sym_type_i32); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + if (eof) ADVANCE(142); + ADVANCE_MAP( + '!', 241, + '"', 246, + '%', 196, + '&', 187, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 194, + '.', 169, + '/', 24, + ':', 173, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '@', 237, + '[', 163, + ']', 165, + '^', 189, + '_', 216, + 'a', 111, + 'b', 88, + 'c', 87, + 'e', 72, + 'f', 38, + 'i', 25, + 'l', 46, + 'm', 129, + 'p', 106, + 'r', 57, + 's', 56, + 't', 104, + 'u', 26, + '{', 176, + '|', 188, + '}', 177, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(139); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); END_STATE(); case 140: - ACCEPT_TOKEN(sym_type_i64); + if (eof) ADVANCE(142); + ADVANCE_MAP( + '!', 35, + '%', 196, + '&', 187, + '\'', 254, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 193, + '.', 169, + '/', 24, + ':', 172, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '[', 163, + ']', 165, + '^', 189, + 'a', 115, + 'c', 96, + 'e', 83, + 'f', 79, + 's', 98, + 't', 138, + 'u', 81, + '{', 176, + '|', 188, + '}', 177, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(141); END_STATE(); case 141: - ACCEPT_TOKEN(sym_type_i64); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); - END_STATE(); + if (eof) ADVANCE(142); + ADVANCE_MAP( + '!', 35, + '%', 196, + '&', 187, + '(', 161, + ')', 175, + '*', 195, + '+', 192, + ',', 174, + '-', 193, + '.', 169, + '/', 24, + ':', 171, + ';', 164, + '<', 197, + '=', 179, + '>', 202, + '[', 163, + ']', 165, + '^', 189, + 'a', 115, + 'c', 96, + 'e', 83, + 'f', 79, + 's', 98, + 't', 138, + 'u', 81, + '{', 176, + '|', 188, + '}', 177, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(141); + END_STATE(); case 142: - ACCEPT_TOKEN(sym_type_u8); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 143: - ACCEPT_TOKEN(sym_type_u8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym_type_i8); END_STATE(); case 144: - ACCEPT_TOKEN(sym_type_u16); + ACCEPT_TOKEN(sym_type_i8); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 145: - ACCEPT_TOKEN(sym_type_u16); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym_type_i16); END_STATE(); case 146: - ACCEPT_TOKEN(sym_type_u32); + ACCEPT_TOKEN(sym_type_i16); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 147: - ACCEPT_TOKEN(sym_type_u32); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym_type_i32); END_STATE(); case 148: - ACCEPT_TOKEN(sym_type_u64); + ACCEPT_TOKEN(sym_type_i32); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 149: - ACCEPT_TOKEN(sym_type_u64); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym_type_i64); END_STATE(); case 150: - ACCEPT_TOKEN(sym_type_bool); + ACCEPT_TOKEN(sym_type_i64); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 151: - ACCEPT_TOKEN(sym_type_bool); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym_type_u8); END_STATE(); case 152: - ACCEPT_TOKEN(anon_sym_LPAREN_RPAREN); + ACCEPT_TOKEN(sym_type_u8); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 153: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(sym_type_u16); END_STATE(); case 154: - ACCEPT_TOKEN(anon_sym_SEMI); + ACCEPT_TOKEN(sym_type_u16); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 155: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(sym_type_u32); END_STATE(); case 156: - ACCEPT_TOKEN(anon_sym_fn); + ACCEPT_TOKEN(sym_type_u32); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 157: - ACCEPT_TOKEN(anon_sym_fn); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym_type_u64); END_STATE(); case 158: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(sym_type_u64); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 159: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(sym_type_bool); END_STATE(); case 160: - ACCEPT_TOKEN(anon_sym_LPAREN); - if (lookahead == ')') ADVANCE(152); + ACCEPT_TOKEN(sym_type_bool); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 161: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 162: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 163: - ACCEPT_TOKEN(anon_sym_assert); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 164: - ACCEPT_TOKEN(anon_sym_assert); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 165: - ACCEPT_TOKEN(anon_sym_break); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 166: - ACCEPT_TOKEN(anon_sym_break); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_fn); END_STATE(); case 167: - ACCEPT_TOKEN(anon_sym_let); + ACCEPT_TOKEN(anon_sym_fn); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 168: - ACCEPT_TOKEN(anon_sym_let); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 169: - ACCEPT_TOKEN(anon_sym_type); + ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 170: - ACCEPT_TOKEN(anon_sym_type); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 171: - ACCEPT_TOKEN(anon_sym_const); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 172: - ACCEPT_TOKEN(anon_sym_const); - if (lookahead == 'r') ADVANCE(337); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(170); END_STATE(); case 173: - ACCEPT_TOKEN(anon_sym_const); - if (lookahead == 'r') ADVANCE(128); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(233); END_STATE(); case 174: - ACCEPT_TOKEN(anon_sym_spec); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 175: - ACCEPT_TOKEN(anon_sym_enum); + ACCEPT_TOKEN(anon_sym_RPAREN2); END_STATE(); case 176: - ACCEPT_TOKEN(anon_sym_struct); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 177: - ACCEPT_TOKEN(anon_sym_external); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 178: - ACCEPT_TOKEN(anon_sym_self); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 179: - ACCEPT_TOKEN(anon_sym_self); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(199); END_STATE(); case 180: - ACCEPT_TOKEN(anon_sym__); + ACCEPT_TOKEN(anon_sym_assert); END_STATE(); case 181: - ACCEPT_TOKEN(anon_sym__); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + ACCEPT_TOKEN(anon_sym_assert); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 182: - ACCEPT_TOKEN(anon_sym_if); + ACCEPT_TOKEN(anon_sym_break); END_STATE(); case 183: - ACCEPT_TOKEN(anon_sym_if); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + ACCEPT_TOKEN(anon_sym_break); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 184: - ACCEPT_TOKEN(anon_sym_elseif); + ACCEPT_TOKEN(anon_sym_STAR_STAR); END_STATE(); case 185: - ACCEPT_TOKEN(anon_sym_else); - if (lookahead == ' ') ADVANCE(55); + ACCEPT_TOKEN(anon_sym_AMP_AMP); END_STATE(); case 186: - ACCEPT_TOKEN(anon_sym_else); - if (lookahead == ' ') ADVANCE(55); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_PIPE_PIPE); END_STATE(); case 187: - ACCEPT_TOKEN(anon_sym_loop); + ACCEPT_TOKEN(anon_sym_AMP); + if (lookahead == '&') ADVANCE(185); END_STATE(); case 188: - ACCEPT_TOKEN(anon_sym_loop); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_PIPE); + if (lookahead == '|') ADVANCE(186); END_STATE(); case 189: - ACCEPT_TOKEN(anon_sym_use); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 190: - ACCEPT_TOKEN(anon_sym_from); + ACCEPT_TOKEN(anon_sym_LT_LT); END_STATE(); case 191: - ACCEPT_TOKEN(anon_sym_return); + ACCEPT_TOKEN(anon_sym_GT_GT); END_STATE(); case 192: - ACCEPT_TOKEN(anon_sym_return); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 193: - ACCEPT_TOKEN(anon_sym_forall); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 194: - ACCEPT_TOKEN(anon_sym_forall); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(168); END_STATE(); case 195: - ACCEPT_TOKEN(anon_sym_assume); + ACCEPT_TOKEN(anon_sym_STAR); + if (lookahead == '*') ADVANCE(184); END_STATE(); case 196: - ACCEPT_TOKEN(anon_sym_assume); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 197: - ACCEPT_TOKEN(anon_sym_exists); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '<') ADVANCE(190); + if (lookahead == '=') ADVANCE(198); END_STATE(); case 198: - ACCEPT_TOKEN(anon_sym_exists); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 199: - ACCEPT_TOKEN(anon_sym_unique); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 200: - ACCEPT_TOKEN(anon_sym_unique); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 201: - ACCEPT_TOKEN(sym_uzumaki_keyword); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 202: - ACCEPT_TOKEN(sym_mut_keyword); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(201); + if (lookahead == '>') ADVANCE(191); END_STATE(); case 203: - ACCEPT_TOKEN(sym_mut_keyword); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_let); END_STATE(); case 204: - ACCEPT_TOKEN(sym_unary_not); + ACCEPT_TOKEN(anon_sym_let); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 205: - ACCEPT_TOKEN(sym_unary_not); - if (lookahead == '=') ADVANCE(226); + ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 206: - ACCEPT_TOKEN(sym_add_operator); + ACCEPT_TOKEN(anon_sym_type); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 207: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_const); END_STATE(); case 208: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(158); + ACCEPT_TOKEN(anon_sym_const); + if (lookahead == 'r') ADVANCE(347); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 209: - ACCEPT_TOKEN(sym_mul_operator); - if (lookahead == '*') ADVANCE(210); + ACCEPT_TOKEN(anon_sym_const); + if (lookahead == 'r') ADVANCE(136); END_STATE(); case 210: - ACCEPT_TOKEN(sym_pow_operator); + ACCEPT_TOKEN(anon_sym_spec); END_STATE(); case 211: - ACCEPT_TOKEN(sym_mod_operator); + ACCEPT_TOKEN(anon_sym_enum); END_STATE(); case 212: - ACCEPT_TOKEN(sym_and_operator); + ACCEPT_TOKEN(anon_sym_struct); END_STATE(); case 213: - ACCEPT_TOKEN(sym_or_operator); + ACCEPT_TOKEN(anon_sym_external); END_STATE(); case 214: - ACCEPT_TOKEN(sym_shift_left_operator); + ACCEPT_TOKEN(anon_sym_self); END_STATE(); case 215: - ACCEPT_TOKEN(sym_shift_right_operator); + ACCEPT_TOKEN(anon_sym_self); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 216: - ACCEPT_TOKEN(sym_bit_and_operator); - if (lookahead == '&') ADVANCE(212); + ACCEPT_TOKEN(anon_sym__); END_STATE(); case 217: - ACCEPT_TOKEN(sym_bit_or_operator); - if (lookahead == '|') ADVANCE(213); + ACCEPT_TOKEN(anon_sym__); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 218: - ACCEPT_TOKEN(sym_bit_xor_operator); + ACCEPT_TOKEN(anon_sym_assume); END_STATE(); case 219: - ACCEPT_TOKEN(anon_sym_LT); + ACCEPT_TOKEN(anon_sym_assume); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 220: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '<') ADVANCE(214); - if (lookahead == '=') ADVANCE(223); + ACCEPT_TOKEN(anon_sym_forall); END_STATE(); case 221: - ACCEPT_TOKEN(anon_sym_GT); + ACCEPT_TOKEN(anon_sym_forall); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 222: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(224); - if (lookahead == '>') ADVANCE(215); + ACCEPT_TOKEN(anon_sym_exists); END_STATE(); case 223: - ACCEPT_TOKEN(sym_less_equal_operator); + ACCEPT_TOKEN(anon_sym_exists); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 224: - ACCEPT_TOKEN(sym_greater_equal_operator); + ACCEPT_TOKEN(anon_sym_unique); END_STATE(); case 225: - ACCEPT_TOKEN(sym_equals_operator); + ACCEPT_TOKEN(anon_sym_unique); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 226: - ACCEPT_TOKEN(sym_not_equals_operator); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 227: - ACCEPT_TOKEN(sym_assign_operator); + ACCEPT_TOKEN(anon_sym_if); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 228: - ACCEPT_TOKEN(sym_assign_operator); - if (lookahead == '=') ADVANCE(225); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 229: - ACCEPT_TOKEN(sym_expand_operator); + ACCEPT_TOKEN(anon_sym_else); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 230: - ACCEPT_TOKEN(sym_attribute_access_operator); + ACCEPT_TOKEN(anon_sym_loop); END_STATE(); case 231: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_loop); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 232: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_use); END_STATE(); case 233: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(229); + ACCEPT_TOKEN(anon_sym_COLON_COLON2); END_STATE(); case 234: - ACCEPT_TOKEN(anon_sym_true); + ACCEPT_TOKEN(anon_sym_from); END_STATE(); case 235: + ACCEPT_TOKEN(anon_sym_return); + END_STATE(); + case 236: + ACCEPT_TOKEN(anon_sym_return); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 237: + ACCEPT_TOKEN(sym_uzumaki_keyword); + END_STATE(); + case 238: + ACCEPT_TOKEN(sym_mut_keyword); + END_STATE(); + case 239: + ACCEPT_TOKEN(sym_mut_keyword); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 240: + ACCEPT_TOKEN(sym_unary_not); + END_STATE(); + case 241: + ACCEPT_TOKEN(sym_unary_not); + if (lookahead == '=') ADVANCE(200); + END_STATE(); + case 242: ACCEPT_TOKEN(anon_sym_true); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + END_STATE(); + case 243: + ACCEPT_TOKEN(anon_sym_true); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); - case 236: + case 244: ACCEPT_TOKEN(anon_sym_false); END_STATE(); - case 237: + case 245: ACCEPT_TOKEN(anon_sym_false); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); - case 238: + case 246: ACCEPT_TOKEN(anon_sym_DQUOTE); END_STATE(); - case 239: + case 247: ACCEPT_TOKEN(sym__string_literal_content); - if (lookahead == '\r') ADVANCE(243); + if (lookahead == '\r') ADVANCE(252); + if (lookahead == '/') ADVANCE(248); if (lookahead != 0 && lookahead != '\n' && lookahead != '"' && - lookahead != '\\') ADVANCE(239); + lookahead != '\\') ADVANCE(249); END_STATE(); - case 240: + case 248: ACCEPT_TOKEN(sym__string_literal_content); - if (lookahead == '/') ADVANCE(242); - if (lookahead == '\t' || - (0x0b <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(240); + if (lookahead == '\r') ADVANCE(252); + if (lookahead == '"' || + lookahead == '\\') ADVANCE(356); if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead) && - lookahead != '"' && - lookahead != '\\') ADVANCE(243); + lookahead != '\n') ADVANCE(248); END_STATE(); - case 241: + case 249: ACCEPT_TOKEN(sym__string_literal_content); - if (lookahead == '/') ADVANCE(239); + if (lookahead == '\r') ADVANCE(252); if (lookahead != 0 && lookahead != '\n' && lookahead != '"' && - lookahead != '\\') ADVANCE(243); + lookahead != '\\') ADVANCE(249); END_STATE(); - case 242: + case 250: ACCEPT_TOKEN(sym__string_literal_content); - if (lookahead == '/') ADVANCE(241); + if (lookahead == '/') ADVANCE(251); + if (lookahead == '\t' || + (0x0b <= lookahead && lookahead <= '\r') || + lookahead == ' ') ADVANCE(250); if (lookahead != 0 && - lookahead != '\n' && + (lookahead < '\t' || '\r' < lookahead) && lookahead != '"' && - lookahead != '\\') ADVANCE(243); + lookahead != '\\') ADVANCE(252); END_STATE(); - case 243: + case 251: ACCEPT_TOKEN(sym__string_literal_content); + if (lookahead == '/') ADVANCE(247); if (lookahead != 0 && lookahead != '\n' && lookahead != '"' && - lookahead != '\\') ADVANCE(243); - END_STATE(); - case 244: - ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(244); - END_STATE(); - case 245: - ACCEPT_TOKEN(aux_sym_number_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(245); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); - END_STATE(); - case 246: - ACCEPT_TOKEN(anon_sym_constructor); - END_STATE(); - case 247: - ACCEPT_TOKEN(anon_sym_constructor); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); - END_STATE(); - case 248: - ACCEPT_TOKEN(anon_sym_proof); - END_STATE(); - case 249: - ACCEPT_TOKEN(anon_sym_proof); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); - END_STATE(); - case 250: - ACCEPT_TOKEN(anon_sym_uzumaki); - END_STATE(); - case 251: - ACCEPT_TOKEN(anon_sym_uzumaki); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + lookahead != '\\') ADVANCE(252); END_STATE(); case 252: - ACCEPT_TOKEN(sym__identifier); - ADVANCE_MAP( - '1', 260, - '3', 256, - '6', 258, - '8', 135, - 'f', 183, - '0', 345, - '2', 345, - '4', 345, - '5', 345, - '7', 345, - '9', 345, - ); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(sym__string_literal_content); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(252); END_STATE(); case 253: - ACCEPT_TOKEN(sym__identifier); - ADVANCE_MAP( - '1', 260, - '3', 256, - '6', 258, - '8', 135, - '0', 345, - '2', 345, - '4', 345, - '5', 345, - '7', 345, - '9', 345, - ); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(aux_sym_number_literal_token1); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(253); END_STATE(); case 254: - ACCEPT_TOKEN(sym__identifier); - ADVANCE_MAP( - '1', 261, - '3', 257, - '6', 259, - '8', 143, - 'n', 281, - 'z', 336, - '0', 345, - '2', 345, - '4', 345, - '5', 345, - '7', 345, - '9', 345, - ); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'y')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 255: - ACCEPT_TOKEN(sym__identifier); - ADVANCE_MAP( - '1', 261, - '3', 257, - '6', 259, - '8', 143, - 'z', 336, - '0', 345, - '2', 345, - '4', 345, - '5', 345, - '7', 345, - '9', 345, - ); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'y')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_constructor); END_STATE(); case 256: - ACCEPT_TOKEN(sym__identifier); - if (lookahead == '2') ADVANCE(139); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + ACCEPT_TOKEN(anon_sym_constructor); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 257: - ACCEPT_TOKEN(sym__identifier); - if (lookahead == '2') ADVANCE(147); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_proof); END_STATE(); case 258: - ACCEPT_TOKEN(sym__identifier); - if (lookahead == '4') ADVANCE(141); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + ACCEPT_TOKEN(anon_sym_proof); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 259: - ACCEPT_TOKEN(sym__identifier); - if (lookahead == '4') ADVANCE(149); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ACCEPT_TOKEN(anon_sym_uzumaki); END_STATE(); case 260: - ACCEPT_TOKEN(sym__identifier); - if (lookahead == '6') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + ACCEPT_TOKEN(anon_sym_uzumaki); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 261: ACCEPT_TOKEN(sym__identifier); - if (lookahead == '6') ADVANCE(145); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '1') ADVANCE(269); + if (lookahead == '3') ADVANCE(265); + if (lookahead == '6') ADVANCE(267); + if (lookahead == '8') ADVANCE(144); + if (lookahead == 'f') ADVANCE(227); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 262: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'a') ADVANCE(289); - if (lookahead == 'n') ADVANCE(157); - if (lookahead == 'o') ADVANCE(314); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '1') ADVANCE(269); + if (lookahead == '3') ADVANCE(265); + if (lookahead == '6') ADVANCE(267); + if (lookahead == '8') ADVANCE(144); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 263: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'a') ADVANCE(289); - if (lookahead == 'n') ADVANCE(157); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '1') ADVANCE(270); + if (lookahead == '3') ADVANCE(266); + if (lookahead == '6') ADVANCE(268); + if (lookahead == '8') ADVANCE(152); + if (lookahead == 'n') ADVANCE(290); + if (lookahead == 'z') ADVANCE(346); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'y')) ADVANCE(355); END_STATE(); case 264: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'a') ADVANCE(284); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '1') ADVANCE(270); + if (lookahead == '3') ADVANCE(266); + if (lookahead == '6') ADVANCE(268); + if (lookahead == '8') ADVANCE(152); + if (lookahead == 'z') ADVANCE(346); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'y')) ADVANCE(355); END_STATE(); case 265: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'a') ADVANCE(285); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '2') ADVANCE(148); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 266: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'a') ADVANCE(290); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '2') ADVANCE(156); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 267: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'c') ADVANCE(334); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '4') ADVANCE(150); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 268: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(328); - if (lookahead == 'o') ADVANCE(303); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '4') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 269: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(264); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '6') ADVANCE(146); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 270: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(235); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == '6') ADVANCE(154); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 271: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(170); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'a') ADVANCE(298); + if (lookahead == 'n') ADVANCE(167); + if (lookahead == 'o') ADVANCE(324); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 272: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(237); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'a') ADVANCE(298); + if (lookahead == 'n') ADVANCE(167); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 273: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(196); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'a') ADVANCE(293); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 274: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(200); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'a') ADVANCE(294); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 275: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(186); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'a') ADVANCE(299); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 276: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(332); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'c') ADVANCE(344); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 277: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(317); - if (lookahead == 'u') ADVANCE(292); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(338); + if (lookahead == 'o') ADVANCE(313); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 278: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'e') ADVANCE(288); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(273); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 279: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'f') ADVANCE(249); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(243); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 280: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'f') ADVANCE(179); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(206); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 281: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'i') ADVANCE(309); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(245); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 282: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'i') ADVANCE(251); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(219); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 283: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'i') ADVANCE(322); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(225); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 284: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'k') ADVANCE(166); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(229); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 285: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'k') ADVANCE(282); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(342); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 286: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'l') ADVANCE(151); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(327); + if (lookahead == 'u') ADVANCE(301); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 287: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'l') ADVANCE(194); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'e') ADVANCE(297); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 288: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'l') ADVANCE(280); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'f') ADVANCE(258); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 289: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'l') ADVANCE(323); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'f') ADVANCE(215); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 290: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'l') ADVANCE(287); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'i') ADVANCE(319); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 291: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'l') ADVANCE(327); - if (lookahead == 'x') ADVANCE(283); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'i') ADVANCE(260); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 292: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'm') ADVANCE(273); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'i') ADVANCE(332); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 293: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'm') ADVANCE(265); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'k') ADVANCE(183); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 294: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'n') ADVANCE(157); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'k') ADVANCE(291); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 295: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'n') ADVANCE(192); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'l') ADVANCE(160); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 296: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'n') ADVANCE(321); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'l') ADVANCE(221); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 297: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'n') ADVANCE(326); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'l') ADVANCE(289); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 298: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(296); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'l') ADVANCE(333); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 299: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(279); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'l') ADVANCE(296); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 300: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(302); - if (lookahead == 'r') ADVANCE(269); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'l') ADVANCE(337); + if (lookahead == 'x') ADVANCE(292); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 301: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(302); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'm') ADVANCE(282); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 302: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(286); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'm') ADVANCE(274); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 303: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(307); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'n') ADVANCE(167); + if (lookahead == 'o') ADVANCE(324); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 304: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(299); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'n') ADVANCE(167); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 305: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(312); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'n') ADVANCE(236); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 306: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'o') ADVANCE(297); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'n') ADVANCE(331); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 307: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'p') ADVANCE(188); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'n') ADVANCE(336); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 308: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'p') ADVANCE(271); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(306); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 309: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'q') ADVANCE(341); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(288); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 310: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(339); - if (lookahead == 'y') ADVANCE(308); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(312); + if (lookahead == 'r') ADVANCE(278); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 311: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(339); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(312); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 312: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(247); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(295); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 313: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(295); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(317); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 314: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(266); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(309); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 315: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(304); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(322); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 316: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(337); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'o') ADVANCE(307); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 317: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'r') ADVANCE(330); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'p') ADVANCE(231); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 318: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(277); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'p') ADVANCE(280); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 319: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(198); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'q') ADVANCE(351); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 320: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(318); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(349); + if (lookahead == 'y') ADVANCE(318); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 321: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(329); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(349); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 322: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(333); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(256); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 323: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(272); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(305); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 324: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(338); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(275); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 325: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(324); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(314); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 326: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(335); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(347); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 327: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 's') ADVANCE(275); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 'r') ADVANCE(340); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 328: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(168); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(286); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 329: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(172); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(223); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 330: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(164); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(328); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 331: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(203); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(339); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 332: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(340); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(343); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 333: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(319); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(281); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 334: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(305); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(348); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 335: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 't') ADVANCE(316); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(334); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 336: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(293); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(345); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 337: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(267); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 's') ADVANCE(284); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 338: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(292); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(204); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 339: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(270); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(208); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 340: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(313); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(181); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 341: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(274); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(239); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 342: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'u') ADVANCE(331); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(350); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 343: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'x') ADVANCE(283); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(329); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 344: ACCEPT_TOKEN(sym__identifier); - if (lookahead == 'z') ADVANCE(336); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(315); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'y')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 345: ACCEPT_TOKEN(sym__identifier); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(345); - if (('A' <= lookahead && lookahead <= 'Z') || + if (lookahead == 't') ADVANCE(326); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(345); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); END_STATE(); case 346: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(302); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 347: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(276); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 348: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(301); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 349: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(279); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 350: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(323); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 351: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(283); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 352: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'u') ADVANCE(341); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 353: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'x') ADVANCE(292); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 354: + ACCEPT_TOKEN(sym__identifier); + if (lookahead == 'z') ADVANCE(346); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'y')) ADVANCE(355); + END_STATE(); + case 355: + ACCEPT_TOKEN(sym__identifier); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(355); + END_STATE(); + case 356: + ACCEPT_TOKEN(sym_docstring); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '\r') ADVANCE(356); + END_STATE(); + case 357: ACCEPT_TOKEN(sym_comment); + if (lookahead == '/') ADVANCE(356); if (lookahead != 0 && lookahead != '\n' && - lookahead != '\r') ADVANCE(346); + lookahead != '\r') ADVANCE(358); + END_STATE(); + case 358: + ACCEPT_TOKEN(sym_comment); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '\r') ADVANCE(358); END_STATE(); default: return false; @@ -4214,403 +4496,403 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 132}, - [2] = {.lex_state = 2}, - [3] = {.lex_state = 2}, - [4] = {.lex_state = 2}, - [5] = {.lex_state = 2}, - [6] = {.lex_state = 2}, - [7] = {.lex_state = 2}, - [8] = {.lex_state = 2}, - [9] = {.lex_state = 2}, - [10] = {.lex_state = 2}, - [11] = {.lex_state = 5}, - [12] = {.lex_state = 3}, - [13] = {.lex_state = 3}, - [14] = {.lex_state = 3}, - [15] = {.lex_state = 3}, - [16] = {.lex_state = 3}, - [17] = {.lex_state = 3}, - [18] = {.lex_state = 3}, - [19] = {.lex_state = 3}, - [20] = {.lex_state = 3}, - [21] = {.lex_state = 3}, - [22] = {.lex_state = 3}, - [23] = {.lex_state = 3}, - [24] = {.lex_state = 3}, - [25] = {.lex_state = 3}, - [26] = {.lex_state = 3}, - [27] = {.lex_state = 3}, - [28] = {.lex_state = 3}, - [29] = {.lex_state = 3}, - [30] = {.lex_state = 3}, - [31] = {.lex_state = 3}, - [32] = {.lex_state = 3}, - [33] = {.lex_state = 3}, - [34] = {.lex_state = 3}, - [35] = {.lex_state = 3}, - [36] = {.lex_state = 3}, - [37] = {.lex_state = 3}, - [38] = {.lex_state = 3}, - [39] = {.lex_state = 3}, - [40] = {.lex_state = 3}, - [41] = {.lex_state = 3}, - [42] = {.lex_state = 3}, - [43] = {.lex_state = 3}, - [44] = {.lex_state = 3}, - [45] = {.lex_state = 3}, - [46] = {.lex_state = 3}, - [47] = {.lex_state = 3}, - [48] = {.lex_state = 3}, - [49] = {.lex_state = 3}, - [50] = {.lex_state = 3}, - [51] = {.lex_state = 3}, - [52] = {.lex_state = 3}, - [53] = {.lex_state = 3}, - [54] = {.lex_state = 3}, - [55] = {.lex_state = 3}, - [56] = {.lex_state = 3}, - [57] = {.lex_state = 4}, - [58] = {.lex_state = 4}, - [59] = {.lex_state = 4}, - [60] = {.lex_state = 4}, - [61] = {.lex_state = 4}, - [62] = {.lex_state = 4}, - [63] = {.lex_state = 4}, - [64] = {.lex_state = 4}, - [65] = {.lex_state = 4}, - [66] = {.lex_state = 4}, - [67] = {.lex_state = 132}, - [68] = {.lex_state = 132}, - [69] = {.lex_state = 132}, - [70] = {.lex_state = 2}, - [71] = {.lex_state = 2}, - [72] = {.lex_state = 2}, - [73] = {.lex_state = 2}, - [74] = {.lex_state = 2}, - [75] = {.lex_state = 2}, + [1] = {.lex_state = 140}, + [2] = {.lex_state = 10}, + [3] = {.lex_state = 10}, + [4] = {.lex_state = 10}, + [5] = {.lex_state = 10}, + [6] = {.lex_state = 10}, + [7] = {.lex_state = 10}, + [8] = {.lex_state = 10}, + [9] = {.lex_state = 10}, + [10] = {.lex_state = 10}, + [11] = {.lex_state = 13}, + [12] = {.lex_state = 2}, + [13] = {.lex_state = 2}, + [14] = {.lex_state = 7}, + [15] = {.lex_state = 2}, + [16] = {.lex_state = 2}, + [17] = {.lex_state = 7}, + [18] = {.lex_state = 7}, + [19] = {.lex_state = 2}, + [20] = {.lex_state = 2}, + [21] = {.lex_state = 8}, + [22] = {.lex_state = 8}, + [23] = {.lex_state = 9}, + [24] = {.lex_state = 8}, + [25] = {.lex_state = 8}, + [26] = {.lex_state = 8}, + [27] = {.lex_state = 8}, + [28] = {.lex_state = 8}, + [29] = {.lex_state = 8}, + [30] = {.lex_state = 8}, + [31] = {.lex_state = 8}, + [32] = {.lex_state = 8}, + [33] = {.lex_state = 8}, + [34] = {.lex_state = 8}, + [35] = {.lex_state = 8}, + [36] = {.lex_state = 8}, + [37] = {.lex_state = 8}, + [38] = {.lex_state = 8}, + [39] = {.lex_state = 8}, + [40] = {.lex_state = 8}, + [41] = {.lex_state = 8}, + [42] = {.lex_state = 8}, + [43] = {.lex_state = 8}, + [44] = {.lex_state = 8}, + [45] = {.lex_state = 8}, + [46] = {.lex_state = 8}, + [47] = {.lex_state = 8}, + [48] = {.lex_state = 8}, + [49] = {.lex_state = 8}, + [50] = {.lex_state = 8}, + [51] = {.lex_state = 8}, + [52] = {.lex_state = 8}, + [53] = {.lex_state = 8}, + [54] = {.lex_state = 8}, + [55] = {.lex_state = 8}, + [56] = {.lex_state = 8}, + [57] = {.lex_state = 8}, + [58] = {.lex_state = 8}, + [59] = {.lex_state = 8}, + [60] = {.lex_state = 8}, + [61] = {.lex_state = 8}, + [62] = {.lex_state = 8}, + [63] = {.lex_state = 8}, + [64] = {.lex_state = 8}, + [65] = {.lex_state = 8}, + [66] = {.lex_state = 8}, + [67] = {.lex_state = 8}, + [68] = {.lex_state = 8}, + [69] = {.lex_state = 8}, + [70] = {.lex_state = 8}, + [71] = {.lex_state = 8}, + [72] = {.lex_state = 8}, + [73] = {.lex_state = 8}, + [74] = {.lex_state = 8}, + [75] = {.lex_state = 8}, [76] = {.lex_state = 2}, - [77] = {.lex_state = 2}, - [78] = {.lex_state = 2}, - [79] = {.lex_state = 2}, - [80] = {.lex_state = 2}, - [81] = {.lex_state = 2}, - [82] = {.lex_state = 2}, - [83] = {.lex_state = 2}, - [84] = {.lex_state = 2}, + [77] = {.lex_state = 3}, + [78] = {.lex_state = 7}, + [79] = {.lex_state = 6}, + [80] = {.lex_state = 12}, + [81] = {.lex_state = 12}, + [82] = {.lex_state = 12}, + [83] = {.lex_state = 12}, + [84] = {.lex_state = 12}, [85] = {.lex_state = 2}, - [86] = {.lex_state = 2}, - [87] = {.lex_state = 2}, - [88] = {.lex_state = 2}, - [89] = {.lex_state = 2}, - [90] = {.lex_state = 2}, - [91] = {.lex_state = 2}, - [92] = {.lex_state = 8}, - [93] = {.lex_state = 132}, - [94] = {.lex_state = 132}, - [95] = {.lex_state = 132}, - [96] = {.lex_state = 8}, - [97] = {.lex_state = 132}, - [98] = {.lex_state = 132}, - [99] = {.lex_state = 132}, - [100] = {.lex_state = 132}, - [101] = {.lex_state = 132}, - [102] = {.lex_state = 132}, - [103] = {.lex_state = 132}, - [104] = {.lex_state = 132}, - [105] = {.lex_state = 132}, - [106] = {.lex_state = 132}, - [107] = {.lex_state = 132}, - [108] = {.lex_state = 132}, - [109] = {.lex_state = 132}, - [110] = {.lex_state = 132}, - [111] = {.lex_state = 132}, - [112] = {.lex_state = 132}, - [113] = {.lex_state = 132}, - [114] = {.lex_state = 132}, - [115] = {.lex_state = 132}, - [116] = {.lex_state = 132}, - [117] = {.lex_state = 132}, - [118] = {.lex_state = 132}, - [119] = {.lex_state = 132}, - [120] = {.lex_state = 132}, - [121] = {.lex_state = 132}, - [122] = {.lex_state = 132}, - [123] = {.lex_state = 132}, - [124] = {.lex_state = 132}, - [125] = {.lex_state = 132}, - [126] = {.lex_state = 132}, - [127] = {.lex_state = 132}, - [128] = {.lex_state = 132}, - [129] = {.lex_state = 132}, - [130] = {.lex_state = 132}, - [131] = {.lex_state = 132}, - [132] = {.lex_state = 132}, - [133] = {.lex_state = 132}, - [134] = {.lex_state = 132}, - [135] = {.lex_state = 132}, - [136] = {.lex_state = 132}, - [137] = {.lex_state = 132}, - [138] = {.lex_state = 9}, - [139] = {.lex_state = 9}, - [140] = {.lex_state = 9}, - [141] = {.lex_state = 9}, - [142] = {.lex_state = 9}, - [143] = {.lex_state = 9}, - [144] = {.lex_state = 9}, - [145] = {.lex_state = 132}, - [146] = {.lex_state = 9}, - [147] = {.lex_state = 9}, - [148] = {.lex_state = 9}, - [149] = {.lex_state = 132}, - [150] = {.lex_state = 9}, - [151] = {.lex_state = 9}, - [152] = {.lex_state = 9}, - [153] = {.lex_state = 9}, - [154] = {.lex_state = 9}, - [155] = {.lex_state = 9}, - [156] = {.lex_state = 132}, - [157] = {.lex_state = 132}, - [158] = {.lex_state = 132}, - [159] = {.lex_state = 132}, - [160] = {.lex_state = 132}, - [161] = {.lex_state = 132}, - [162] = {.lex_state = 132}, - [163] = {.lex_state = 132}, - [164] = {.lex_state = 132}, - [165] = {.lex_state = 132}, - [166] = {.lex_state = 132}, - [167] = {.lex_state = 9}, - [168] = {.lex_state = 132}, - [169] = {.lex_state = 9}, - [170] = {.lex_state = 9}, - [171] = {.lex_state = 9}, - [172] = {.lex_state = 9}, - [173] = {.lex_state = 132}, - [174] = {.lex_state = 9}, - [175] = {.lex_state = 132}, - [176] = {.lex_state = 132}, - [177] = {.lex_state = 132}, - [178] = {.lex_state = 132}, - [179] = {.lex_state = 132}, - [180] = {.lex_state = 132}, - [181] = {.lex_state = 132}, - [182] = {.lex_state = 132}, - [183] = {.lex_state = 132}, - [184] = {.lex_state = 132}, - [185] = {.lex_state = 132}, - [186] = {.lex_state = 132}, - [187] = {.lex_state = 132}, - [188] = {.lex_state = 132}, - [189] = {.lex_state = 132}, - [190] = {.lex_state = 132}, - [191] = {.lex_state = 132}, - [192] = {.lex_state = 132}, - [193] = {.lex_state = 132}, - [194] = {.lex_state = 132}, - [195] = {.lex_state = 132}, - [196] = {.lex_state = 132}, - [197] = {.lex_state = 3}, - [198] = {.lex_state = 132}, - [199] = {.lex_state = 3}, - [200] = {.lex_state = 3}, - [201] = {.lex_state = 132}, - [202] = {.lex_state = 132}, - [203] = {.lex_state = 132}, - [204] = {.lex_state = 132}, - [205] = {.lex_state = 132}, - [206] = {.lex_state = 7}, - [207] = {.lex_state = 7}, - [208] = {.lex_state = 7}, - [209] = {.lex_state = 7}, - [210] = {.lex_state = 7}, - [211] = {.lex_state = 132}, - [212] = {.lex_state = 132}, - [213] = {.lex_state = 0}, - [214] = {.lex_state = 0}, - [215] = {.lex_state = 0}, - [216] = {.lex_state = 0}, - [217] = {.lex_state = 132}, - [218] = {.lex_state = 9}, - [219] = {.lex_state = 0}, - [220] = {.lex_state = 0}, - [221] = {.lex_state = 0}, - [222] = {.lex_state = 0}, - [223] = {.lex_state = 7}, - [224] = {.lex_state = 2}, - [225] = {.lex_state = 7}, - [226] = {.lex_state = 2}, - [227] = {.lex_state = 7}, - [228] = {.lex_state = 11}, - [229] = {.lex_state = 2}, - [230] = {.lex_state = 12}, - [231] = {.lex_state = 2}, - [232] = {.lex_state = 12}, - [233] = {.lex_state = 11}, - [234] = {.lex_state = 2}, - [235] = {.lex_state = 2}, - [236] = {.lex_state = 12}, - [237] = {.lex_state = 0}, - [238] = {.lex_state = 7}, - [239] = {.lex_state = 11}, - [240] = {.lex_state = 132}, - [241] = {.lex_state = 132}, - [242] = {.lex_state = 132}, - [243] = {.lex_state = 132}, - [244] = {.lex_state = 132}, - [245] = {.lex_state = 132}, - [246] = {.lex_state = 132}, - [247] = {.lex_state = 132}, - [248] = {.lex_state = 132}, - [249] = {.lex_state = 132}, - [250] = {.lex_state = 132}, - [251] = {.lex_state = 132}, - [252] = {.lex_state = 132}, - [253] = {.lex_state = 132}, - [254] = {.lex_state = 132}, - [255] = {.lex_state = 132}, - [256] = {.lex_state = 132}, - [257] = {.lex_state = 132}, - [258] = {.lex_state = 132}, - [259] = {.lex_state = 132}, - [260] = {.lex_state = 132}, - [261] = {.lex_state = 132}, - [262] = {.lex_state = 132}, - [263] = {.lex_state = 132}, - [264] = {.lex_state = 132}, - [265] = {.lex_state = 132}, - [266] = {.lex_state = 132}, - [267] = {.lex_state = 132}, - [268] = {.lex_state = 11}, - [269] = {.lex_state = 11}, - [270] = {.lex_state = 11}, + [86] = {.lex_state = 12}, + [87] = {.lex_state = 12}, + [88] = {.lex_state = 12}, + [89] = {.lex_state = 12}, + [90] = {.lex_state = 12}, + [91] = {.lex_state = 10}, + [92] = {.lex_state = 10}, + [93] = {.lex_state = 10}, + [94] = {.lex_state = 10}, + [95] = {.lex_state = 10}, + [96] = {.lex_state = 10}, + [97] = {.lex_state = 10}, + [98] = {.lex_state = 10}, + [99] = {.lex_state = 10}, + [100] = {.lex_state = 10}, + [101] = {.lex_state = 6}, + [102] = {.lex_state = 10}, + [103] = {.lex_state = 10}, + [104] = {.lex_state = 10}, + [105] = {.lex_state = 10}, + [106] = {.lex_state = 10}, + [107] = {.lex_state = 10}, + [108] = {.lex_state = 10}, + [109] = {.lex_state = 10}, + [110] = {.lex_state = 10}, + [111] = {.lex_state = 10}, + [112] = {.lex_state = 10}, + [113] = {.lex_state = 3}, + [114] = {.lex_state = 10}, + [115] = {.lex_state = 10}, + [116] = {.lex_state = 7}, + [117] = {.lex_state = 16}, + [118] = {.lex_state = 140}, + [119] = {.lex_state = 140}, + [120] = {.lex_state = 140}, + [121] = {.lex_state = 140}, + [122] = {.lex_state = 140}, + [123] = {.lex_state = 3}, + [124] = {.lex_state = 16}, + [125] = {.lex_state = 3}, + [126] = {.lex_state = 2}, + [127] = {.lex_state = 2}, + [128] = {.lex_state = 140}, + [129] = {.lex_state = 140}, + [130] = {.lex_state = 140}, + [131] = {.lex_state = 140}, + [132] = {.lex_state = 140}, + [133] = {.lex_state = 140}, + [134] = {.lex_state = 2}, + [135] = {.lex_state = 2}, + [136] = {.lex_state = 2}, + [137] = {.lex_state = 2}, + [138] = {.lex_state = 2}, + [139] = {.lex_state = 2}, + [140] = {.lex_state = 2}, + [141] = {.lex_state = 2}, + [142] = {.lex_state = 2}, + [143] = {.lex_state = 140}, + [144] = {.lex_state = 2}, + [145] = {.lex_state = 140}, + [146] = {.lex_state = 140}, + [147] = {.lex_state = 2}, + [148] = {.lex_state = 140}, + [149] = {.lex_state = 2}, + [150] = {.lex_state = 2}, + [151] = {.lex_state = 140}, + [152] = {.lex_state = 2}, + [153] = {.lex_state = 2}, + [154] = {.lex_state = 2}, + [155] = {.lex_state = 2}, + [156] = {.lex_state = 2}, + [157] = {.lex_state = 2}, + [158] = {.lex_state = 140}, + [159] = {.lex_state = 140}, + [160] = {.lex_state = 2}, + [161] = {.lex_state = 2}, + [162] = {.lex_state = 2}, + [163] = {.lex_state = 140}, + [164] = {.lex_state = 140}, + [165] = {.lex_state = 140}, + [166] = {.lex_state = 140}, + [167] = {.lex_state = 140}, + [168] = {.lex_state = 140}, + [169] = {.lex_state = 140}, + [170] = {.lex_state = 140}, + [171] = {.lex_state = 140}, + [172] = {.lex_state = 140}, + [173] = {.lex_state = 140}, + [174] = {.lex_state = 140}, + [175] = {.lex_state = 140}, + [176] = {.lex_state = 140}, + [177] = {.lex_state = 140}, + [178] = {.lex_state = 140}, + [179] = {.lex_state = 140}, + [180] = {.lex_state = 140}, + [181] = {.lex_state = 140}, + [182] = {.lex_state = 140}, + [183] = {.lex_state = 140}, + [184] = {.lex_state = 140}, + [185] = {.lex_state = 140}, + [186] = {.lex_state = 140}, + [187] = {.lex_state = 140}, + [188] = {.lex_state = 140}, + [189] = {.lex_state = 140}, + [190] = {.lex_state = 140}, + [191] = {.lex_state = 140}, + [192] = {.lex_state = 140}, + [193] = {.lex_state = 140}, + [194] = {.lex_state = 140}, + [195] = {.lex_state = 140}, + [196] = {.lex_state = 140}, + [197] = {.lex_state = 140}, + [198] = {.lex_state = 140}, + [199] = {.lex_state = 140}, + [200] = {.lex_state = 140}, + [201] = {.lex_state = 140}, + [202] = {.lex_state = 140}, + [203] = {.lex_state = 140}, + [204] = {.lex_state = 140}, + [205] = {.lex_state = 140}, + [206] = {.lex_state = 140}, + [207] = {.lex_state = 140}, + [208] = {.lex_state = 140}, + [209] = {.lex_state = 140}, + [210] = {.lex_state = 140}, + [211] = {.lex_state = 140}, + [212] = {.lex_state = 140}, + [213] = {.lex_state = 140}, + [214] = {.lex_state = 140}, + [215] = {.lex_state = 140}, + [216] = {.lex_state = 140}, + [217] = {.lex_state = 140}, + [218] = {.lex_state = 140}, + [219] = {.lex_state = 140}, + [220] = {.lex_state = 140}, + [221] = {.lex_state = 140}, + [222] = {.lex_state = 140}, + [223] = {.lex_state = 140}, + [224] = {.lex_state = 140}, + [225] = {.lex_state = 140}, + [226] = {.lex_state = 140}, + [227] = {.lex_state = 140}, + [228] = {.lex_state = 140}, + [229] = {.lex_state = 140}, + [230] = {.lex_state = 140}, + [231] = {.lex_state = 140}, + [232] = {.lex_state = 140}, + [233] = {.lex_state = 140}, + [234] = {.lex_state = 140}, + [235] = {.lex_state = 140}, + [236] = {.lex_state = 140}, + [237] = {.lex_state = 140}, + [238] = {.lex_state = 140}, + [239] = {.lex_state = 140}, + [240] = {.lex_state = 140}, + [241] = {.lex_state = 140}, + [242] = {.lex_state = 140}, + [243] = {.lex_state = 140}, + [244] = {.lex_state = 140}, + [245] = {.lex_state = 140}, + [246] = {.lex_state = 140}, + [247] = {.lex_state = 15}, + [248] = {.lex_state = 140}, + [249] = {.lex_state = 140}, + [250] = {.lex_state = 15}, + [251] = {.lex_state = 17}, + [252] = {.lex_state = 17}, + [253] = {.lex_state = 17}, + [254] = {.lex_state = 140}, + [255] = {.lex_state = 140}, + [256] = {.lex_state = 17}, + [257] = {.lex_state = 0}, + [258] = {.lex_state = 140}, + [259] = {.lex_state = 17}, + [260] = {.lex_state = 17}, + [261] = {.lex_state = 15}, + [262] = {.lex_state = 140}, + [263] = {.lex_state = 0}, + [264] = {.lex_state = 140}, + [265] = {.lex_state = 17}, + [266] = {.lex_state = 21}, + [267] = {.lex_state = 21}, + [268] = {.lex_state = 0}, + [269] = {.lex_state = 15}, + [270] = {.lex_state = 0}, [271] = {.lex_state = 0}, - [272] = {.lex_state = 11}, - [273] = {.lex_state = 11}, - [274] = {.lex_state = 11}, - [275] = {.lex_state = 11}, - [276] = {.lex_state = 11}, - [277] = {.lex_state = 11}, - [278] = {.lex_state = 11}, - [279] = {.lex_state = 11}, - [280] = {.lex_state = 13}, - [281] = {.lex_state = 14}, - [282] = {.lex_state = 0}, - [283] = {.lex_state = 0}, - [284] = {.lex_state = 11}, - [285] = {.lex_state = 12}, - [286] = {.lex_state = 11}, - [287] = {.lex_state = 0}, - [288] = {.lex_state = 12}, - [289] = {.lex_state = 11}, - [290] = {.lex_state = 12}, - [291] = {.lex_state = 12}, - [292] = {.lex_state = 12}, - [293] = {.lex_state = 12}, - [294] = {.lex_state = 12}, - [295] = {.lex_state = 12}, - [296] = {.lex_state = 12}, - [297] = {.lex_state = 12}, - [298] = {.lex_state = 0}, - [299] = {.lex_state = 11}, - [300] = {.lex_state = 12}, - [301] = {.lex_state = 11}, - [302] = {.lex_state = 11}, - [303] = {.lex_state = 11}, - [304] = {.lex_state = 11}, - [305] = {.lex_state = 11}, - [306] = {.lex_state = 11}, - [307] = {.lex_state = 2}, - [308] = {.lex_state = 12}, - [309] = {.lex_state = 0}, - [310] = {.lex_state = 11}, - [311] = {.lex_state = 11}, - [312] = {.lex_state = 11}, - [313] = {.lex_state = 11}, - [314] = {.lex_state = 11}, - [315] = {.lex_state = 11}, - [316] = {.lex_state = 11}, - [317] = {.lex_state = 11}, - [318] = {.lex_state = 11}, - [319] = {.lex_state = 11}, - [320] = {.lex_state = 132}, - [321] = {.lex_state = 0}, - [322] = {.lex_state = 0}, - [323] = {.lex_state = 0}, - [324] = {.lex_state = 2}, - [325] = {.lex_state = 0}, - [326] = {.lex_state = 0}, - [327] = {.lex_state = 0}, - [328] = {.lex_state = 0}, - [329] = {.lex_state = 0}, - [330] = {.lex_state = 132}, - [331] = {.lex_state = 0}, - [332] = {.lex_state = 8}, - [333] = {.lex_state = 0}, - [334] = {.lex_state = 0}, - [335] = {.lex_state = 2}, - [336] = {.lex_state = 2}, - [337] = {.lex_state = 2}, - [338] = {.lex_state = 0}, - [339] = {.lex_state = 0}, - [340] = {.lex_state = 0}, - [341] = {.lex_state = 0}, - [342] = {.lex_state = 2}, - [343] = {.lex_state = 2}, - [344] = {.lex_state = 11}, - [345] = {.lex_state = 0}, - [346] = {.lex_state = 0}, - [347] = {.lex_state = 2}, - [348] = {.lex_state = 2}, - [349] = {.lex_state = 0}, - [350] = {.lex_state = 2}, - [351] = {.lex_state = 0}, - [352] = {.lex_state = 0}, - [353] = {.lex_state = 132}, - [354] = {.lex_state = 132}, - [355] = {.lex_state = 2}, - [356] = {.lex_state = 0}, - [357] = {.lex_state = 0}, - [358] = {.lex_state = 0}, - [359] = {.lex_state = 0}, - [360] = {.lex_state = 0}, - [361] = {.lex_state = 0}, + [272] = {.lex_state = 21}, + [273] = {.lex_state = 0}, + [274] = {.lex_state = 140}, + [275] = {.lex_state = 140}, + [276] = {.lex_state = 140}, + [277] = {.lex_state = 140}, + [278] = {.lex_state = 140}, + [279] = {.lex_state = 140}, + [280] = {.lex_state = 140}, + [281] = {.lex_state = 140}, + [282] = {.lex_state = 140}, + [283] = {.lex_state = 140}, + [284] = {.lex_state = 140}, + [285] = {.lex_state = 140}, + [286] = {.lex_state = 140}, + [287] = {.lex_state = 140}, + [288] = {.lex_state = 140}, + [289] = {.lex_state = 140}, + [290] = {.lex_state = 140}, + [291] = {.lex_state = 140}, + [292] = {.lex_state = 140}, + [293] = {.lex_state = 140}, + [294] = {.lex_state = 140}, + [295] = {.lex_state = 140}, + [296] = {.lex_state = 140}, + [297] = {.lex_state = 140}, + [298] = {.lex_state = 15}, + [299] = {.lex_state = 140}, + [300] = {.lex_state = 140}, + [301] = {.lex_state = 140}, + [302] = {.lex_state = 15}, + [303] = {.lex_state = 140}, + [304] = {.lex_state = 15}, + [305] = {.lex_state = 15}, + [306] = {.lex_state = 15}, + [307] = {.lex_state = 15}, + [308] = {.lex_state = 15}, + [309] = {.lex_state = 15}, + [310] = {.lex_state = 15}, + [311] = {.lex_state = 15}, + [312] = {.lex_state = 15}, + [313] = {.lex_state = 15}, + [314] = {.lex_state = 15}, + [315] = {.lex_state = 15}, + [316] = {.lex_state = 15}, + [317] = {.lex_state = 15}, + [318] = {.lex_state = 15}, + [319] = {.lex_state = 15}, + [320] = {.lex_state = 15}, + [321] = {.lex_state = 15}, + [322] = {.lex_state = 15}, + [323] = {.lex_state = 15}, + [324] = {.lex_state = 15}, + [325] = {.lex_state = 22}, + [326] = {.lex_state = 23}, + [327] = {.lex_state = 15}, + [328] = {.lex_state = 15}, + [329] = {.lex_state = 15}, + [330] = {.lex_state = 21}, + [331] = {.lex_state = 15}, + [332] = {.lex_state = 15}, + [333] = {.lex_state = 15}, + [334] = {.lex_state = 21}, + [335] = {.lex_state = 0}, + [336] = {.lex_state = 21}, + [337] = {.lex_state = 15}, + [338] = {.lex_state = 17}, + [339] = {.lex_state = 15}, + [340] = {.lex_state = 15}, + [341] = {.lex_state = 15}, + [342] = {.lex_state = 15}, + [343] = {.lex_state = 15}, + [344] = {.lex_state = 15}, + [345] = {.lex_state = 15}, + [346] = {.lex_state = 21}, + [347] = {.lex_state = 15}, + [348] = {.lex_state = 15}, + [349] = {.lex_state = 21}, + [350] = {.lex_state = 21}, + [351] = {.lex_state = 21}, + [352] = {.lex_state = 21}, + [353] = {.lex_state = 15}, + [354] = {.lex_state = 15}, + [355] = {.lex_state = 21}, + [356] = {.lex_state = 21}, + [357] = {.lex_state = 15}, + [358] = {.lex_state = 21}, + [359] = {.lex_state = 15}, + [360] = {.lex_state = 21}, + [361] = {.lex_state = 15}, [362] = {.lex_state = 0}, - [363] = {.lex_state = 0}, - [364] = {.lex_state = 0}, + [363] = {.lex_state = 16}, + [364] = {.lex_state = 15}, [365] = {.lex_state = 0}, [366] = {.lex_state = 0}, - [367] = {.lex_state = 132}, - [368] = {.lex_state = 132}, + [367] = {.lex_state = 0}, + [368] = {.lex_state = 0}, [369] = {.lex_state = 0}, [370] = {.lex_state = 0}, - [371] = {.lex_state = 0}, - [372] = {.lex_state = 0}, - [373] = {.lex_state = 0}, - [374] = {.lex_state = 2}, + [371] = {.lex_state = 140}, + [372] = {.lex_state = 10}, + [373] = {.lex_state = 140}, + [374] = {.lex_state = 0}, [375] = {.lex_state = 0}, [376] = {.lex_state = 0}, - [377] = {.lex_state = 0}, - [378] = {.lex_state = 0}, - [379] = {.lex_state = 0}, + [377] = {.lex_state = 140}, + [378] = {.lex_state = 140}, + [379] = {.lex_state = 140}, [380] = {.lex_state = 0}, [381] = {.lex_state = 0}, [382] = {.lex_state = 0}, - [383] = {.lex_state = 0}, - [384] = {.lex_state = 132}, - [385] = {.lex_state = 2}, - [386] = {.lex_state = 8}, + [383] = {.lex_state = 10}, + [384] = {.lex_state = 140}, + [385] = {.lex_state = 0}, + [386] = {.lex_state = 0}, [387] = {.lex_state = 0}, - [388] = {.lex_state = 8}, + [388] = {.lex_state = 0}, [389] = {.lex_state = 0}, - [390] = {.lex_state = 2}, - [391] = {.lex_state = 132}, + [390] = {.lex_state = 16}, + [391] = {.lex_state = 0}, [392] = {.lex_state = 0}, - [393] = {.lex_state = 2}, - [394] = {.lex_state = 0}, + [393] = {.lex_state = 140}, + [394] = {.lex_state = 10}, [395] = {.lex_state = 0}, [396] = {.lex_state = 0}, - [397] = {.lex_state = 2}, + [397] = {.lex_state = 0}, [398] = {.lex_state = 0}, [399] = {.lex_state = 0}, [400] = {.lex_state = 0}, @@ -4620,17 +4902,17 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [404] = {.lex_state = 0}, [405] = {.lex_state = 0}, [406] = {.lex_state = 0}, - [407] = {.lex_state = 0}, + [407] = {.lex_state = 140}, [408] = {.lex_state = 0}, - [409] = {.lex_state = 0}, - [410] = {.lex_state = 0}, - [411] = {.lex_state = 0}, - [412] = {.lex_state = 0}, + [409] = {.lex_state = 140}, + [410] = {.lex_state = 140}, + [411] = {.lex_state = 1}, + [412] = {.lex_state = 140}, [413] = {.lex_state = 0}, - [414] = {.lex_state = 0}, + [414] = {.lex_state = 140}, [415] = {.lex_state = 0}, [416] = {.lex_state = 0}, - [417] = {.lex_state = 0}, + [417] = {.lex_state = 140}, [418] = {.lex_state = 0}, [419] = {.lex_state = 0}, [420] = {.lex_state = 0}, @@ -4638,27 +4920,63 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [422] = {.lex_state = 0}, [423] = {.lex_state = 0}, [424] = {.lex_state = 0}, - [425] = {.lex_state = 1}, - [426] = {.lex_state = 0}, + [425] = {.lex_state = 0}, + [426] = {.lex_state = 16}, [427] = {.lex_state = 0}, [428] = {.lex_state = 0}, [429] = {.lex_state = 0}, [430] = {.lex_state = 0}, - [431] = {.lex_state = 0}, + [431] = {.lex_state = 10}, [432] = {.lex_state = 0}, [433] = {.lex_state = 0}, - [434] = {.lex_state = 132}, - [435] = {.lex_state = 132}, + [434] = {.lex_state = 0}, + [435] = {.lex_state = 0}, [436] = {.lex_state = 0}, - [437] = {.lex_state = 0}, + [437] = {.lex_state = 16}, [438] = {.lex_state = 0}, - [439] = {.lex_state = 132}, + [439] = {.lex_state = 0}, [440] = {.lex_state = 0}, [441] = {.lex_state = 0}, [442] = {.lex_state = 0}, [443] = {.lex_state = 0}, [444] = {.lex_state = 0}, [445] = {.lex_state = 0}, + [446] = {.lex_state = 0}, + [447] = {.lex_state = 0}, + [448] = {.lex_state = 0}, + [449] = {.lex_state = 0}, + [450] = {.lex_state = 0}, + [451] = {.lex_state = 0}, + [452] = {.lex_state = 0}, + [453] = {.lex_state = 0}, + [454] = {.lex_state = 140}, + [455] = {.lex_state = 0}, + [456] = {.lex_state = 0}, + [457] = {.lex_state = 0}, + [458] = {.lex_state = 0}, + [459] = {.lex_state = 0}, + [460] = {.lex_state = 0}, + [461] = {.lex_state = 0}, + [462] = {.lex_state = 0}, + [463] = {.lex_state = 0}, + [464] = {.lex_state = 0}, + [465] = {.lex_state = 0}, + [466] = {.lex_state = 0}, + [467] = {.lex_state = 0}, + [468] = {.lex_state = 0}, + [469] = {.lex_state = 0}, + [470] = {.lex_state = 0}, + [471] = {.lex_state = 0}, + [472] = {.lex_state = 0}, + [473] = {.lex_state = 0}, + [474] = {.lex_state = 0}, + [475] = {.lex_state = 0}, + [476] = {.lex_state = 0}, + [477] = {.lex_state = 0}, + [478] = {.lex_state = 0}, + [479] = {.lex_state = 0}, + [480] = {.lex_state = 0}, + [481] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -4673,17 +4991,41 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_type_u32] = ACTIONS(1), [sym_type_u64] = ACTIONS(1), [sym_type_bool] = ACTIONS(1), - [anon_sym_LPAREN_RPAREN] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_fn] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), - [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), + [anon_sym_COLON_COLON] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), - [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_RPAREN2] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), [anon_sym_assert] = ACTIONS(1), [anon_sym_break] = ACTIONS(1), + [anon_sym_STAR_STAR] = ACTIONS(1), + [anon_sym_AMP_AMP] = ACTIONS(1), + [anon_sym_PIPE_PIPE] = ACTIONS(1), + [anon_sym_AMP] = ACTIONS(1), + [anon_sym_PIPE] = ACTIONS(1), + [anon_sym_CARET] = ACTIONS(1), + [anon_sym_LT_LT] = ACTIONS(1), + [anon_sym_GT_GT] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_DASH] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_EQ_EQ] = ACTIONS(1), + [anon_sym_BANG_EQ] = ACTIONS(1), + [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), [anon_sym_let] = ACTIONS(1), [anon_sym_type] = ACTIONS(1), [anon_sym_const] = ACTIONS(1), @@ -4693,159 +5035,130 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_external] = ACTIONS(1), [anon_sym_self] = ACTIONS(1), [anon_sym__] = ACTIONS(1), + [anon_sym_assume] = ACTIONS(1), + [anon_sym_forall] = ACTIONS(1), + [anon_sym_exists] = ACTIONS(1), + [anon_sym_unique] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), - [anon_sym_elseif] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), [anon_sym_loop] = ACTIONS(1), [anon_sym_use] = ACTIONS(1), + [anon_sym_COLON_COLON2] = ACTIONS(1), [anon_sym_from] = ACTIONS(1), [anon_sym_return] = ACTIONS(1), - [anon_sym_forall] = ACTIONS(1), - [anon_sym_assume] = ACTIONS(1), - [anon_sym_exists] = ACTIONS(1), - [anon_sym_unique] = ACTIONS(1), [sym_uzumaki_keyword] = ACTIONS(1), [sym_mut_keyword] = ACTIONS(1), [sym_unary_not] = ACTIONS(1), - [sym_add_operator] = ACTIONS(1), - [anon_sym_DASH] = ACTIONS(1), - [sym_mul_operator] = ACTIONS(1), - [sym_pow_operator] = ACTIONS(1), - [sym_mod_operator] = ACTIONS(1), - [sym_and_operator] = ACTIONS(1), - [sym_or_operator] = ACTIONS(1), - [sym_shift_left_operator] = ACTIONS(1), - [sym_shift_right_operator] = ACTIONS(1), - [sym_bit_and_operator] = ACTIONS(1), - [sym_bit_or_operator] = ACTIONS(1), - [sym_bit_xor_operator] = ACTIONS(1), - [anon_sym_LT] = ACTIONS(1), - [anon_sym_GT] = ACTIONS(1), - [sym_less_equal_operator] = ACTIONS(1), - [sym_greater_equal_operator] = ACTIONS(1), - [sym_equals_operator] = ACTIONS(1), - [sym_not_equals_operator] = ACTIONS(1), - [sym_assign_operator] = ACTIONS(1), - [sym_expand_operator] = ACTIONS(1), - [sym_attribute_access_operator] = ACTIONS(1), - [anon_sym_LBRACE] = ACTIONS(1), - [anon_sym_RBRACE] = ACTIONS(1), - [anon_sym_COLON] = ACTIONS(1), [anon_sym_true] = ACTIONS(1), [anon_sym_false] = ACTIONS(1), [anon_sym_DQUOTE] = ACTIONS(1), [aux_sym_number_literal_token1] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), [anon_sym_constructor] = ACTIONS(1), [anon_sym_proof] = ACTIONS(1), [anon_sym_uzumaki] = ACTIONS(1), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(1)] = { - [sym_source_file] = STATE(438), - [sym__definition] = STATE(204), - [sym_type_definition_statement] = STATE(204), - [sym_constant_definition] = STATE(204), - [sym_spec_definition] = STATE(204), - [sym_enum_definition] = STATE(204), - [sym_struct_definition] = STATE(204), - [sym_function_definition] = STATE(204), - [sym_external_function_definition] = STATE(204), - [sym_use_directive] = STATE(204), - [sym_function_keyword] = STATE(319), - [aux_sym_source_file_repeat1] = STATE(204), - [ts_builtin_sym_end] = ACTIONS(5), - [anon_sym_fn] = ACTIONS(7), - [anon_sym_type] = ACTIONS(9), - [anon_sym_const] = ACTIONS(11), - [anon_sym_spec] = ACTIONS(13), - [anon_sym_enum] = ACTIONS(15), - [anon_sym_struct] = ACTIONS(17), - [anon_sym_external] = ACTIONS(19), - [anon_sym_use] = ACTIONS(21), - [sym_comment] = ACTIONS(3), + [sym_source_file] = STATE(457), + [sym__definition] = STATE(233), + [sym_type_definition_statement] = STATE(233), + [sym_constant_definition] = STATE(233), + [sym_spec_definition] = STATE(233), + [sym_enum_definition] = STATE(233), + [sym_struct_definition] = STATE(233), + [sym_function_definition] = STATE(233), + [sym_external_function_definition] = STATE(233), + [sym_use_directive] = STATE(233), + [aux_sym_source_file_repeat1] = STATE(233), + [ts_builtin_sym_end] = ACTIONS(7), + [anon_sym_fn] = ACTIONS(9), + [anon_sym_type] = ACTIONS(11), + [anon_sym_const] = ACTIONS(13), + [anon_sym_spec] = ACTIONS(15), + [anon_sym_enum] = ACTIONS(17), + [anon_sym_struct] = ACTIONS(19), + [anon_sym_external] = ACTIONS(21), + [anon_sym_use] = ACTIONS(23), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(2)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(243), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(4), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(3), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(35), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(65), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -4854,90 +5167,84 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(3)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(62), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(10), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(4), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(75), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(75), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -4946,182 +5253,170 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(4)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(252), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(10), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), - [anon_sym_exists] = ACTIONS(53), - [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(77), - [anon_sym_true] = ACTIONS(67), - [anon_sym_false] = ACTIONS(67), - [anon_sym_DQUOTE] = ACTIONS(69), - [aux_sym_number_literal_token1] = ACTIONS(71), - [anon_sym_constructor] = ACTIONS(73), - [anon_sym_proof] = ACTIONS(73), - [anon_sym_uzumaki] = ACTIONS(73), - [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(4), + [sym_type_i8] = ACTIONS(77), + [sym_type_i16] = ACTIONS(77), + [sym_type_i32] = ACTIONS(77), + [sym_type_i64] = ACTIONS(77), + [sym_type_u8] = ACTIONS(77), + [sym_type_u16] = ACTIONS(77), + [sym_type_u32] = ACTIONS(77), + [sym_type_u64] = ACTIONS(77), + [sym_type_bool] = ACTIONS(77), + [anon_sym_LPAREN] = ACTIONS(80), + [anon_sym_LBRACK] = ACTIONS(83), + [anon_sym_fn] = ACTIONS(86), + [anon_sym_LBRACE] = ACTIONS(89), + [anon_sym_RBRACE] = ACTIONS(92), + [anon_sym_assert] = ACTIONS(94), + [anon_sym_break] = ACTIONS(97), + [anon_sym_DASH] = ACTIONS(100), + [anon_sym_let] = ACTIONS(103), + [anon_sym_type] = ACTIONS(106), + [anon_sym_const] = ACTIONS(109), + [anon_sym_assume] = ACTIONS(112), + [anon_sym_forall] = ACTIONS(115), + [anon_sym_exists] = ACTIONS(118), + [anon_sym_unique] = ACTIONS(121), + [anon_sym_if] = ACTIONS(124), + [anon_sym_loop] = ACTIONS(127), + [anon_sym_return] = ACTIONS(130), + [sym_uzumaki_keyword] = ACTIONS(133), + [sym_unary_not] = ACTIONS(136), + [anon_sym_true] = ACTIONS(139), + [anon_sym_false] = ACTIONS(139), + [anon_sym_DQUOTE] = ACTIONS(142), + [aux_sym_number_literal_token1] = ACTIONS(145), + [anon_sym_constructor] = ACTIONS(148), + [anon_sym_proof] = ACTIONS(148), + [anon_sym_uzumaki] = ACTIONS(148), + [sym__identifier] = ACTIONS(148), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(5)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(90), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(10), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(4), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(151), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(79), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -5130,90 +5425,84 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(6)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(297), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), [aux_sym_block_repeat1] = STATE(8), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(153), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(81), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -5222,90 +5511,84 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(7)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(86), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), [aux_sym_block_repeat1] = STATE(5), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(155), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(83), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -5314,90 +5597,84 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(8)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(300), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(10), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(4), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(157), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(85), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -5406,90 +5683,84 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(9)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym__rcb_symbol] = STATE(64), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(3), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_assert] = ACTIONS(33), - [anon_sym_break] = ACTIONS(35), - [anon_sym_let] = ACTIONS(37), - [anon_sym_type] = ACTIONS(39), - [anon_sym_const] = ACTIONS(41), - [anon_sym_if] = ACTIONS(43), - [anon_sym_loop] = ACTIONS(45), - [anon_sym_return] = ACTIONS(47), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(10), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(159), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(57), - [sym_unary_not] = ACTIONS(59), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), - [anon_sym_RBRACE] = ACTIONS(87), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -5498,159 +5769,84 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, [STATE(10)] = { - [sym__statement] = STATE(76), - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(191), - [sym__expression] = STATE(191), - [sym__lval_expression] = STATE(192), - [sym__non_lval_expression] = STATE(191), - [sym__block] = STATE(76), - [sym_array_index_access_expression] = STATE(192), - [sym_member_access_expression] = STATE(192), - [sym_function_call_expression] = STATE(191), - [sym_struct_expression] = STATE(191), - [sym_expression_statement] = STATE(76), - [sym_assign_statement] = STATE(76), - [sym_assert_statement] = STATE(76), - [sym_break_statement] = STATE(76), - [sym_parenthesized_expression] = STATE(191), - [sym_prefix_unary_expression] = STATE(191), - [sym_binary_expression] = STATE(191), - [sym_variable_definition_statement] = STATE(76), - [sym_type_definition_statement] = STATE(76), - [sym_constant_definition] = STATE(76), - [sym_block] = STATE(76), - [sym_assume_block] = STATE(76), - [sym_forall_block] = STATE(76), - [sym_exists_block] = STATE(76), - [sym_unique_block] = STATE(76), - [sym_if_statement] = STATE(76), - [sym_loop_statement] = STATE(76), - [sym_return_statement] = STATE(76), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym_bool_literal] = STATE(191), - [sym_string_literal] = STATE(191), - [sym_number_literal] = STATE(191), - [sym_unit_literal] = STATE(191), - [sym_array_literal] = STATE(191), - [sym__name] = STATE(341), - [sym_type_qualified_name] = STATE(341), - [sym__simple_name] = STATE(125), - [sym_qualified_name] = STATE(341), - [sym_generic_name] = STATE(125), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [aux_sym_block_repeat1] = STATE(10), - [sym_type_i8] = ACTIONS(89), - [sym_type_i16] = ACTIONS(89), - [sym_type_i32] = ACTIONS(89), - [sym_type_i64] = ACTIONS(89), - [sym_type_u8] = ACTIONS(89), - [sym_type_u16] = ACTIONS(89), - [sym_type_u32] = ACTIONS(89), - [sym_type_u64] = ACTIONS(89), - [sym_type_bool] = ACTIONS(89), - [anon_sym_LPAREN_RPAREN] = ACTIONS(92), - [anon_sym_LBRACK] = ACTIONS(95), - [anon_sym_fn] = ACTIONS(98), - [anon_sym_LPAREN] = ACTIONS(101), - [anon_sym_assert] = ACTIONS(104), - [anon_sym_break] = ACTIONS(107), - [anon_sym_let] = ACTIONS(110), - [anon_sym_type] = ACTIONS(113), - [anon_sym_const] = ACTIONS(116), - [anon_sym_if] = ACTIONS(119), - [anon_sym_loop] = ACTIONS(122), - [anon_sym_return] = ACTIONS(125), - [anon_sym_forall] = ACTIONS(128), - [anon_sym_assume] = ACTIONS(131), - [anon_sym_exists] = ACTIONS(134), - [anon_sym_unique] = ACTIONS(137), - [sym_uzumaki_keyword] = ACTIONS(140), - [sym_unary_not] = ACTIONS(143), - [anon_sym_DASH] = ACTIONS(146), - [anon_sym_LBRACE] = ACTIONS(149), - [anon_sym_RBRACE] = ACTIONS(152), - [anon_sym_true] = ACTIONS(154), - [anon_sym_false] = ACTIONS(154), - [anon_sym_DQUOTE] = ACTIONS(157), - [aux_sym_number_literal_token1] = ACTIONS(160), - [anon_sym_constructor] = ACTIONS(163), - [anon_sym_proof] = ACTIONS(163), - [anon_sym_uzumaki] = ACTIONS(163), - [sym__identifier] = ACTIONS(163), - [sym_comment] = ACTIONS(3), - }, - [STATE(11)] = { - [sym__embedded_type] = STATE(402), - [sym_type_unit] = STATE(402), - [sym_type_array] = STATE(402), - [sym_type_fn] = STATE(402), - [sym__literal] = STATE(68), - [sym__expression] = STATE(68), - [sym__lval_expression] = STATE(100), - [sym__non_lval_expression] = STATE(68), - [sym__block] = STATE(80), - [sym_array_index_access_expression] = STATE(100), - [sym_member_access_expression] = STATE(100), - [sym_function_call_expression] = STATE(68), - [sym_struct_expression] = STATE(68), - [sym_parenthesized_expression] = STATE(68), - [sym_prefix_unary_expression] = STATE(68), - [sym_binary_expression] = STATE(68), - [sym_block] = STATE(80), - [sym_assume_block] = STATE(80), - [sym_forall_block] = STATE(80), - [sym_exists_block] = STATE(80), - [sym_unique_block] = STATE(80), - [sym__forall_keyword] = STATE(360), - [sym__assume_keyword] = STATE(361), - [sym__exists_keyword] = STATE(362), - [sym__unique_keyword] = STATE(363), - [sym__lcb_symbol] = STATE(7), - [sym_bool_literal] = STATE(68), - [sym_string_literal] = STATE(68), - [sym_number_literal] = STATE(68), - [sym_unit_literal] = STATE(68), - [sym_array_literal] = STATE(68), - [sym__name] = STATE(346), - [sym_type_qualified_name] = STATE(346), - [sym__simple_name] = STATE(176), - [sym_qualified_name] = STATE(346), - [sym_generic_name] = STATE(176), - [sym__reserved_identifier] = STATE(98), - [sym_identifier] = STATE(93), - [sym_type_i8] = ACTIONS(23), - [sym_type_i16] = ACTIONS(23), - [sym_type_i32] = ACTIONS(23), - [sym_type_i64] = ACTIONS(23), - [sym_type_u8] = ACTIONS(23), - [sym_type_u16] = ACTIONS(23), - [sym_type_u32] = ACTIONS(23), - [sym_type_u64] = ACTIONS(23), - [sym_type_bool] = ACTIONS(23), - [anon_sym_LPAREN_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_fn] = ACTIONS(29), - [anon_sym_LPAREN] = ACTIONS(31), - [anon_sym_forall] = ACTIONS(49), - [anon_sym_assume] = ACTIONS(51), + [sym__statement] = STATE(112), + [sym_type_fn] = STATE(446), + [sym__literal] = STATE(238), + [sym__expression] = STATE(238), + [sym__lval_expression] = STATE(201), + [sym__non_lval_expression] = STATE(238), + [sym__block] = STATE(112), + [sym_array_index_access_expression] = STATE(201), + [sym_member_access_expression] = STATE(185), + [sym__identifier_like_embedded_type] = STATE(446), + [sym_type_member_access_expression] = STATE(193), + [sym_function_call_expression] = STATE(238), + [sym_struct_expression] = STATE(238), + [sym_expression_statement] = STATE(112), + [sym_assign_statement] = STATE(112), + [sym_assert_statement] = STATE(112), + [sym_break_statement] = STATE(112), + [sym_parenthesized_expression] = STATE(158), + [sym_prefix_unary_expression] = STATE(238), + [sym_binary_expression] = STATE(238), + [sym_variable_definition_statement] = STATE(112), + [sym_type_definition_statement] = STATE(112), + [sym_constant_definition] = STATE(112), + [sym_block] = STATE(112), + [sym_assume_block] = STATE(112), + [sym_forall_block] = STATE(112), + [sym_exists_block] = STATE(112), + [sym_unique_block] = STATE(112), + [sym_if_statement] = STATE(112), + [sym_loop_statement] = STATE(112), + [sym_return_statement] = STATE(112), + [sym_bool_literal] = STATE(238), + [sym_string_literal] = STATE(238), + [sym_number_literal] = STATE(238), + [sym_unit_literal] = STATE(238), + [sym_array_literal] = STATE(238), + [sym__name] = STATE(370), + [sym_type_qualified_name] = STATE(370), + [sym__simple_name] = STATE(130), + [sym_qualified_name] = STATE(370), + [sym_generic_name] = STATE(130), + [sym__bracketed_generic_name] = STATE(446), + [sym__reserved_identifier] = STATE(76), + [sym_identifier] = STATE(13), + [aux_sym_block_repeat1] = STATE(4), + [sym_type_i8] = ACTIONS(25), + [sym_type_i16] = ACTIONS(25), + [sym_type_i32] = ACTIONS(25), + [sym_type_i64] = ACTIONS(25), + [sym_type_u8] = ACTIONS(25), + [sym_type_u16] = ACTIONS(25), + [sym_type_u32] = ACTIONS(25), + [sym_type_u64] = ACTIONS(25), + [sym_type_bool] = ACTIONS(25), + [anon_sym_LPAREN] = ACTIONS(27), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_fn] = ACTIONS(31), + [anon_sym_LBRACE] = ACTIONS(33), + [anon_sym_RBRACE] = ACTIONS(161), + [anon_sym_assert] = ACTIONS(37), + [anon_sym_break] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(41), + [anon_sym_let] = ACTIONS(43), + [anon_sym_type] = ACTIONS(45), + [anon_sym_const] = ACTIONS(47), + [anon_sym_assume] = ACTIONS(49), + [anon_sym_forall] = ACTIONS(51), [anon_sym_exists] = ACTIONS(53), [anon_sym_unique] = ACTIONS(55), - [sym_uzumaki_keyword] = ACTIONS(166), - [sym_unary_not] = ACTIONS(168), - [anon_sym_DASH] = ACTIONS(61), - [anon_sym_LBRACE] = ACTIONS(63), + [anon_sym_if] = ACTIONS(57), + [anon_sym_loop] = ACTIONS(59), + [anon_sym_return] = ACTIONS(61), + [sym_uzumaki_keyword] = ACTIONS(63), + [sym_unary_not] = ACTIONS(65), [anon_sym_true] = ACTIONS(67), [anon_sym_false] = ACTIONS(67), [anon_sym_DQUOTE] = ACTIONS(69), @@ -5659,65 +5855,83 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_proof] = ACTIONS(73), [anon_sym_uzumaki] = ACTIONS(73), [sym__identifier] = ACTIONS(73), - [sym_comment] = ACTIONS(3), + [sym_docstring] = ACTIONS(3), + [sym_comment] = ACTIONS(5), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 22, + [0] = 29, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(33), 1, + anon_sym_LBRACE, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(49), 1, + anon_sym_assume, + ACTIONS(51), 1, + anon_sym_forall, + ACTIONS(53), 1, + anon_sym_exists, + ACTIONS(55), 1, + anon_sym_unique, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(172), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(174), 1, - anon_sym_RBRACK, - ACTIONS(176), 1, + ACTIONS(165), 1, sym_uzumaki_keyword, - STATE(93), 1, + ACTIONS(167), 1, + sym_unary_not, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, - STATE(394), 1, - sym__type, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(180), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(283), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(351), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(170), 9, + STATE(108), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -5727,13 +5941,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(179), 13, + STATE(145), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -5741,58 +5954,51 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [99] = 21, + [122] = 15, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(27), 1, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, anon_sym_LBRACK, - ACTIONS(29), 1, + ACTIONS(181), 1, anon_sym_fn, - ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(69), 1, - anon_sym_DQUOTE, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - ACTIONS(178), 1, - anon_sym_RPAREN, - ACTIONS(180), 1, - sym_uzumaki_keyword, - STATE(93), 1, - sym_identifier, - STATE(98), 1, + ACTIONS(185), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, sym__reserved_identifier, - ACTIONS(67), 2, - anon_sym_true, - anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, - sym__lval_expression, - sym_array_index_access_expression, - sym_member_access_expression, - STATE(298), 3, - sym__name, - sym_type_qualified_name, - sym_qualified_name, - ACTIONS(73), 4, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + ACTIONS(183), 6, + anon_sym_COLON, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + STATE(480), 6, + sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(23), 9, + sym__bracketed_generic_name, + ACTIONS(171), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -5802,72 +6008,72 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(181), 13, - sym__literal, - sym__expression, - sym__non_lval_expression, - sym_function_call_expression, - sym_struct_expression, - sym_parenthesized_expression, - sym_prefix_unary_expression, - sym_binary_expression, - sym_bool_literal, - sym_string_literal, - sym_number_literal, - sym_unit_literal, - sym_array_literal, - [195] = 21, + ACTIONS(179), 20, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [212] = 15, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(27), 1, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, anon_sym_LBRACK, - ACTIONS(29), 1, + ACTIONS(181), 1, anon_sym_fn, - ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(69), 1, - anon_sym_DQUOTE, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - ACTIONS(182), 1, - anon_sym_RPAREN, - ACTIONS(184), 1, - sym_uzumaki_keyword, - STATE(93), 1, - sym_identifier, - STATE(98), 1, + ACTIONS(185), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, sym__reserved_identifier, - ACTIONS(67), 2, - anon_sym_true, - anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, - sym__lval_expression, - sym_array_index_access_expression, - sym_member_access_expression, - STATE(287), 3, - sym__name, - sym_type_qualified_name, - sym_qualified_name, - ACTIONS(73), 4, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + ACTIONS(183), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + STATE(462), 6, + sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(23), 9, + sym__bracketed_generic_name, + ACTIONS(189), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -5877,70 +6083,74 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(177), 13, - sym__literal, - sym__expression, - sym__non_lval_expression, - sym_function_call_expression, - sym_struct_expression, - sym_parenthesized_expression, - sym_prefix_unary_expression, - sym_binary_expression, - sym_bool_literal, - sym_string_literal, - sym_number_literal, - sym_unit_literal, - sym_array_literal, - [291] = 20, + ACTIONS(179), 19, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [301] = 15, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(27), 1, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, anon_sym_LBRACK, - ACTIONS(29), 1, + ACTIONS(181), 1, anon_sym_fn, - ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(69), 1, - anon_sym_DQUOTE, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - ACTIONS(168), 1, - sym_unary_not, - ACTIONS(186), 1, - sym_uzumaki_keyword, - STATE(93), 1, - sym_identifier, - STATE(98), 1, + ACTIONS(185), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, sym__reserved_identifier, - ACTIONS(67), 2, - anon_sym_true, - anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, - sym__lval_expression, - sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, - sym__name, - sym_type_qualified_name, - sym_qualified_name, - ACTIONS(73), 4, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(23), 9, + sym__bracketed_generic_name, + ACTIONS(183), 9, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + ACTIONS(189), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -5950,70 +6160,66 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(67), 13, - sym__literal, - sym__expression, - sym__non_lval_expression, - sym_function_call_expression, - sym_struct_expression, - sym_parenthesized_expression, - sym_prefix_unary_expression, - sym_binary_expression, - sym_bool_literal, - sym_string_literal, - sym_number_literal, - sym_unit_literal, - sym_array_literal, - [384] = 20, + ACTIONS(179), 16, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [390] = 14, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(27), 1, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, anon_sym_LBRACK, - ACTIONS(29), 1, + ACTIONS(181), 1, anon_sym_fn, - ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(69), 1, - anon_sym_DQUOTE, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - ACTIONS(188), 1, - sym_uzumaki_keyword, - STATE(93), 1, - sym_identifier, - STATE(98), 1, + STATE(77), 1, sym__reserved_identifier, - ACTIONS(67), 2, - anon_sym_true, - anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, - sym__lval_expression, - sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, - sym__name, - sym_type_qualified_name, - sym_qualified_name, - ACTIONS(73), 4, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + ACTIONS(183), 6, + anon_sym_COLON, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + STATE(480), 6, + sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(23), 9, + sym__bracketed_generic_name, + ACTIONS(171), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6023,70 +6229,145 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(156), 13, - sym__literal, - sym__expression, - sym__non_lval_expression, - sym_function_call_expression, - sym_struct_expression, - sym_parenthesized_expression, - sym_prefix_unary_expression, - sym_binary_expression, - sym_bool_literal, - sym_string_literal, - sym_number_literal, - sym_unit_literal, - sym_array_literal, - [477] = 20, + ACTIONS(179), 20, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [477] = 14, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(27), 1, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, anon_sym_LBRACK, - ACTIONS(29), 1, + ACTIONS(181), 1, anon_sym_fn, - ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(69), 1, - anon_sym_DQUOTE, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - ACTIONS(190), 1, - sym_uzumaki_keyword, - STATE(93), 1, - sym_identifier, - STATE(98), 1, + STATE(77), 1, sym__reserved_identifier, - ACTIONS(67), 2, - anon_sym_true, - anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, - sym__lval_expression, - sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, sym__name, sym_type_qualified_name, + sym__simple_name, sym_qualified_name, - ACTIONS(73), 4, + sym_generic_name, + ACTIONS(183), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + ACTIONS(179), 19, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [563] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, + anon_sym_LBRACK, + ACTIONS(181), 1, + anon_sym_fn, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(23), 9, + sym__bracketed_generic_name, + ACTIONS(183), 9, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + ACTIONS(189), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6096,70 +6377,206 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(157), 13, - sym__literal, - sym__expression, - sym__non_lval_expression, - sym_function_call_expression, - sym_struct_expression, - sym_parenthesized_expression, - sym_prefix_unary_expression, - sym_binary_expression, - sym_bool_literal, - sym_string_literal, - sym_number_literal, - sym_unit_literal, - sym_array_literal, - [570] = 20, + ACTIONS(179), 16, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [649] = 14, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(27), 1, - anon_sym_LBRACK, - ACTIONS(29), 1, - anon_sym_fn, - ACTIONS(31), 1, + ACTIONS(173), 1, anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(69), 1, - anon_sym_DQUOTE, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - ACTIONS(192), 1, - sym_uzumaki_keyword, - STATE(93), 1, - sym_identifier, - STATE(98), 1, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + STATE(77), 1, sym__reserved_identifier, - ACTIONS(67), 2, - anon_sym_true, - anon_sym_false, - STATE(125), 2, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, sym__simple_name, + sym_qualified_name, sym_generic_name, - STATE(100), 3, - sym__lval_expression, - sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(183), 9, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + ACTIONS(179), 15, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [734] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + ACTIONS(183), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + STATE(362), 5, sym__name, sym_type_qualified_name, + sym__simple_name, sym_qualified_name, - ACTIONS(73), 4, + sym_generic_name, + STATE(480), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(171), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + ACTIONS(179), 18, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [818] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(173), 1, + anon_sym_LPAREN, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, + ACTIONS(183), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(23), 9, + sym__bracketed_generic_name, + ACTIONS(189), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6169,70 +6586,80 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(129), 13, - sym__literal, - sym__expression, - sym__non_lval_expression, - sym_function_call_expression, - sym_struct_expression, - sym_parenthesized_expression, - sym_prefix_unary_expression, - sym_binary_expression, - sym_bool_literal, - sym_string_literal, - sym_number_literal, - sym_unit_literal, - sym_array_literal, - [663] = 20, + ACTIONS(179), 17, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_RPAREN2, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [901] = 24, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(194), 1, + ACTIONS(195), 1, + anon_sym_RBRACK, + ACTIONS(197), 1, sym_uzumaki_keyword, - STATE(93), 1, + ACTIONS(199), 1, + sym_unary_not, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(392), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6242,13 +6669,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(131), 13, + STATE(226), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6256,56 +6682,63 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [756] = 20, + [1003] = 25, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(196), 1, + ACTIONS(201), 1, + anon_sym_RPAREN, + ACTIONS(203), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(130), 1, + sym__simple_name, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(187), 1, + sym_generic_name, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6315,13 +6748,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(132), 13, + STATE(239), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6329,56 +6761,62 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [849] = 20, + [1107] = 24, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(198), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(205), 1, + anon_sym_RPAREN2, + ACTIONS(207), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(366), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6388,13 +6826,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(133), 13, + STATE(224), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6402,56 +6839,62 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [942] = 20, + [1209] = 24, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(200), 1, + ACTIONS(209), 1, + anon_sym_SEMI, + ACTIONS(211), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6461,13 +6904,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(134), 13, + STATE(243), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6475,56 +6917,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1035] = 20, + [1311] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(202), 1, + ACTIONS(213), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6534,13 +6980,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(135), 13, + STATE(213), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6548,56 +6993,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1128] = 20, + [1410] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(204), 1, + ACTIONS(215), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6607,13 +7056,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(136), 13, + STATE(223), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6621,56 +7069,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1221] = 20, + [1509] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(206), 1, + ACTIONS(217), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6680,13 +7132,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(137), 13, + STATE(221), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6694,56 +7145,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1314] = 20, + [1608] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(208), 1, + ACTIONS(219), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6753,13 +7208,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(198), 13, + STATE(236), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6767,56 +7221,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1407] = 20, + [1707] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(210), 1, + ACTIONS(221), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6826,13 +7284,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(186), 13, + STATE(240), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6840,56 +7297,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1500] = 20, + [1806] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(212), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(223), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(392), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6899,13 +7360,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(195), 13, + STATE(228), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6913,56 +7373,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1593] = 20, + [1905] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, - sym_unary_not, - ACTIONS(214), 1, + ACTIONS(225), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -6972,13 +7436,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(168), 13, + STATE(242), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -6986,56 +7449,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1686] = 20, + [2004] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(216), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(227), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(365), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7045,13 +7512,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(188), 13, + STATE(231), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7059,56 +7525,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1779] = 20, + [2103] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(218), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(229), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(392), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7118,13 +7588,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(185), 13, + STATE(227), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7132,56 +7601,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1872] = 20, + [2202] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(220), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(231), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(392), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7191,13 +7664,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(193), 13, + STATE(225), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7205,56 +7677,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [1965] = 20, + [2301] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(222), 1, + ACTIONS(233), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7264,13 +7740,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(149), 13, + STATE(235), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7278,56 +7753,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2058] = 20, + [2400] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(224), 1, + ACTIONS(235), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7337,13 +7816,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(69), 13, + STATE(151), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7351,56 +7829,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2151] = 20, + [2499] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(226), 1, + ACTIONS(237), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(309), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7410,13 +7892,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(184), 13, + STATE(237), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7424,56 +7905,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2244] = 20, + [2598] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(228), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(239), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(392), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7483,13 +7968,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(182), 13, + STATE(229), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7497,56 +7981,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2337] = 20, + [2697] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(230), 1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(241), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(12), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(392), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7556,13 +8044,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(145), 13, + STATE(230), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7570,56 +8057,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2430] = 20, + [2796] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(232), 1, + ACTIONS(167), 1, + sym_unary_not, + ACTIONS(243), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7629,13 +8120,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(189), 13, + STATE(143), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7643,56 +8133,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2523] = 20, + [2895] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(234), 1, + ACTIONS(245), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7702,13 +8196,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(183), 13, + STATE(222), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7716,56 +8209,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2616] = 20, + [2994] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(236), 1, + ACTIONS(247), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7775,13 +8272,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(190), 13, + STATE(169), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7789,56 +8285,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2709] = 20, + [3093] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(238), 1, + ACTIONS(249), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7848,13 +8348,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(194), 13, + STATE(219), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7862,56 +8361,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2802] = 20, + [3192] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(240), 1, + ACTIONS(251), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7921,13 +8424,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(196), 13, + STATE(232), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -7935,58 +8437,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2895] = 21, + [3291] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(242), 1, + ACTIONS(167), 1, + sym_unary_not, + ACTIONS(247), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, - STATE(201), 1, - sym__expression, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -7996,12 +8500,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(203), 12, + STATE(169), 12, sym__literal, + sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8009,56 +8513,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [2990] = 20, + [3390] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(244), 1, + ACTIONS(167), 1, + sym_unary_not, + ACTIONS(253), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8068,13 +8576,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(187), 13, + STATE(199), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8082,56 +8589,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3083] = 20, + [3489] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(246), 1, + ACTIONS(255), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8141,13 +8652,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(173), 13, + STATE(192), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8155,56 +8665,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3176] = 20, + [3588] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(248), 1, + ACTIONS(257), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8214,13 +8728,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(158), 13, + STATE(194), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8228,56 +8741,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3269] = 20, + [3687] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(250), 1, + ACTIONS(259), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8287,13 +8804,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(159), 13, + STATE(195), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8301,56 +8817,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3362] = 20, + [3786] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(252), 1, + ACTIONS(261), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8360,13 +8880,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(160), 13, + STATE(196), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8374,56 +8893,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3455] = 20, + [3885] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(254), 1, + ACTIONS(263), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8433,13 +8956,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(161), 13, + STATE(191), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8447,56 +8969,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3548] = 20, + [3984] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(256), 1, + ACTIONS(265), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8506,13 +9032,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(162), 13, + STATE(197), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8520,56 +9045,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3641] = 20, + [4083] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(258), 1, + ACTIONS(267), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8579,13 +9108,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(163), 13, + STATE(198), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8593,56 +9121,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3734] = 20, + [4182] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(260), 1, + ACTIONS(269), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8652,13 +9184,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(164), 13, + STATE(189), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8666,56 +9197,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3827] = 20, + [4281] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(262), 1, + ACTIONS(271), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8725,13 +9260,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(165), 13, + STATE(200), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8739,56 +9273,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [3920] = 20, + [4380] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, + ACTIONS(167), 1, sym_unary_not, - ACTIONS(264), 1, + ACTIONS(273), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(14), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(183), 1, + sym_member_access_expression, + STATE(184), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, - sym__simple_name, - sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(182), 2, + sym__simple_name, + sym_generic_name, + STATE(381), 3, sym__name, sym_type_qualified_name, sym_qualified_name, - ACTIONS(73), 4, + STATE(473), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(163), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8798,13 +9336,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(166), 13, + STATE(190), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8812,56 +9349,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [4013] = 20, + [4479] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(168), 1, - sym_unary_not, - ACTIONS(266), 1, + ACTIONS(275), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(176), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(346), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8871,13 +9412,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(128), 13, + STATE(214), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8885,56 +9425,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [4106] = 20, + [4578] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(25), 1, - anon_sym_LPAREN_RPAREN, ACTIONS(27), 1, - anon_sym_LBRACK, + anon_sym_LPAREN, ACTIONS(29), 1, - anon_sym_fn, + anon_sym_LBRACK, ACTIONS(31), 1, - anon_sym_LPAREN, - ACTIONS(59), 1, - sym_unary_not, - ACTIONS(61), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, ACTIONS(69), 1, anon_sym_DQUOTE, ACTIONS(71), 1, aux_sym_number_literal_token1, - ACTIONS(268), 1, + ACTIONS(277), 1, sym_uzumaki_keyword, - STATE(93), 1, + STATE(13), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, ACTIONS(67), 2, anon_sym_true, anon_sym_false, - STATE(125), 2, + STATE(130), 2, sym__simple_name, sym_generic_name, - STATE(100), 3, + STATE(132), 2, sym__lval_expression, sym_array_index_access_expression, - sym_member_access_expression, - STATE(341), 3, + STATE(370), 3, sym__name, sym_type_qualified_name, sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(402), 4, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(23), 9, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -8944,13 +9488,12 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - STATE(130), 13, + STATE(215), 12, sym__literal, sym__expression, sym__non_lval_expression, sym_function_call_expression, sym_struct_expression, - sym_parenthesized_expression, sym_prefix_unary_expression, sym_binary_expression, sym_bool_literal, @@ -8958,74 +9501,60 @@ static const uint16_t ts_small_parse_table[] = { sym_number_literal, sym_unit_literal, sym_array_literal, - [4199] = 6, + [4677] = 23, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(274), 1, - anon_sym_elseif, - ACTIONS(276), 1, - anon_sym_else, - STATE(58), 1, - aux_sym_if_statement_repeat1, - ACTIONS(272), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(27), 1, + anon_sym_LPAREN, + ACTIONS(29), 1, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(65), 1, + sym_unary_not, + ACTIONS(69), 1, anon_sym_DQUOTE, - ACTIONS(270), 30, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(279), 1, + sym_uzumaki_keyword, + STATE(13), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(370), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4254] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(274), 1, - anon_sym_elseif, - ACTIONS(282), 1, - anon_sym_else, - STATE(59), 1, - aux_sym_if_statement_repeat1, - ACTIONS(280), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(278), 30, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9035,44 +9564,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + STATE(216), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [4776] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, + anon_sym_LPAREN, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(281), 1, + sym_uzumaki_keyword, + STATE(13), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(370), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4309] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_elseif, - STATE(59), 1, - aux_sym_if_statement_repeat1, - ACTIONS(286), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(284), 31, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9082,42 +9640,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(217), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [4875] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(283), 1, + sym_uzumaki_keyword, + STATE(13), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(370), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4362] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(291), 31, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9127,42 +9716,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(218), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [4974] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(247), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4410] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(297), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(295), 31, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9172,42 +9792,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(169), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5073] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(285), 1, + sym_uzumaki_keyword, + STATE(13), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(370), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4458] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(301), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(299), 31, + ACTIONS(25), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9217,42 +9868,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + STATE(241), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5172] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, + anon_sym_LPAREN, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(287), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4506] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(305), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(303), 31, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9262,42 +9944,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(202), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5271] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(289), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4554] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(309), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(307), 31, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9307,42 +10020,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(203), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5370] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(291), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4602] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(313), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(311), 31, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9352,42 +10096,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(204), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5469] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(293), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4650] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(317), 9, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - anon_sym_elseif, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(315), 31, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9397,254 +10172,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(205), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5568] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_else, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(295), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [4698] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(319), 1, - anon_sym_forall, - ACTIONS(321), 1, - anon_sym_assume, - ACTIONS(323), 1, - anon_sym_exists, - ACTIONS(325), 1, - anon_sym_unique, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(337), 1, - sym_and_operator, - ACTIONS(339), 1, - sym_or_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(345), 1, - sym_bit_or_operator, - ACTIONS(347), 1, - sym_bit_xor_operator, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(359), 1, - anon_sym_LBRACE, - STATE(9), 1, - sym__lcb_symbol, - STATE(46), 1, - sym_sub_operator, - STATE(380), 1, - sym__forall_keyword, - STATE(381), 1, - sym__assume_keyword, - STATE(382), 1, - sym__exists_keyword, - STATE(383), 1, - sym__unique_keyword, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - STATE(57), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [4799] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(63), 1, - anon_sym_LBRACE, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(337), 1, - sym_and_operator, - ACTIONS(339), 1, - sym_or_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(345), 1, - sym_bit_or_operator, - ACTIONS(347), 1, - sym_bit_xor_operator, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(361), 1, - anon_sym_forall, - ACTIONS(363), 1, - anon_sym_assume, - ACTIONS(365), 1, - anon_sym_exists, - ACTIONS(367), 1, - anon_sym_unique, - STATE(7), 1, - sym__lcb_symbol, - STATE(46), 1, - sym_sub_operator, - STATE(360), 1, - sym__forall_keyword, - STATE(361), 1, - sym__assume_keyword, - STATE(362), 1, - sym__exists_keyword, - STATE(363), 1, - sym__unique_keyword, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - STATE(74), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [4900] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(319), 1, - anon_sym_forall, - ACTIONS(321), 1, - anon_sym_assume, - ACTIONS(323), 1, - anon_sym_exists, - ACTIONS(325), 1, - anon_sym_unique, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(337), 1, - sym_and_operator, - ACTIONS(339), 1, - sym_or_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(345), 1, - sym_bit_or_operator, - ACTIONS(347), 1, - sym_bit_xor_operator, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(359), 1, - anon_sym_LBRACE, - STATE(9), 1, - sym__lcb_symbol, - STATE(46), 1, - sym_sub_operator, - STATE(380), 1, - sym__forall_keyword, - STATE(381), 1, - sym__assume_keyword, - STATE(382), 1, - sym__exists_keyword, - STATE(383), 1, - sym__unique_keyword, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - STATE(66), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [5001] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(371), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(369), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9654,40 +10248,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(206), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5667] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(297), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5047] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(375), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(373), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9697,40 +10324,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(207), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5766] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(299), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5093] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(379), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(377), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9740,40 +10400,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + STATE(208), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5865] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, + anon_sym_LPAREN, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(301), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5139] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(383), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(381), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9783,40 +10476,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(209), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [5964] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(303), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5185] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(387), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(385), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9826,40 +10552,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(210), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [6063] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(305), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5231] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(313), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(311), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9869,40 +10628,73 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, + STATE(211), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [6162] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(199), 1, + sym_unary_not, + ACTIONS(307), 1, + sym_uzumaki_keyword, + STATE(12), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(186), 1, + sym_member_access_expression, + STATE(188), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(392), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(439), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5277] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(391), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(389), 30, + ACTIONS(193), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9912,40 +10704,101 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + STATE(212), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [6261] = 23, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(27), 1, + anon_sym_LPAREN, + ACTIONS(29), 1, + anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(65), 1, + sym_unary_not, + ACTIONS(69), 1, + anon_sym_DQUOTE, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + ACTIONS(309), 1, + sym_uzumaki_keyword, + STATE(13), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(158), 1, + sym_parenthesized_expression, + STATE(185), 1, + sym_member_access_expression, + STATE(193), 1, + sym_type_member_access_expression, + ACTIONS(67), 2, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, + STATE(130), 2, + sym__simple_name, + sym_generic_name, + STATE(132), 2, + sym__lval_expression, + sym_array_index_access_expression, + STATE(370), 3, + sym__name, + sym_type_qualified_name, + sym_qualified_name, + STATE(446), 3, + sym_type_fn, + sym__identifier_like_embedded_type, + sym__bracketed_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5323] = 3, + ACTIONS(25), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + STATE(220), 12, + sym__literal, + sym__expression, + sym__non_lval_expression, + sym_function_call_expression, + sym_struct_expression, + sym_prefix_unary_expression, + sym_binary_expression, + sym_bool_literal, + sym_string_literal, + sym_number_literal, + sym_unit_literal, + sym_array_literal, + [6360] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(395), 8, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(393), 30, + ACTIONS(311), 22, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9956,39 +10809,48 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + anon_sym_COLON_COLON2, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5369] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(297), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(313), 23, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(295), 30, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [6416] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(311), 21, sym_type_i8, sym_type_i16, sym_type_i32, @@ -9999,39 +10861,66 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5415] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(305), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(313), 23, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON2, + anon_sym_SQUOTE, + [6471] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(313), 18, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(303), 30, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + ACTIONS(311), 24, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10042,39 +10931,45 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, + anon_sym_COLON_COLON2, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5461] = 3, + [6524] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(399), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(313), 18, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, + anon_sym_DOT, anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DQUOTE, - ACTIONS(397), 30, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON2, + ACTIONS(311), 23, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10085,39 +10980,39 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, - anon_sym_assert, - anon_sym_break, - anon_sym_let, - anon_sym_type, - anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5507] = 3, + [6576] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(293), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(319), 1, + anon_sym_else, + STATE(80), 1, + aux_sym_if_statement_repeat1, + ACTIONS(317), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(291), 30, + aux_sym_number_literal_token1, + ACTIONS(315), 28, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10128,39 +11023,44 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5553] = 3, + [6630] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(403), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(326), 1, + anon_sym_else, + STATE(80), 1, + aux_sym_if_statement_repeat1, + ACTIONS(324), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(401), 30, + aux_sym_number_literal_token1, + ACTIONS(322), 28, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10171,39 +11071,44 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5599] = 3, + [6684] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(407), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(332), 1, + anon_sym_else, + STATE(81), 1, + aux_sym_if_statement_repeat1, + ACTIONS(330), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(405), 30, + aux_sym_number_literal_token1, + ACTIONS(328), 28, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10214,39 +11119,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5645] = 3, + [6738] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(411), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(336), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(409), 30, + aux_sym_number_literal_token1, + ACTIONS(334), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10257,39 +11163,41 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5691] = 3, + [6787] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(415), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(340), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(413), 30, + aux_sym_number_literal_token1, + ACTIONS(338), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10300,39 +11208,96 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5737] = 3, + [6836] = 14, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(309), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(183), 1, + anon_sym_COLON, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(179), 7, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SQUOTE, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [6905] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(346), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(307), 30, + aux_sym_number_literal_token1, + ACTIONS(344), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10343,39 +11308,41 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5783] = 3, + [6954] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(419), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(350), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(417), 30, + aux_sym_number_literal_token1, + ACTIONS(348), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10386,39 +11353,41 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5829] = 3, + [7003] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(423), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(354), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(421), 30, + aux_sym_number_literal_token1, + ACTIONS(352), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10429,39 +11398,41 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5875] = 3, + [7052] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(427), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(358), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(425), 30, + aux_sym_number_literal_token1, + ACTIONS(356), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10472,39 +11443,41 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5921] = 3, + [7101] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(301), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(362), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(299), 30, + aux_sym_number_literal_token1, + ACTIONS(360), 29, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10515,39 +11488,41 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_else, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [5967] = 3, + [7150] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(431), 8, - anon_sym_LPAREN_RPAREN, + ACTIONS(366), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, anon_sym_DQUOTE, - ACTIONS(429), 30, + aux_sym_number_literal_token1, + ACTIONS(364), 28, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10558,70 +11533,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u64, sym_type_bool, anon_sym_fn, - anon_sym_LPAREN, anon_sym_assert, anon_sym_break, anon_sym_let, anon_sym_type, anon_sym_const, - anon_sym_if, - anon_sym_loop, - anon_sym_return, - anon_sym_forall, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, anon_sym_true, anon_sym_false, - aux_sym_number_literal_token1, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [6013] = 15, + [7198] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(370), 9, + anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - ACTIONS(441), 1, - anon_sym_RPAREN, - ACTIONS(443), 1, - anon_sym_self, - ACTIONS(445), 1, - anon_sym__, - ACTIONS(447), 1, - sym_mut_keyword, - STATE(210), 1, - sym__reserved_identifier, - STATE(225), 1, - sym__rrb_symbol, - STATE(271), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(322), 8, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - sym_argument_declaration, - sym_self_reference, - sym_ignore_argument, - ACTIONS(433), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(368), 28, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10631,170 +11576,85 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [6081] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(455), 1, - anon_sym_LT, - ACTIONS(458), 1, - sym_expand_operator, - STATE(95), 1, - sym_type_argument_list, - ACTIONS(453), 6, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_GT, - sym_assign_operator, - anon_sym_COLON, - ACTIONS(451), 26, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6130] = 5, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7246] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(455), 1, - anon_sym_LT, - STATE(95), 1, - sym_type_argument_list, - ACTIONS(453), 6, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_GT, - sym_assign_operator, - anon_sym_COLON, - ACTIONS(451), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, + ACTIONS(374), 9, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6177] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(463), 7, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - anon_sym_COLON, - ACTIONS(461), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(372), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6219] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - ACTIONS(443), 1, - anon_sym_self, - ACTIONS(445), 1, - anon_sym__, - ACTIONS(447), 1, - sym_mut_keyword, - STATE(210), 1, - sym__reserved_identifier, - STATE(271), 1, - sym_identifier, - ACTIONS(449), 4, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(422), 8, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - sym_argument_declaration, - sym_self_reference, - sym_ignore_argument, - ACTIONS(465), 9, + [7294] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(378), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(376), 28, sym_type_i8, sym_type_i16, sym_type_i32, @@ -10804,1597 +11664,2471 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [6281] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(469), 7, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - anon_sym_COLON, - ACTIONS(467), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6323] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7342] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(473), 7, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - anon_sym_COLON, - ACTIONS(471), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, + ACTIONS(382), 9, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(380), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6365] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7390] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(477), 7, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - anon_sym_COLON, - ACTIONS(475), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, + ACTIONS(386), 9, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(384), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6407] = 6, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7438] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(479), 1, - anon_sym_LBRACK, - ACTIONS(483), 1, + ACTIONS(390), 9, anon_sym_LPAREN, - STATE(439), 1, - sym_type_argument_list, - ACTIONS(485), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(481), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(388), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6454] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7486] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(489), 6, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - ACTIONS(487), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, + ACTIONS(394), 9, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6495] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(493), 6, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - ACTIONS(491), 27, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(392), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6536] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7534] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(497), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(495), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(398), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6574] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(501), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(499), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(396), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6612] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7582] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(505), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(503), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(402), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6650] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(509), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(507), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(400), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6688] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7630] = 15, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(513), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(511), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(404), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(179), 2, + anon_sym_DOT, + anon_sym_LBRACE, + ACTIONS(183), 4, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6726] = 3, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [7700] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(517), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(515), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(346), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6764] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(521), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(519), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(344), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6802] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7748] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(525), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(523), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(350), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6840] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(529), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(527), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6878] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(533), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(531), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(348), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6916] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7796] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(537), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(535), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(354), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [6954] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(541), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(539), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(352), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [6992] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7844] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(545), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(543), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(358), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [7030] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(549), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(547), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(356), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [7068] = 6, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7892] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(554), 1, - anon_sym_LBRACE, - ACTIONS(556), 1, - anon_sym_COLON, - ACTIONS(551), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(493), 6, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - ACTIONS(491), 20, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, + ACTIONS(362), 9, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_RBRACE, - [7112] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(560), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(558), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [7150] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(564), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(562), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(360), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [7188] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7940] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(568), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(566), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(408), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [7226] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(572), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(570), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(406), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [7264] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [7988] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(576), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(574), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(412), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [7302] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(582), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(580), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(578), 23, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(410), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [7342] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8036] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(587), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(585), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(336), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(334), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [7380] = 6, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8084] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(596), 1, - anon_sym_LBRACE, - ACTIONS(598), 1, - anon_sym_COLON, - ACTIONS(593), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(591), 6, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - sym_assign_operator, - ACTIONS(589), 20, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_RBRACK, + ACTIONS(416), 9, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + anon_sym_LBRACK, + anon_sym_LBRACE, anon_sym_RBRACE, - [7424] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(602), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(600), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(414), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [7462] = 3, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8132] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(606), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(604), 25, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(420), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, - [7500] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 4, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(608), 12, - anon_sym_forall, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(418), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - [7554] = 6, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8180] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, - anon_sym_LT, - anon_sym_GT, - ACTIONS(608), 18, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + ACTIONS(424), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LBRACE, anon_sym_RBRACE, - [7596] = 18, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(422), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8228] = 15, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(183), 1, + anon_sym_COLON, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(426), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + ACTIONS(179), 5, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_EQ, + anon_sym_SQUOTE, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [8298] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(430), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(428), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8346] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(434), 9, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH, + sym_uzumaki_keyword, + sym_unary_not, + anon_sym_DQUOTE, + aux_sym_number_literal_token1, + ACTIONS(432), 28, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + anon_sym_fn, + anon_sym_assert, + anon_sym_break, + anon_sym_let, + anon_sym_type, + anon_sym_const, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_if, + anon_sym_loop, + anon_sym_return, + anon_sym_true, + anon_sym_false, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [8394] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(179), 2, + anon_sym_DOT, + anon_sym_LBRACE, + ACTIONS(183), 4, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [8461] = 15, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(438), 1, + anon_sym_fn, + ACTIONS(440), 1, + anon_sym_RPAREN2, + ACTIONS(442), 1, + anon_sym_self, + ACTIONS(444), 1, + anon_sym__, + ACTIONS(446), 1, + sym_mut_keyword, + STATE(77), 1, + sym__reserved_identifier, + STATE(123), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(373), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + ACTIONS(436), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + STATE(371), 9, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym_argument_declaration, + sym_self_reference, + sym_ignore_argument, + sym__bracketed_generic_name, + [8530] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(452), 1, + anon_sym_COMMA, + STATE(118), 1, + aux_sym_type_argument_list_repeat1, + ACTIONS(450), 7, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(448), 27, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [8581] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(459), 1, + anon_sym_COMMA, + STATE(118), 1, + aux_sym_type_argument_list_repeat1, + ACTIONS(457), 7, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(455), 26, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [8631] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(463), 7, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(461), 28, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [8677] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(459), 1, + anon_sym_COMMA, + STATE(119), 1, + aux_sym_type_argument_list_repeat1, + ACTIONS(467), 7, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(465), 26, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [8727] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(471), 7, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(469), 28, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [8773] = 15, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(473), 1, + anon_sym_COLON, + ACTIONS(475), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(179), 3, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_RPAREN2, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(480), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(171), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [8841] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(438), 1, + anon_sym_fn, + ACTIONS(442), 1, + anon_sym_self, + ACTIONS(444), 1, + anon_sym__, + ACTIONS(446), 1, + sym_mut_keyword, + STATE(77), 1, + sym__reserved_identifier, + STATE(123), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(373), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + ACTIONS(477), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + STATE(412), 9, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym_argument_declaration, + sym_self_reference, + sym_ignore_argument, + sym__bracketed_generic_name, + [8907] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(475), 1, + anon_sym_COLON_COLON2, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(179), 3, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_RPAREN2, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(480), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(171), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [8972] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(185), 1, + anon_sym_COLON_COLON2, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(179), 2, + anon_sym_DOT, + anon_sym_COLON_COLON, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9036] = 13, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(179), 3, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_RPAREN2, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(480), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(171), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9098] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(481), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(479), 26, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [9141] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(485), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(483), 25, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [9183] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(491), 1, + anon_sym_COLON, + ACTIONS(489), 3, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + ACTIONS(493), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(487), 20, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [9228] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(497), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(495), 25, + anon_sym_LPAREN, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [9269] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(499), 1, + anon_sym_LPAREN, + ACTIONS(501), 1, + anon_sym_LBRACK, + ACTIONS(505), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(503), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [9314] = 7, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(507), 1, + anon_sym_DOT, + ACTIONS(512), 1, + anon_sym_COLON, + ACTIONS(510), 2, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + ACTIONS(481), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(479), 20, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [9361] = 12, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(120), 1, + sym_type_argument_list, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(462), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(189), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9418] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(255), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(514), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9472] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(469), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(516), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9526] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(460), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(518), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9580] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(438), 1, + anon_sym_fn, + STATE(77), 1, + sym__reserved_identifier, + STATE(125), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(373), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(255), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(514), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9634] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(396), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(520), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9688] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(522), 1, + anon_sym_fn, + STATE(79), 1, + sym__reserved_identifier, + STATE(101), 1, + sym_identifier, + ACTIONS(524), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(335), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(255), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(514), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9742] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(405), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(526), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9796] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(422), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(528), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9850] = 21, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(530), 1, + anon_sym_LBRACE, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(534), 1, + anon_sym_AMP_AMP, + ACTIONS(536), 1, + anon_sym_PIPE_PIPE, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(540), 1, + anon_sym_PIPE, + ACTIONS(542), 1, + anon_sym_CARET, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(558), 1, + anon_sym_assume, + ACTIONS(560), 1, + anon_sym_forall, + ACTIONS(562), 1, + anon_sym_exists, + ACTIONS(564), 1, + anon_sym_unique, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(552), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 7, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - anon_sym_RBRACE, - [7662] = 19, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + STATE(82), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [9924] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 6, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_or_operator, - anon_sym_RBRACE, - [7730] = 11, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(438), 1, + anon_sym_fn, + STATE(77), 1, + sym__reserved_identifier, + STATE(125), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(373), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(409), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(566), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [9978] = 21, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(33), 1, + anon_sym_LBRACE, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(534), 1, + anon_sym_AMP_AMP, + ACTIONS(536), 1, + anon_sym_PIPE_PIPE, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(540), 1, + anon_sym_PIPE, + ACTIONS(542), 1, + anon_sym_CARET, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(568), 1, + anon_sym_assume, + ACTIONS(570), 1, + anon_sym_forall, + ACTIONS(572), 1, + anon_sym_exists, + ACTIONS(574), 1, + anon_sym_unique, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 4, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(552), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 14, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_RBRACE, - [7782] = 16, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + STATE(110), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [10052] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(349), 1, + STATE(118), 1, + aux_sym_type_argument_list_repeat1, + ACTIONS(457), 6, + anon_sym_COLON, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(610), 2, - sym_bit_and_operator, - sym_bit_or_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 8, - anon_sym_SEMI, + ACTIONS(455), 22, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, + anon_sym_RPAREN2, + anon_sym_LBRACE, anon_sym_RBRACE, - [7844] = 18, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(610), 1, - sym_bit_or_operator, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 7, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - anon_sym_RBRACE, - [7910] = 17, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [10094] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(610), 1, - sym_bit_or_operator, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 8, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - anon_sym_RBRACE, - [7974] = 12, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(522), 1, + anon_sym_fn, + STATE(79), 1, + sym__reserved_identifier, + STATE(101), 1, + sym_identifier, + ACTIONS(524), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(335), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(268), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(576), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [10148] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 4, - sym_bit_and_operator, - sym_bit_or_operator, + STATE(146), 1, + aux_sym_type_argument_list_repeat1, + ACTIONS(467), 6, + anon_sym_COLON, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 12, - anon_sym_SEMI, + ACTIONS(465), 22, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + anon_sym_RPAREN2, + anon_sym_LBRACE, anon_sym_RBRACE, - [8028] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, - anon_sym_LT, - ACTIONS(351), 1, - anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(610), 2, - sym_bit_and_operator, - sym_bit_or_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 10, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_RBRACE, - [8088] = 10, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [10190] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(636), 1, + ACTIONS(181), 1, anon_sym_fn, - STATE(210), 1, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, sym__reserved_identifier, - STATE(307), 1, + STATE(113), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(385), 5, + STATE(362), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(393), 5, + STATE(470), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(634), 9, + sym__bracketed_generic_name, + ACTIONS(578), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12404,37 +14138,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8138] = 10, + [10244] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(181), 1, anon_sym_fn, - STATE(210), 1, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(113), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(362), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(443), 5, + STATE(476), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(638), 9, + sym__bracketed_generic_name, + ACTIONS(580), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12444,37 +14181,93 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8188] = 10, + [10298] = 21, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(530), 1, + anon_sym_LBRACE, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(534), 1, + anon_sym_AMP_AMP, + ACTIONS(536), 1, + anon_sym_PIPE_PIPE, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(540), 1, + anon_sym_PIPE, + ACTIONS(542), 1, + anon_sym_CARET, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(558), 1, + anon_sym_assume, + ACTIONS(560), 1, + anon_sym_forall, + ACTIONS(562), 1, + anon_sym_exists, + ACTIONS(564), 1, + anon_sym_unique, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(552), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + STATE(84), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [10372] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(191), 1, anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(438), 1, anon_sym_fn, - STATE(210), 1, + STATE(77), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(125), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(373), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(444), 5, + STATE(410), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(640), 9, + sym__bracketed_generic_name, + ACTIONS(582), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12484,37 +14277,83 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8238] = 10, + [10426] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(31), 1, anon_sym_fn, - STATE(210), 1, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(76), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(126), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(234), 5, + STATE(425), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + STATE(255), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - STATE(237), 5, + sym__bracketed_generic_name, + ACTIONS(514), 9, + sym_type_i8, + sym_type_i16, + sym_type_i32, + sym_type_i64, + sym_type_u8, + sym_type_u16, + sym_type_u32, + sym_type_u64, + sym_type_bool, + [10480] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(181), 1, + anon_sym_fn, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + STATE(362), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - ACTIONS(642), 9, + STATE(455), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(584), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12524,37 +14363,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8288] = 10, + [10534] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(191), 1, anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(522), 1, anon_sym_fn, - STATE(210), 1, + STATE(79), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(101), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(524), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(335), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(437), 5, + STATE(271), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(644), 9, + sym__bracketed_generic_name, + ACTIONS(586), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12564,37 +14406,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8338] = 10, + [10588] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(191), 1, anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(522), 1, anon_sym_fn, - STATE(210), 1, + STATE(79), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(101), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(524), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(335), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(399), 5, + STATE(270), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(646), 9, + sym__bracketed_generic_name, + ACTIONS(588), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12604,37 +14449,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8388] = 10, + [10642] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(181), 1, anon_sym_fn, - STATE(210), 1, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(113), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(362), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(394), 5, + STATE(481), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(648), 9, + sym__bracketed_generic_name, + ACTIONS(590), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12644,91 +14492,113 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8438] = 24, + [10696] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(499), 1, + anon_sym_LPAREN, + ACTIONS(594), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(592), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [10738] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(598), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(650), 1, + ACTIONS(596), 24, + anon_sym_LPAREN, + anon_sym_SEMI, + anon_sym_RBRACK, anon_sym_COMMA, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(654), 1, + anon_sym_RPAREN2, + anon_sym_LBRACE, anon_sym_RBRACE, - STATE(16), 1, - sym_sub_operator, - STATE(109), 1, - sym__rcb_symbol, - STATE(239), 1, - sym__comma_symbol, - STATE(327), 1, - aux_sym_struct_expression_repeat1, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [8516] = 10, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [10778] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(29), 1, - anon_sym_fn, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(191), 1, anon_sym_LBRACK, - STATE(210), 1, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(438), 1, + anon_sym_fn, + STATE(77), 1, sym__reserved_identifier, - STATE(282), 1, + STATE(125), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(234), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(237), 5, + STATE(373), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - ACTIONS(642), 9, + STATE(417), 6, + sym__type, + sym__embedded_type, + sym_type_unit, + sym_type_array, + sym_type_fn, + sym__bracketed_generic_name, + ACTIONS(600), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12738,37 +14608,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8566] = 10, + [10832] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(191), 1, anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(342), 1, + anon_sym_LPAREN, + ACTIONS(522), 1, anon_sym_fn, - STATE(210), 1, + STATE(79), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(101), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(524), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(335), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(357), 5, + STATE(273), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(656), 9, + sym__bracketed_generic_name, + ACTIONS(602), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12778,37 +14651,40 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8616] = 10, + [10886] = 11, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, + ACTIONS(181), 1, anon_sym_fn, - STATE(210), 1, + ACTIONS(191), 1, + anon_sym_LBRACK, + ACTIONS(342), 1, + anon_sym_LPAREN, + STATE(77), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(113), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(237), 5, + STATE(362), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - STATE(371), 5, + STATE(467), 6, sym__type, sym__embedded_type, sym_type_unit, sym_type_array, sym_type_fn, - ACTIONS(658), 9, + sym__bracketed_generic_name, + ACTIONS(604), 9, sym_type_i8, sym_type_i16, sym_type_i32, @@ -12818,2316 +14694,2521 @@ static const uint16_t ts_small_parse_table[] = { sym_type_u32, sym_type_u64, sym_type_bool, - [8666] = 6, + [10940] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(608), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(606), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [10979] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(612), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(610), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11018] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(616), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(614), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11057] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(620), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(618), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11096] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(624), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(622), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11135] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(628), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(626), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11174] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(632), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(630), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11213] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(636), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(634), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11252] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(640), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(638), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11291] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(644), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(642), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11330] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(648), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(646), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11369] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(652), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(650), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11408] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(656), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(654), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11447] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(660), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11486] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(664), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(662), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11525] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(668), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(666), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11564] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(672), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(670), 23, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11603] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(662), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(676), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(660), 18, + ACTIONS(674), 23, anon_sym_SEMI, anon_sym_RBRACK, anon_sym_COMMA, - anon_sym_RPAREN, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + anon_sym_RPAREN2, + anon_sym_LBRACE, anon_sym_RBRACE, - [8708] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(427), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(664), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [8758] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(431), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(666), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [8808] = 10, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11642] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(510), 1, + anon_sym_COLON_COLON, + ACTIONS(507), 2, + anon_sym_DOT, + anon_sym_LBRACE, + ACTIONS(481), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(479), 19, + anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(424), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(668), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [8858] = 10, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11684] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(678), 1, + anon_sym_LBRACE, + ACTIONS(489), 2, + anon_sym_DOT, + anon_sym_COLON_COLON, + ACTIONS(493), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(487), 19, + anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(213), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(670), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [8908] = 10, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11726] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(681), 1, + anon_sym_DOT, + ACTIONS(493), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(487), 20, + anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(220), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(672), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [8958] = 10, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11765] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(420), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(674), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [9008] = 9, + ACTIONS(499), 1, + anon_sym_LPAREN, + ACTIONS(683), 1, + anon_sym_COLON_COLON, + ACTIONS(594), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(592), 18, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [11805] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 4, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(685), 1, + anon_sym_DOT, + ACTIONS(493), 6, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 16, + ACTIONS(487), 18, + anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_SEMI, anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - sym_add_operator, + anon_sym_RPAREN2, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [11843] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(687), 1, + anon_sym_DOT, + ACTIONS(493), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(487), 19, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, anon_sym_RBRACE, - [9056] = 7, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [11881] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(689), 1, + anon_sym_RPAREN2, + ACTIONS(183), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(179), 18, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [11918] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(616), 1, - sym_pow_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(499), 1, + anon_sym_LPAREN, + ACTIONS(692), 1, + anon_sym_COLON_COLON, + ACTIONS(594), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 17, - anon_sym_SEMI, + ACTIONS(592), 17, anon_sym_RBRACK, anon_sym_COMMA, - anon_sym_RPAREN, - sym_add_operator, - anon_sym_DASH, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + anon_sym_RPAREN2, anon_sym_RBRACE, - [9100] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - STATE(46), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 4, - sym_bit_and_operator, - sym_bit_or_operator, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [11957] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(696), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 16, - anon_sym_forall, + ACTIONS(694), 17, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, + [11993] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - [9148] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(333), 1, - sym_pow_operator, - STATE(46), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(552), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 17, - anon_sym_forall, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(696), 2, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(694), 10, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, + [12041] = 13, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(696), 1, + anon_sym_PIPE, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, + ACTIONS(552), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 8, anon_sym_LBRACE, - [9192] = 6, - ACTIONS(3), 1, - sym_comment, - STATE(46), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [12093] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(540), 1, + anon_sym_PIPE, + ACTIONS(542), 1, + anon_sym_CARET, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(552), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 18, - anon_sym_forall, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 7, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - [9234] = 18, + [12147] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, + ACTIONS(499), 1, + anon_sym_LPAREN, + ACTIONS(698), 1, + anon_sym_COLON_COLON, + ACTIONS(594), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(592), 16, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(345), 1, - sym_bit_or_operator, - ACTIONS(347), 1, - sym_bit_xor_operator, - ACTIONS(349), 1, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [12185] = 15, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(534), 1, + anon_sym_AMP_AMP, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(540), 1, + anon_sym_PIPE, + ACTIONS(542), 1, + anon_sym_CARET, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(552), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 7, - anon_sym_forall, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 6, + anon_sym_LBRACE, + anon_sym_PIPE_PIPE, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - anon_sym_LBRACE, - [9300] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, + [12241] = 12, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(337), 1, - sym_and_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(345), 1, - sym_bit_or_operator, - ACTIONS(347), 1, - sym_bit_xor_operator, - ACTIONS(349), 1, + ACTIONS(552), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 6, - anon_sym_forall, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(696), 2, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(694), 8, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_or_operator, - anon_sym_LBRACE, - [9368] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, + [12291] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(538), 1, + anon_sym_AMP, + ACTIONS(542), 1, + anon_sym_CARET, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(696), 1, + anon_sym_PIPE, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - STATE(46), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(610), 4, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(552), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(608), 14, - anon_sym_forall, + ACTIONS(554), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(556), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 7, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - [9420] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, + [12345] = 8, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(349), 1, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(610), 2, - sym_bit_and_operator, - sym_bit_or_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 8, - anon_sym_forall, + ACTIONS(694), 14, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - anon_sym_LBRACE, - [9482] = 18, - ACTIONS(3), 1, - sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(347), 1, - sym_bit_xor_operator, - ACTIONS(349), 1, + [12387] = 7, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(610), 1, - sym_bit_or_operator, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 7, - anon_sym_forall, + ACTIONS(694), 16, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - anon_sym_LBRACE, - [9548] = 17, + [12427] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(343), 1, - sym_bit_and_operator, - ACTIONS(349), 1, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(696), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(610), 1, - sym_bit_or_operator, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(355), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 8, - anon_sym_forall, + ACTIONS(694), 17, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - anon_sym_LBRACE, - [9612] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - STATE(417), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - ACTIONS(676), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [9662] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(327), 1, - sym_add_operator, - ACTIONS(329), 1, + [12463] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(532), 1, + anon_sym_STAR_STAR, + ACTIONS(548), 1, + anon_sym_STAR, + ACTIONS(550), 1, + anon_sym_PERCENT, + ACTIONS(544), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(546), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(331), 1, - sym_mul_operator, - ACTIONS(333), 1, - sym_pow_operator, - ACTIONS(335), 1, - sym_mod_operator, - ACTIONS(349), 1, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - STATE(46), 1, - sym_sub_operator, - ACTIONS(341), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(353), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(610), 2, - sym_bit_and_operator, - sym_bit_or_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(608), 10, - anon_sym_forall, + ACTIONS(694), 12, + anon_sym_LBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_and_operator, - sym_or_operator, - sym_bit_xor_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - [9722] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(636), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(307), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(234), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(385), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(642), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [9772] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(214), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(678), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [9822] = 10, + [12507] = 7, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, + ACTIONS(499), 1, + anon_sym_LPAREN, + ACTIONS(501), 1, anon_sym_LBRACK, - ACTIONS(636), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(307), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(337), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(385), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(680), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [9872] = 10, + ACTIONS(700), 1, + anon_sym_EQ, + ACTIONS(505), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_LT, + anon_sym_GT, + ACTIONS(503), 14, + anon_sym_SEMI, + anon_sym_STAR_STAR, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [12546] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(439), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(215), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(237), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(682), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [9922] = 6, - ACTIONS(3), 1, - sym_comment, - STATE(46), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - STATE(55), 2, - sym_less_operator, - sym_greater_operator, - ACTIONS(662), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(696), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(660), 18, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, + ACTIONS(694), 16, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - anon_sym_LBRACE, - [9964] = 10, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [12581] = 14, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_LPAREN_RPAREN, - ACTIONS(437), 1, - anon_sym_LBRACK, - ACTIONS(636), 1, - anon_sym_fn, - STATE(210), 1, - sym__reserved_identifier, - STATE(307), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(350), 5, - sym__type, - sym__embedded_type, - sym_type_unit, - sym_type_array, - sym_type_fn, - STATE(385), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - ACTIONS(684), 9, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - [10014] = 4, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 6, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + [12634] = 15, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(551), 3, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - ACTIONS(493), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(718), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(491), 19, - anon_sym_LBRACK, - anon_sym_LPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 5, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_PIPE_PIPE, + [12689] = 12, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(696), 2, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - [10051] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(593), 3, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - ACTIONS(591), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(718), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(589), 19, - anon_sym_LBRACK, - anon_sym_LPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - [10088] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 7, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + [12738] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(696), 1, + anon_sym_PIPE, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(686), 1, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 6, + anon_sym_RBRACK, anon_sym_COMMA, - ACTIONS(688), 1, - anon_sym_RPAREN, - STATE(16), 1, - sym_sub_operator, - STATE(359), 1, - aux_sym_function_call_expression_repeat1, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10160] = 5, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + [12791] = 13, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(554), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(551), 3, - anon_sym_RBRACK, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(493), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(696), 1, + anon_sym_PIPE, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(718), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(491), 16, - anon_sym_LBRACK, - anon_sym_LPAREN, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 7, + anon_sym_RBRACK, anon_sym_COMMA, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - [10198] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + [12842] = 8, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(690), 1, + ACTIONS(694), 13, anon_sym_RBRACK, - ACTIONS(692), 1, anon_sym_COMMA, - STATE(16), 1, - sym_sub_operator, - STATE(375), 1, - aux_sym_array_literal_repeat1, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10270] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(596), 2, - anon_sym_SEMI, - anon_sym_LBRACE, - ACTIONS(593), 3, - anon_sym_RBRACK, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(591), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [12883] = 7, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, anon_sym_GT, - ACTIONS(589), 16, - anon_sym_LBRACK, - anon_sym_LPAREN, + ACTIONS(694), 15, + anon_sym_RBRACK, anon_sym_COMMA, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - [10308] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [12922] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(696), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(686), 1, + ACTIONS(694), 16, + anon_sym_RBRACK, anon_sym_COMMA, - ACTIONS(694), 1, - anon_sym_RPAREN, - STATE(16), 1, - sym_sub_operator, - STATE(356), 1, - aux_sym_function_call_expression_repeat1, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10380] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [12957] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(686), 1, + ACTIONS(694), 11, + anon_sym_RBRACK, anon_sym_COMMA, - ACTIONS(696), 1, - anon_sym_RPAREN, - STATE(16), 1, - sym_sub_operator, - STATE(358), 1, - aux_sym_function_call_expression_repeat1, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10452] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [13000] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(696), 2, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(686), 1, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(694), 9, + anon_sym_RBRACK, anon_sym_COMMA, - ACTIONS(698), 1, - anon_sym_RPAREN, - STATE(16), 1, - sym_sub_operator, - STATE(365), 1, - aux_sym_function_call_expression_repeat1, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10524] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RPAREN2, + anon_sym_RBRACE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [13047] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(700), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10591] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, - anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(694), 10, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [13089] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(696), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(702), 1, + ACTIONS(694), 15, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(255), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10660] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [13123] = 14, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(742), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(704), 1, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 5, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(88), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10729] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + [13175] = 15, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(742), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(706), 1, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 4, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(72), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10798] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_PIPE_PIPE, + [13229] = 12, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(696), 2, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(742), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(708), 2, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 6, + anon_sym_SEMI, anon_sym_RBRACK, - anon_sym_COMMA, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10865] = 21, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + [13277] = 14, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(696), 1, + anon_sym_PIPE, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(742), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(710), 1, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 5, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(71), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [10934] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + [13329] = 13, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(696), 1, + anon_sym_PIPE, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(742), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(712), 1, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(694), 6, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(73), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11003] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + [13379] = 8, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(714), 1, + ACTIONS(694), 12, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(83), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11072] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(479), 1, - anon_sym_LBRACK, - ACTIONS(483), 1, - anon_sym_LPAREN, - ACTIONS(716), 1, - sym_assign_operator, - STATE(439), 1, - sym_type_argument_list, - ACTIONS(485), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [13419] = 7, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(696), 4, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_LT, + anon_sym_GT, + ACTIONS(694), 14, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [13457] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(696), 5, + anon_sym_AMP, + anon_sym_PIPE, + anon_sym_STAR, anon_sym_LT, anon_sym_GT, - ACTIONS(481), 16, + ACTIONS(694), 15, anon_sym_SEMI, - sym_add_operator, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - [11113] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_PERCENT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + [13491] = 11, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(696), 2, + anon_sym_AMP, + anon_sym_PIPE, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(742), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(718), 1, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(694), 8, anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(87), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11182] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + anon_sym_RBRACK, + anon_sym_RPAREN2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [13537] = 18, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(750), 1, + anon_sym_COMMA, + ACTIONS(752), 1, + anon_sym_RPAREN2, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + STATE(393), 1, + aux_sym_function_call_expression_repeat1, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, ACTIONS(720), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11249] = 21, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [13597] = 18, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(756), 1, + anon_sym_COMMA, + ACTIONS(758), 1, + anon_sym_RBRACE, + STATE(380), 1, + aux_sym_struct_expression_repeat1, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(722), 1, - anon_sym_SEMI, - STATE(16), 1, - sym_sub_operator, - STATE(82), 1, - sym__terminal_symbol, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11318] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 1, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [13657] = 18, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(760), 1, + anon_sym_RBRACK, + ACTIONS(762), 1, + anon_sym_COMMA, + STATE(387), 1, + aux_sym_array_literal_repeat1, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - ACTIONS(724), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11385] = 3, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [13717] = 18, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(728), 6, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(750), 1, + anon_sym_COMMA, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(764), 1, + anon_sym_RPAREN2, + STATE(378), 1, + aux_sym_function_call_expression_repeat1, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - anon_sym_DQUOTE, - ACTIONS(726), 18, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - [11417] = 20, + ACTIONS(718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [13777] = 16, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - ACTIONS(730), 1, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(766), 2, anon_sym_RBRACK, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11483] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(734), 6, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, - anon_sym_DASH, - anon_sym_DQUOTE, - ACTIONS(732), 18, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - [11515] = 3, + anon_sym_COMMA, + [13832] = 16, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(738), 6, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - sym_uzumaki_keyword, - sym_unary_not, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - anon_sym_DQUOTE, - ACTIONS(736), 18, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - anon_sym_fn, - anon_sym_LPAREN, - anon_sym_true, - anon_sym_false, - aux_sym_number_literal_token1, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - [11547] = 19, + ACTIONS(718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(768), 2, + anon_sym_COMMA, + anon_sym_RPAREN2, + [13887] = 16, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(329), 1, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, anon_sym_DASH, - ACTIONS(349), 1, + ACTIONS(718), 2, anon_sym_LT, - ACTIONS(351), 1, anon_sym_GT, - ACTIONS(612), 1, - sym_add_operator, - ACTIONS(614), 1, - sym_mul_operator, - ACTIONS(616), 1, - sym_pow_operator, - ACTIONS(618), 1, - sym_mod_operator, - ACTIONS(622), 1, - sym_bit_and_operator, - ACTIONS(624), 1, - sym_bit_or_operator, - ACTIONS(626), 1, - sym_bit_xor_operator, - ACTIONS(632), 1, - sym_and_operator, - ACTIONS(652), 1, - sym_or_operator, - STATE(16), 1, - sym_sub_operator, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(620), 2, - sym_shift_left_operator, - sym_shift_right_operator, - ACTIONS(628), 2, - sym_less_equal_operator, - sym_greater_equal_operator, - ACTIONS(630), 2, - sym_equals_operator, - sym_not_equals_operator, - STATE(24), 2, - sym_less_operator, - sym_greater_operator, - [11610] = 5, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(770), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [13942] = 16, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(740), 1, - anon_sym_SEMI, - ACTIONS(582), 3, - anon_sym_RBRACK, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(580), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(702), 1, + anon_sym_STAR_STAR, + ACTIONS(704), 1, + anon_sym_AMP, + ACTIONS(706), 1, + anon_sym_PIPE, + ACTIONS(708), 1, + anon_sym_CARET, + ACTIONS(714), 1, + anon_sym_STAR, + ACTIONS(716), 1, + anon_sym_PERCENT, + ACTIONS(724), 1, + anon_sym_AMP_AMP, + ACTIONS(754), 1, + anon_sym_PIPE_PIPE, + ACTIONS(710), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(712), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(718), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(578), 14, + ACTIONS(720), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(722), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(772), 2, anon_sym_COMMA, - sym_add_operator, + anon_sym_RPAREN2, + [13997] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(774), 1, + anon_sym_SEMI, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - [11645] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(742), 1, - anon_sym_RPAREN, - ACTIONS(485), 5, - sym_mul_operator, - sym_bit_and_operator, - sym_bit_or_operator, + ACTIONS(742), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(481), 15, - sym_add_operator, - anon_sym_DASH, - sym_pow_operator, - sym_mod_operator, - sym_and_operator, - sym_or_operator, - sym_shift_left_operator, - sym_shift_right_operator, - sym_bit_xor_operator, - sym_less_equal_operator, - sym_greater_equal_operator, - sym_equals_operator, - sym_not_equals_operator, - sym_expand_operator, - sym_attribute_access_operator, - [11676] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, - anon_sym_fn, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14051] = 12, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, ACTIONS(9), 1, - anon_sym_type, + anon_sym_fn, ACTIONS(11), 1, - anon_sym_const, + anon_sym_type, ACTIONS(13), 1, - anon_sym_spec, + anon_sym_const, ACTIONS(15), 1, - anon_sym_enum, + anon_sym_spec, ACTIONS(17), 1, - anon_sym_struct, + anon_sym_enum, ACTIONS(19), 1, - anon_sym_external, + anon_sym_struct, ACTIONS(21), 1, + anon_sym_external, + ACTIONS(23), 1, anon_sym_use, - ACTIONS(744), 1, + ACTIONS(778), 1, ts_builtin_sym_end, - STATE(319), 1, - sym_function_keyword, - STATE(205), 10, + STATE(234), 10, sym__definition, sym_type_definition_statement, sym_constant_definition, @@ -15138,30 +17219,30 @@ static const uint16_t ts_small_parse_table[] = { sym_external_function_definition, sym_use_directive, aux_sym_source_file_repeat1, - [11722] = 12, + [14097] = 12, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(746), 1, + ACTIONS(780), 1, ts_builtin_sym_end, - ACTIONS(748), 1, + ACTIONS(782), 1, anon_sym_fn, - ACTIONS(751), 1, + ACTIONS(785), 1, anon_sym_type, - ACTIONS(754), 1, + ACTIONS(788), 1, anon_sym_const, - ACTIONS(757), 1, + ACTIONS(791), 1, anon_sym_spec, - ACTIONS(760), 1, + ACTIONS(794), 1, anon_sym_enum, - ACTIONS(763), 1, + ACTIONS(797), 1, anon_sym_struct, - ACTIONS(766), 1, + ACTIONS(800), 1, anon_sym_external, - ACTIONS(769), 1, + ACTIONS(803), 1, anon_sym_use, - STATE(319), 1, - sym_function_keyword, - STATE(205), 10, + STATE(234), 10, sym__definition, sym_type_definition_statement, sym_constant_definition, @@ -15172,186 +17253,368 @@ static const uint16_t ts_small_parse_table[] = { sym_external_function_definition, sym_use_directive, aux_sym_source_file_repeat1, - [11768] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(772), 1, - anon_sym_DASH_GT, - ACTIONS(774), 1, - anon_sym_forall, + [14143] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, ACTIONS(776), 1, - anon_sym_assume, - ACTIONS(778), 1, - anon_sym_exists, - ACTIONS(780), 1, - anon_sym_unique, - ACTIONS(782), 1, - anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(172), 1, - sym_rightarrow_operator, - STATE(376), 1, - sym__forall_keyword, - STATE(377), 1, - sym__assume_keyword, - STATE(378), 1, - sym__exists_keyword, - STATE(379), 1, - sym__unique_keyword, - STATE(288), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [11816] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(772), 1, - anon_sym_DASH_GT, - ACTIONS(784), 1, - anon_sym_forall, - ACTIONS(786), 1, - anon_sym_assume, - ACTIONS(788), 1, - anon_sym_exists, - ACTIONS(790), 1, - anon_sym_unique, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(154), 1, - sym_rightarrow_operator, - STATE(369), 1, - sym__forall_keyword, - STATE(370), 1, - sym__assume_keyword, - STATE(372), 1, - sym__exists_keyword, - STATE(373), 1, - sym__unique_keyword, - STATE(248), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [11864] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(772), 1, - anon_sym_DASH_GT, - ACTIONS(784), 1, - anon_sym_forall, - ACTIONS(786), 1, - anon_sym_assume, - ACTIONS(788), 1, - anon_sym_exists, - ACTIONS(790), 1, - anon_sym_unique, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(153), 1, - sym_rightarrow_operator, - STATE(369), 1, - sym__forall_keyword, - STATE(370), 1, - sym__assume_keyword, - STATE(372), 1, - sym__exists_keyword, - STATE(373), 1, - sym__unique_keyword, - STATE(244), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [11912] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(772), 1, - anon_sym_DASH_GT, - ACTIONS(774), 1, - anon_sym_forall, + anon_sym_PIPE_PIPE, + ACTIONS(806), 1, + anon_sym_SEMI, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14197] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, ACTIONS(776), 1, - anon_sym_assume, - ACTIONS(778), 1, - anon_sym_exists, - ACTIONS(780), 1, - anon_sym_unique, - ACTIONS(782), 1, - anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(170), 1, - sym_rightarrow_operator, - STATE(376), 1, - sym__forall_keyword, - STATE(377), 1, - sym__assume_keyword, - STATE(378), 1, - sym__exists_keyword, - STATE(379), 1, - sym__unique_keyword, - STATE(285), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [11960] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(473), 1, - anon_sym_COLON, - ACTIONS(471), 16, + anon_sym_PIPE_PIPE, + ACTIONS(808), 1, + anon_sym_RBRACK, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14251] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(810), 1, + anon_sym_SEMI, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14305] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(812), 1, + anon_sym_SEMI, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14359] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(814), 1, + anon_sym_RPAREN2, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14413] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(816), 1, + anon_sym_SEMI, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14467] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(818), 1, + anon_sym_SEMI, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14521] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(820), 1, + anon_sym_SEMI, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14575] = 16, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(726), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_STAR, + ACTIONS(734), 1, + anon_sym_PERCENT, + ACTIONS(736), 1, + anon_sym_AMP, + ACTIONS(738), 1, + anon_sym_PIPE, + ACTIONS(740), 1, + anon_sym_CARET, + ACTIONS(748), 1, + anon_sym_AMP_AMP, + ACTIONS(776), 1, + anon_sym_PIPE_PIPE, + ACTIONS(822), 1, anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, + ACTIONS(728), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(730), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(742), 2, anon_sym_LT, anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - anon_sym_RBRACE, - [11985] = 11, + ACTIONS(744), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(746), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [14629] = 10, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(7), 1, - anon_sym_fn, ACTIONS(9), 1, - anon_sym_type, + anon_sym_fn, ACTIONS(11), 1, + anon_sym_type, + ACTIONS(13), 1, anon_sym_const, - ACTIONS(15), 1, - anon_sym_enum, ACTIONS(17), 1, - anon_sym_struct, + anon_sym_enum, ACTIONS(19), 1, + anon_sym_struct, + ACTIONS(21), 1, anon_sym_external, - ACTIONS(794), 1, + ACTIONS(824), 1, anon_sym_RBRACE, - STATE(260), 1, - sym__rcb_symbol, - STATE(319), 1, - sym_function_keyword, - STATE(217), 8, + STATE(246), 8, sym__definition, sym_type_definition_statement, sym_constant_definition, @@ -15360,28 +17623,26 @@ static const uint16_t ts_small_parse_table[] = { sym_function_definition, sym_external_function_definition, aux_sym_spec_definition_repeat1, - [12026] = 11, + [14667] = 10, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(826), 1, anon_sym_fn, - ACTIONS(9), 1, + ACTIONS(829), 1, + anon_sym_RBRACE, + ACTIONS(831), 1, anon_sym_type, - ACTIONS(11), 1, + ACTIONS(834), 1, anon_sym_const, - ACTIONS(15), 1, + ACTIONS(837), 1, anon_sym_enum, - ACTIONS(17), 1, + ACTIONS(840), 1, anon_sym_struct, - ACTIONS(19), 1, + ACTIONS(843), 1, anon_sym_external, - ACTIONS(796), 1, - anon_sym_RBRACE, - STATE(259), 1, - sym__rcb_symbol, - STATE(319), 1, - sym_function_keyword, - STATE(211), 8, + STATE(245), 8, sym__definition, sym_type_definition_statement, sym_constant_definition, @@ -15390,146 +17651,26 @@ static const uint16_t ts_small_parse_table[] = { sym_function_definition, sym_external_function_definition, aux_sym_spec_definition_repeat1, - [12067] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(784), 1, - anon_sym_forall, - ACTIONS(786), 1, - anon_sym_assume, - ACTIONS(788), 1, - anon_sym_exists, - ACTIONS(790), 1, - anon_sym_unique, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(369), 1, - sym__forall_keyword, - STATE(370), 1, - sym__assume_keyword, - STATE(372), 1, - sym__exists_keyword, - STATE(373), 1, - sym__unique_keyword, - STATE(240), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [12109] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(774), 1, - anon_sym_forall, - ACTIONS(776), 1, - anon_sym_assume, - ACTIONS(778), 1, - anon_sym_exists, - ACTIONS(780), 1, - anon_sym_unique, - ACTIONS(782), 1, - anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(376), 1, - sym__forall_keyword, - STATE(377), 1, - sym__assume_keyword, - STATE(378), 1, - sym__exists_keyword, - STATE(379), 1, - sym__unique_keyword, - STATE(290), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [12151] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(774), 1, - anon_sym_forall, - ACTIONS(776), 1, - anon_sym_assume, - ACTIONS(778), 1, - anon_sym_exists, - ACTIONS(780), 1, - anon_sym_unique, - ACTIONS(782), 1, - anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(376), 1, - sym__forall_keyword, - STATE(377), 1, - sym__assume_keyword, - STATE(378), 1, - sym__exists_keyword, - STATE(379), 1, - sym__unique_keyword, - STATE(291), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [12193] = 12, + [14705] = 10, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(63), 1, - anon_sym_LBRACE, - ACTIONS(361), 1, - anon_sym_forall, - ACTIONS(363), 1, - anon_sym_assume, - ACTIONS(365), 1, - anon_sym_exists, - ACTIONS(367), 1, - anon_sym_unique, - STATE(7), 1, - sym__lcb_symbol, - STATE(360), 1, - sym__forall_keyword, - STATE(361), 1, - sym__assume_keyword, - STATE(362), 1, - sym__exists_keyword, - STATE(363), 1, - sym__unique_keyword, - STATE(84), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [12235] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(798), 1, + ACTIONS(9), 1, anon_sym_fn, - ACTIONS(801), 1, + ACTIONS(11), 1, anon_sym_type, - ACTIONS(804), 1, + ACTIONS(13), 1, anon_sym_const, - ACTIONS(807), 1, + ACTIONS(17), 1, anon_sym_enum, - ACTIONS(810), 1, + ACTIONS(19), 1, anon_sym_struct, - ACTIONS(813), 1, + ACTIONS(21), 1, anon_sym_external, - ACTIONS(816), 1, + ACTIONS(846), 1, anon_sym_RBRACE, - STATE(319), 1, - sym_function_keyword, - STATE(217), 8, + STATE(245), 8, sym__definition, sym_type_definition_statement, sym_constant_definition, @@ -15538,471 +17679,596 @@ static const uint16_t ts_small_parse_table[] = { sym_function_definition, sym_external_function_definition, aux_sym_spec_definition_repeat1, - [12273] = 3, + [14743] = 9, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(820), 2, - anon_sym_LPAREN_RPAREN, - anon_sym_LBRACK, - ACTIONS(818), 14, - sym_type_i8, - sym_type_i16, - sym_type_i32, - sym_type_i64, - sym_type_u8, - sym_type_u16, - sym_type_u32, - sym_type_u64, - sym_type_bool, - anon_sym_fn, + ACTIONS(41), 1, + anon_sym_DASH, + ACTIONS(71), 1, + aux_sym_number_literal_token1, + STATE(77), 1, + sym__reserved_identifier, + STATE(113), 1, + sym_identifier, + STATE(472), 1, + sym_number_literal, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [12297] = 12, + STATE(403), 5, + sym__name, + sym_type_qualified_name, + sym__simple_name, + sym_qualified_name, + sym_generic_name, + [14778] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(63), 1, + ACTIONS(512), 1, + anon_sym_COLON, + ACTIONS(510), 13, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, anon_sym_LBRACE, - ACTIONS(361), 1, - anon_sym_forall, - ACTIONS(363), 1, + anon_sym_EQ, anon_sym_assume, - ACTIONS(365), 1, + anon_sym_forall, anon_sym_exists, - ACTIONS(367), 1, anon_sym_unique, - STATE(7), 1, - sym__lcb_symbol, - STATE(360), 1, - sym__forall_keyword, - STATE(361), 1, - sym__assume_keyword, - STATE(362), 1, - sym__exists_keyword, - STATE(363), 1, - sym__unique_keyword, - STATE(91), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [12339] = 12, + anon_sym_SQUOTE, + [14803] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(784), 1, - anon_sym_forall, - ACTIONS(786), 1, + ACTIONS(850), 1, + anon_sym_COLON, + ACTIONS(848), 13, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, anon_sym_assume, - ACTIONS(788), 1, + anon_sym_forall, anon_sym_exists, - ACTIONS(790), 1, anon_sym_unique, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(369), 1, - sym__forall_keyword, - STATE(370), 1, - sym__assume_keyword, - STATE(372), 1, - sym__exists_keyword, - STATE(373), 1, - sym__unique_keyword, - STATE(247), 6, - sym__block, - sym_block, - sym_assume_block, - sym_forall_block, - sym_exists_block, - sym_unique_block, - [12381] = 5, + anon_sym_SQUOTE, + [14828] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(453), 1, + ACTIONS(311), 5, anon_sym_COLON, - ACTIONS(822), 1, - anon_sym_LT, - STATE(95), 1, - sym_type_argument_list, - ACTIONS(451), 12, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + ACTIONS(313), 8, + anon_sym_LPAREN, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON_COLON2, + anon_sym_SQUOTE, + [14852] = 3, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(852), 13, anon_sym_SEMI, anon_sym_RBRACK, + anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12408] = 6, + anon_sym_SQUOTE, + [14874] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(453), 1, - anon_sym_COLON, - ACTIONS(822), 1, - anon_sym_LT, - ACTIONS(824), 1, - sym_expand_operator, - STATE(95), 1, - sym_type_argument_list, - ACTIONS(451), 11, + ACTIONS(854), 13, anon_sym_SEMI, anon_sym_RBRACK, + anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - sym_assign_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12437] = 2, + anon_sym_SQUOTE, + [14896] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(826), 14, + ACTIONS(856), 13, anon_sym_SEMI, anon_sym_RBRACK, anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, + anon_sym_SQUOTE, + [14918] = 3, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(858), 12, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, anon_sym_LBRACE, - [12457] = 3, + anon_sym_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [14939] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(556), 1, - anon_sym_COLON, - ACTIONS(554), 13, + ACTIONS(860), 12, anon_sym_SEMI, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_assume, anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [14960] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(862), 1, + anon_sym_DASH_GT, + ACTIONS(864), 1, + anon_sym_LBRACE, + ACTIONS(866), 1, anon_sym_assume, + ACTIONS(868), 1, + anon_sym_forall, + ACTIONS(870), 1, anon_sym_exists, + ACTIONS(872), 1, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, + STATE(336), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [14993] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(33), 1, anon_sym_LBRACE, - [12479] = 2, + ACTIONS(568), 1, + anon_sym_assume, + ACTIONS(570), 1, + anon_sym_forall, + ACTIONS(572), 1, + anon_sym_exists, + ACTIONS(574), 1, + anon_sym_unique, + ACTIONS(874), 1, + anon_sym_if, + STATE(92), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15026] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(828), 14, + ACTIONS(876), 12, anon_sym_SEMI, anon_sym_RBRACK, - anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, anon_sym_assume, + anon_sym_forall, anon_sym_exists, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12499] = 3, + anon_sym_SQUOTE, + [15047] = 9, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(832), 1, - anon_sym_COLON, - ACTIONS(830), 13, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(878), 1, + anon_sym_DASH_GT, + ACTIONS(880), 1, + anon_sym_LBRACE, + ACTIONS(882), 1, anon_sym_assume, + ACTIONS(884), 1, + anon_sym_forall, + ACTIONS(886), 1, anon_sym_exists, + ACTIONS(888), 1, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12521] = 2, + STATE(287), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15080] = 9, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(834), 14, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(864), 1, + anon_sym_LBRACE, + ACTIONS(866), 1, anon_sym_assume, + ACTIONS(868), 1, + anon_sym_forall, + ACTIONS(870), 1, anon_sym_exists, + ACTIONS(872), 1, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12541] = 8, + ACTIONS(890), 1, + anon_sym_DASH_GT, + STATE(349), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15113] = 7, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(61), 1, - anon_sym_DASH, - ACTIONS(71), 1, - aux_sym_number_literal_token1, - STATE(210), 1, + ACTIONS(892), 1, + anon_sym_RBRACE, + STATE(77), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(113), 1, sym_identifier, - STATE(430), 1, - sym_number_literal, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(395), 5, + STATE(413), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - [12573] = 2, + [15142] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(740), 13, + ACTIONS(894), 12, anon_sym_SEMI, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_assume, anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [15163] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(33), 1, + anon_sym_LBRACE, + ACTIONS(568), 1, anon_sym_assume, + ACTIONS(570), 1, + anon_sym_forall, + ACTIONS(572), 1, anon_sym_exists, + ACTIONS(574), 1, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, + ACTIONS(874), 1, + anon_sym_if, + STATE(114), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15196] = 3, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(896), 12, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_RPAREN2, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + anon_sym_SQUOTE, + [15217] = 9, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(880), 1, anon_sym_LBRACE, - [12592] = 11, + ACTIONS(882), 1, + anon_sym_assume, + ACTIONS(884), 1, + anon_sym_forall, + ACTIONS(886), 1, + anon_sym_exists, + ACTIONS(888), 1, + anon_sym_unique, + ACTIONS(898), 1, + anon_sym_DASH_GT, + STATE(284), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15250] = 10, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(836), 1, + ACTIONS(900), 1, anon_sym_fn, - ACTIONS(838), 1, + ACTIONS(902), 1, anon_sym_RBRACE, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(232), 1, + STATE(272), 1, aux_sym_struct_definition_repeat1, - STATE(245), 1, - sym__rcb_symbol, - STATE(292), 1, + STATE(346), 1, sym_function_definition, - STATE(317), 1, - sym_function_keyword, - STATE(408), 1, - sym_identifier, - STATE(441), 1, + STATE(440), 1, sym_struct_field, - ACTIONS(449), 4, + STATE(442), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [12629] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(840), 13, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12648] = 11, + [15284] = 10, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(836), 1, + ACTIONS(906), 1, anon_sym_fn, - ACTIONS(842), 1, + ACTIONS(909), 1, anon_sym_RBRACE, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(236), 1, + STATE(267), 1, aux_sym_struct_definition_repeat1, - STATE(253), 1, - sym__rcb_symbol, - STATE(292), 1, + STATE(346), 1, sym_function_definition, - STATE(317), 1, - sym_function_keyword, - STATE(408), 1, - sym_identifier, - STATE(441), 1, + STATE(440), 1, sym_struct_field, - ACTIONS(449), 4, + STATE(442), 1, + sym_identifier, + ACTIONS(911), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [12685] = 7, + [15318] = 8, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(844), 1, - anon_sym_RBRACE, - STATE(120), 1, - sym__rcb_symbol, - STATE(210), 1, + ACTIONS(880), 1, + anon_sym_LBRACE, + ACTIONS(882), 1, + anon_sym_assume, + ACTIONS(884), 1, + anon_sym_forall, + ACTIONS(886), 1, + anon_sym_exists, + ACTIONS(888), 1, + anon_sym_unique, + STATE(275), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15348] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + STATE(77), 1, sym__reserved_identifier, - STATE(222), 1, + STATE(113), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - STATE(387), 5, + STATE(438), 5, sym__name, sym_type_qualified_name, sym__simple_name, sym_qualified_name, sym_generic_name, - [12714] = 2, + [15374] = 8, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(846), 13, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(864), 1, + anon_sym_LBRACE, + ACTIONS(866), 1, anon_sym_assume, + ACTIONS(868), 1, + anon_sym_forall, + ACTIONS(870), 1, anon_sym_exists, + ACTIONS(872), 1, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12733] = 2, + STATE(355), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15404] = 8, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(848), 13, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(864), 1, + anon_sym_LBRACE, + ACTIONS(866), 1, anon_sym_assume, + ACTIONS(868), 1, + anon_sym_forall, + ACTIONS(870), 1, anon_sym_exists, + ACTIONS(872), 1, anon_sym_unique, - anon_sym_GT, - sym_assign_operator, - sym_expand_operator, - sym_attribute_access_operator, - anon_sym_LBRACE, - [12752] = 10, + STATE(330), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15434] = 10, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(850), 1, + ACTIONS(900), 1, anon_sym_fn, - ACTIONS(853), 1, + ACTIONS(914), 1, anon_sym_RBRACE, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(236), 1, + STATE(267), 1, aux_sym_struct_definition_repeat1, - STATE(292), 1, + STATE(346), 1, sym_function_definition, - STATE(317), 1, - sym_function_keyword, - STATE(408), 1, - sym_identifier, - STATE(441), 1, + STATE(440), 1, sym_struct_field, - ACTIONS(855), 4, + STATE(442), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [12786] = 3, + [15468] = 8, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(860), 1, - sym_attribute_access_operator, - ACTIONS(858), 11, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, - anon_sym_assume, - anon_sym_exists, - anon_sym_unique, - sym_assign_operator, - sym_expand_operator, + ACTIONS(880), 1, anon_sym_LBRACE, - [12806] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(864), 1, - anon_sym_DASH_GT, - ACTIONS(862), 10, - anon_sym_SEMI, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_forall, + ACTIONS(882), 1, anon_sym_assume, + ACTIONS(884), 1, + anon_sym_forall, + ACTIONS(886), 1, anon_sym_exists, + ACTIONS(888), 1, anon_sym_unique, - sym_assign_operator, - anon_sym_LBRACE, - [12825] = 5, - ACTIONS(3), 1, - sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(222), 1, - sym_identifier, - ACTIONS(449), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - STATE(366), 5, - sym__name, - sym_type_qualified_name, - sym__simple_name, - sym_qualified_name, - sym_generic_name, - [12848] = 2, + STATE(279), 6, + sym__block, + sym_block, + sym_assume_block, + sym_forall_block, + sym_exists_block, + sym_unique_block, + [15498] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(866), 10, + ACTIONS(916), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16010,13 +18276,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12864] = 2, + [15517] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(297), 10, + ACTIONS(918), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16024,13 +18292,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12880] = 2, + [15536] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(313), 10, + ACTIONS(920), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16038,13 +18308,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12896] = 2, + [15555] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(309), 10, + ACTIONS(350), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16052,13 +18324,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12912] = 2, + [15574] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(868), 10, + ACTIONS(922), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16066,13 +18340,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12928] = 2, + [15593] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(870), 10, + ACTIONS(924), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16080,13 +18356,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12944] = 2, + [15612] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(872), 10, + ACTIONS(420), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16094,13 +18372,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12960] = 2, + [15631] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(874), 10, + ACTIONS(354), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16108,13 +18388,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12976] = 2, + [15650] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(876), 10, + ACTIONS(926), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16122,13 +18404,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [12992] = 2, + [15669] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(305), 10, + ACTIONS(336), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16136,13 +18420,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13008] = 2, + [15688] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(395), 10, + ACTIONS(928), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16150,13 +18436,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13024] = 2, + [15707] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(878), 10, + ACTIONS(358), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16164,13 +18452,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13040] = 2, + [15726] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(301), 10, + ACTIONS(408), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16178,13 +18468,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13056] = 2, + [15745] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(880), 10, + ACTIONS(930), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16192,13 +18484,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13072] = 2, + [15764] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(882), 10, + ACTIONS(362), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16206,13 +18500,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13088] = 2, + [15783] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(379), 10, + ACTIONS(346), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16220,13 +18516,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13104] = 2, + [15802] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(884), 10, + ACTIONS(932), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16234,13 +18532,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13120] = 2, + [15821] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(293), 10, + ACTIONS(934), 10, ts_builtin_sym_end, anon_sym_fn, + anon_sym_RBRACE, anon_sym_type, anon_sym_const, anon_sym_spec, @@ -16248,11 +18548,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - anon_sym_RBRACE, - [13136] = 2, + [15840] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(886), 9, + ACTIONS(936), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16262,10 +18563,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13151] = 2, + [15858] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(888), 9, + ACTIONS(938), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16275,10 +18578,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13166] = 2, + [15876] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(890), 9, + ACTIONS(940), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16288,10 +18593,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13181] = 2, + [15894] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(892), 9, + ACTIONS(942), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16301,10 +18608,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13196] = 2, + [15912] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(894), 9, + ACTIONS(944), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16314,10 +18623,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13211] = 2, + [15930] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(896), 9, + ACTIONS(946), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16327,10 +18638,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13226] = 2, + [15948] = 8, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(898), 9, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(250), 1, + sym__reserved_identifier, + STATE(259), 1, + sym_argument_list, + STATE(408), 1, + sym_type_argument_list_definition, + STATE(444), 1, + sym_identifier, + ACTIONS(904), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [15976] = 3, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(950), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16340,10 +18673,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13241] = 2, + [15994] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(900), 9, + ACTIONS(952), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16353,10 +18688,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13256] = 2, + [16012] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(902), 9, + ACTIONS(954), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16366,10 +18703,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13271] = 2, + [16030] = 8, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(250), 1, + sym__reserved_identifier, + STATE(256), 1, + sym_argument_list, + STATE(432), 1, + sym_type_argument_list_definition, + STATE(444), 1, + sym_identifier, + ACTIONS(904), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16058] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(904), 9, + ACTIONS(956), 9, ts_builtin_sym_end, anon_sym_fn, anon_sym_type, @@ -16379,108 +18738,172 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_struct, anon_sym_external, anon_sym_use, - [13286] = 6, + [16076] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(906), 1, - anon_sym_LBRACE, - STATE(210), 1, + STATE(79), 1, + sym__reserved_identifier, + STATE(116), 1, + sym_identifier, + STATE(249), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(524), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16099] = 7, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(958), 1, + anon_sym_LPAREN, + STATE(250), 1, sym__reserved_identifier, - STATE(310), 1, - sym__lcb_symbol, - STATE(411), 1, + STATE(305), 1, + aux_sym_type_argument_list_definition_repeat1, + STATE(477), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(960), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13308] = 5, + [16124] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(79), 1, sym__reserved_identifier, - STATE(221), 1, + STATE(116), 1, sym_identifier, - STATE(226), 2, + STATE(248), 2, sym__simple_name, sym_generic_name, - ACTIONS(449), 4, + ACTIONS(524), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13328] = 5, + [16147] = 7, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(94), 1, - sym_identifier, - STATE(98), 1, + ACTIONS(963), 1, + anon_sym_LPAREN, + STATE(250), 1, sym__reserved_identifier, - STATE(102), 2, - sym__simple_name, - sym_generic_name, - ACTIONS(73), 4, + STATE(305), 1, + aux_sym_type_argument_list_definition_repeat1, + STATE(477), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13348] = 7, + [16172] = 7, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(822), 1, - anon_sym_LT, - ACTIONS(824), 1, - sym_expand_operator, - ACTIONS(908), 1, - anon_sym_COLON, - STATE(95), 1, - sym_type_argument_list, - STATE(150), 1, - sym__typedef_symbol, - ACTIONS(451), 3, - anon_sym_COMMA, + ACTIONS(965), 1, anon_sym_RPAREN, - sym_attribute_access_operator, - [13372] = 5, + STATE(77), 1, + sym__reserved_identifier, + STATE(134), 1, + sym_identifier, + STATE(454), 1, + sym_generic_name, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16197] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(77), 1, sym__reserved_identifier, - STATE(221), 1, + STATE(127), 1, sym_identifier, - STATE(224), 2, + STATE(248), 2, sym__simple_name, sym_generic_name, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13392] = 6, + [16220] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(910), 1, - anon_sym_LBRACE, - STATE(210), 1, + STATE(17), 1, + sym_identifier, + STATE(79), 1, sym__reserved_identifier, - STATE(289), 1, - sym__lcb_symbol, - STATE(349), 1, + STATE(128), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(524), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16243] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + STATE(18), 1, sym_identifier, - ACTIONS(449), 4, + STATE(78), 1, + sym__reserved_identifier, + STATE(131), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(169), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13414] = 5, + [16266] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(94), 1, + STATE(17), 1, sym_identifier, - STATE(98), 1, + STATE(78), 1, + sym__reserved_identifier, + STATE(181), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(169), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16289] = 6, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + STATE(76), 1, sym__reserved_identifier, - STATE(117), 2, + STATE(85), 1, + sym_identifier, + STATE(248), 2, sym__simple_name, sym_generic_name, ACTIONS(73), 4, @@ -16488,75 +18911,102 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13434] = 5, + [16312] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(77), 1, sym__reserved_identifier, - STATE(324), 1, + STATE(85), 1, sym_identifier, - STATE(224), 2, + STATE(248), 2, sym__simple_name, sym_generic_name, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13454] = 6, + [16335] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(912), 1, - anon_sym_LBRACE, - STATE(210), 1, + STATE(77), 1, + sym__reserved_identifier, + STATE(85), 1, + sym_identifier, + STATE(249), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(187), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16358] = 7, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(967), 1, + anon_sym_LPAREN, + STATE(250), 1, sym__reserved_identifier, - STATE(312), 1, - sym__lcb_symbol, - STATE(411), 1, + STATE(307), 1, + aux_sym_type_argument_list_definition_repeat1, + STATE(477), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13476] = 5, + [16383] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(77), 1, sym__reserved_identifier, - STATE(324), 1, + STATE(127), 1, sym_identifier, - STATE(226), 2, + STATE(249), 2, sym__simple_name, sym_generic_name, - ACTIONS(449), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13496] = 5, + [16406] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(94), 1, + STATE(16), 1, sym_identifier, - STATE(98), 1, + STATE(77), 1, sym__reserved_identifier, - STATE(178), 2, + STATE(128), 2, sym__simple_name, sym_generic_name, - ACTIONS(73), 4, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13516] = 5, + [16429] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(94), 1, + STATE(20), 1, sym_identifier, - STATE(98), 1, + STATE(76), 1, sym__reserved_identifier, - STATE(175), 2, + STATE(131), 2, sym__simple_name, sym_generic_name, ACTIONS(73), 4, @@ -16564,2558 +19014,2723 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13536] = 5, + [16452] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(914), 1, - sym_mut_keyword, - STATE(210), 1, - sym__reserved_identifier, - STATE(396), 1, + STATE(16), 1, sym_identifier, - ACTIONS(449), 4, + STATE(76), 1, + sym__reserved_identifier, + STATE(133), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13555] = 5, + [16475] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(916), 1, - anon_sym_self, - STATE(210), 1, - sym__reserved_identifier, - STATE(401), 1, + STATE(15), 1, sym_identifier, - ACTIONS(449), 4, + STATE(77), 1, + sym__reserved_identifier, + STATE(128), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(187), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13574] = 5, + [16498] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(458), 1, - sym_expand_operator, - ACTIONS(822), 1, - anon_sym_LT, - STATE(95), 1, - sym_type_argument_list, - ACTIONS(451), 3, - anon_sym_SEMI, - anon_sym_RBRACK, - sym_attribute_access_operator, - [13592] = 6, + STATE(19), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(131), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(73), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16521] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(357), 1, - sym_expand_operator, - ACTIONS(918), 1, - sym_attribute_access_operator, - ACTIONS(920), 1, - anon_sym_LBRACE, - STATE(233), 1, - sym__lcb_symbol, - ACTIONS(858), 2, - anon_sym_SEMI, - anon_sym_RBRACK, - [13612] = 4, + STATE(15), 1, + sym_identifier, + STATE(76), 1, + sym__reserved_identifier, + STATE(133), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(73), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16544] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(76), 1, sym__reserved_identifier, - STATE(410), 1, + STATE(85), 1, sym_identifier, - ACTIONS(449), 4, + STATE(249), 2, + sym__simple_name, + sym_generic_name, + ACTIONS(73), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13628] = 3, + [16567] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(876), 1, - anon_sym_RBRACE, - ACTIONS(922), 5, - anon_sym_fn, + ACTIONS(969), 1, + sym_mut_keyword, + STATE(250), 1, + sym__reserved_identifier, + STATE(468), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13642] = 4, + [16589] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + ACTIONS(971), 1, + anon_sym_self, + STATE(250), 1, sym__reserved_identifier, - STATE(368), 1, + STATE(475), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13658] = 7, + [16611] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(357), 1, - sym_expand_operator, - ACTIONS(920), 1, + ACTIONS(973), 1, anon_sym_LBRACE, - ACTIONS(924), 1, - sym_attribute_access_operator, - ACTIONS(926), 1, - anon_sym_COLON, - STATE(36), 1, - sym__typedef_symbol, - STATE(233), 1, - sym__lcb_symbol, - [13680] = 3, + STATE(250), 1, + sym__reserved_identifier, + STATE(431), 1, + sym_identifier, + ACTIONS(904), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16633] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(868), 1, - anon_sym_RBRACE, - ACTIONS(928), 5, - anon_sym_fn, + ACTIONS(975), 1, + anon_sym_LBRACE, + STATE(250), 1, + sym__reserved_identifier, + STATE(372), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13694] = 4, + [16655] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + ACTIONS(977), 1, + anon_sym_LBRACE, + STATE(250), 1, sym__reserved_identifier, - STATE(323), 1, + STATE(431), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13710] = 3, + [16677] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(874), 1, + ACTIONS(918), 1, anon_sym_RBRACE, - ACTIONS(930), 5, + ACTIONS(979), 5, anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13724] = 3, + [16694] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(866), 1, - anon_sym_RBRACE, - ACTIONS(932), 5, - anon_sym_fn, + STATE(250), 1, + sym__reserved_identifier, + STATE(421), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13738] = 3, + [16713] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(936), 1, - anon_sym_RBRACE, - ACTIONS(934), 5, - anon_sym_fn, + STATE(250), 1, + sym__reserved_identifier, + STATE(447), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13752] = 3, + [16732] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(297), 1, - anon_sym_RBRACE, - ACTIONS(295), 5, - anon_sym_fn, + STATE(250), 1, + sym__reserved_identifier, + STATE(368), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13766] = 3, + [16751] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(313), 1, + ACTIONS(983), 1, anon_sym_RBRACE, - ACTIONS(311), 5, + ACTIONS(981), 5, anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13780] = 3, + [16768] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(305), 1, + ACTIONS(985), 1, + anon_sym_DOT, + ACTIONS(987), 5, + anon_sym_LBRACE, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [16785] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(930), 1, anon_sym_RBRACE, - ACTIONS(303), 5, + ACTIONS(989), 5, anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13794] = 3, + [16802] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_RBRACE, - ACTIONS(291), 5, - anon_sym_fn, + STATE(250), 1, + sym__reserved_identifier, + STATE(382), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13808] = 3, + [16821] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(309), 1, - anon_sym_RBRACE, - ACTIONS(307), 5, - anon_sym_fn, + ACTIONS(991), 1, + anon_sym_DASH_GT, + ACTIONS(993), 5, + anon_sym_LBRACE, + anon_sym_assume, + anon_sym_forall, + anon_sym_exists, + anon_sym_unique, + [16838] = 5, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + STATE(250), 1, + sym__reserved_identifier, + STATE(389), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13822] = 7, + [16857] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(357), 1, - sym_expand_operator, - ACTIONS(920), 1, - anon_sym_LBRACE, - ACTIONS(924), 1, - sym_attribute_access_operator, - ACTIONS(938), 1, - anon_sym_COLON, - STATE(39), 1, - sym__typedef_symbol, - STATE(233), 1, - sym__lcb_symbol, - [13844] = 4, + STATE(250), 1, + sym__reserved_identifier, + STATE(298), 1, + sym_identifier, + ACTIONS(904), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [16876] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(419), 1, + STATE(431), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13860] = 3, + [16895] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(301), 1, - anon_sym_RBRACE, - ACTIONS(299), 5, - anon_sym_fn, + STATE(250), 1, + sym__reserved_identifier, + STATE(448), 1, + sym_identifier, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13874] = 4, + [16914] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(436), 1, + STATE(463), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13890] = 4, + [16933] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(413), 1, + STATE(376), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13906] = 4, + [16952] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(423), 1, + STATE(453), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13922] = 4, + [16971] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(406), 1, - sym_identifier, - ACTIONS(449), 4, + ACTIONS(997), 1, + anon_sym_RBRACE, + ACTIONS(995), 5, + anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13938] = 4, + [16988] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(407), 1, + STATE(404), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13954] = 4, + [17007] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(426), 1, + STATE(479), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [13970] = 5, + [17026] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(940), 1, - anon_sym_LT, - ACTIONS(942), 1, - sym_expand_operator, - STATE(374), 1, - sym_type_argument_list, - ACTIONS(451), 3, - anon_sym_COMMA, - anon_sym_GT, - sym_attribute_access_operator, - [13988] = 3, + ACTIONS(928), 1, + anon_sym_RBRACE, + ACTIONS(999), 5, + anon_sym_fn, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [17043] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(346), 1, anon_sym_RBRACE, - ACTIONS(944), 5, + ACTIONS(344), 5, anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14002] = 7, + [17060] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(357), 1, - sym_expand_operator, - ACTIONS(920), 1, - anon_sym_LBRACE, - ACTIONS(924), 1, - sym_attribute_access_operator, - ACTIONS(948), 1, - anon_sym_COLON, - STATE(41), 1, - sym__typedef_symbol, - STATE(233), 1, - sym__lcb_symbol, - [14024] = 4, + ACTIONS(350), 1, + anon_sym_RBRACE, + ACTIONS(348), 5, + anon_sym_fn, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [17077] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(329), 1, - sym_identifier, - ACTIONS(449), 4, + ACTIONS(354), 1, + anon_sym_RBRACE, + ACTIONS(352), 5, + anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14040] = 4, + [17094] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(321), 1, + STATE(441), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14056] = 4, + [17113] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(326), 1, + STATE(443), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14072] = 4, + [17132] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(347), 1, - sym_identifier, - ACTIONS(449), 4, + ACTIONS(924), 1, + anon_sym_RBRACE, + ACTIONS(1001), 5, + anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14088] = 4, + [17149] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(411), 1, - sym_identifier, - ACTIONS(449), 4, + ACTIONS(358), 1, + anon_sym_RBRACE, + ACTIONS(356), 5, + anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14104] = 4, + [17166] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(397), 1, + STATE(406), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14120] = 4, + [17185] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(442), 1, - sym_identifier, - ACTIONS(449), 4, + ACTIONS(362), 1, + anon_sym_RBRACE, + ACTIONS(360), 5, + anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14136] = 4, + [17202] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(330), 1, + STATE(302), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14152] = 4, + [17221] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, - sym__reserved_identifier, - STATE(428), 1, - sym_identifier, - ACTIONS(449), 4, + ACTIONS(336), 1, + anon_sym_RBRACE, + ACTIONS(334), 5, + anon_sym_fn, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14168] = 4, + [17238] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - STATE(210), 1, + STATE(250), 1, sym__reserved_identifier, - STATE(320), 1, + STATE(466), 1, sym_identifier, - ACTIONS(449), 4, + ACTIONS(904), 4, anon_sym_constructor, anon_sym_proof, anon_sym_uzumaki, sym__identifier, - [14184] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(950), 1, - anon_sym_LPAREN, - ACTIONS(952), 1, - anon_sym_LT, - STATE(92), 1, - sym__lrb_symbol, - STATE(207), 1, - sym_argument_list, - STATE(353), 1, - sym_type_argument_list_definition, - [14203] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(954), 1, - anon_sym_COMMA, - ACTIONS(956), 1, - anon_sym_RBRACE, - STATE(251), 1, - sym__rcb_symbol, - STATE(306), 1, - sym__comma_symbol, - STATE(334), 1, - aux_sym_enum_definition_repeat1, - [14222] = 6, + [17257] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(958), 1, - anon_sym_COMMA, - ACTIONS(960), 1, - anon_sym_RPAREN, - STATE(96), 1, - sym__comma_symbol, - STATE(227), 1, - sym__rrb_symbol, - STATE(331), 1, - aux_sym_argument_list_repeat1, - [14241] = 6, + ACTIONS(1003), 1, + anon_sym_DOT, + ACTIONS(987), 4, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_SQUOTE, + [17273] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(962), 1, - anon_sym_COMMA, - ACTIONS(964), 1, - anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(333), 1, - aux_sym_use_directive_repeat2, - STATE(433), 1, - sym__rcb_symbol, - [14260] = 4, + ACTIONS(1005), 1, + anon_sym_DASH_GT, + ACTIONS(993), 4, + anon_sym_SEMI, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_SQUOTE, + [17289] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(940), 1, - anon_sym_LT, - STATE(374), 1, - sym_type_argument_list, - ACTIONS(451), 3, - anon_sym_COMMA, - anon_sym_GT, - sym_attribute_access_operator, - [14275] = 6, + ACTIONS(1007), 1, + anon_sym_LPAREN, + ACTIONS(1009), 4, + anon_sym_constructor, + anon_sym_proof, + anon_sym_uzumaki, + sym__identifier, + [17305] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(962), 1, - anon_sym_COMMA, - ACTIONS(966), 1, - anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(339), 1, - aux_sym_use_directive_repeat2, - STATE(404), 1, - sym__rcb_symbol, - [14294] = 6, + ACTIONS(692), 1, + anon_sym_COLON_COLON, + ACTIONS(1011), 1, + anon_sym_DOT, + ACTIONS(1013), 1, + anon_sym_COLON, + ACTIONS(1015), 1, + anon_sym_LBRACE, + [17324] = 6, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(962), 1, - anon_sym_COMMA, - ACTIONS(968), 1, - anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(328), 1, - aux_sym_use_directive_repeat2, - STATE(405), 1, - sym__rcb_symbol, - [14313] = 6, + ACTIONS(692), 1, + anon_sym_COLON_COLON, + ACTIONS(1011), 1, + anon_sym_DOT, + ACTIONS(1015), 1, + anon_sym_LBRACE, + ACTIONS(1017), 1, + anon_sym_COLON, + [17343] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(650), 1, + ACTIONS(766), 1, + anon_sym_RBRACK, + ACTIONS(1019), 1, anon_sym_COMMA, - ACTIONS(970), 1, - anon_sym_RBRACE, - STATE(112), 1, - sym__rcb_symbol, - STATE(239), 1, - sym__comma_symbol, - STATE(345), 1, - aux_sym_struct_expression_repeat1, - [14332] = 6, + STATE(367), 1, + aux_sym_array_literal_repeat1, + [17359] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(962), 1, + ACTIONS(1022), 1, anon_sym_COMMA, - ACTIONS(972), 1, + ACTIONS(1024), 1, anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(339), 1, + STATE(369), 1, aux_sym_use_directive_repeat2, - STATE(421), 1, - sym__rcb_symbol, - [14351] = 6, + [17375] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(962), 1, + ACTIONS(1022), 1, anon_sym_COMMA, - ACTIONS(974), 1, + ACTIONS(1026), 1, anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(325), 1, + STATE(375), 1, aux_sym_use_directive_repeat2, - STATE(416), 1, - sym__rcb_symbol, - [14370] = 6, + [17391] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_LPAREN, - ACTIONS(952), 1, - anon_sym_LT, - STATE(92), 1, - sym__lrb_symbol, - STATE(209), 1, - sym_argument_list, - STATE(384), 1, - sym_type_argument_list_definition, - [14389] = 6, + ACTIONS(698), 1, + anon_sym_COLON_COLON, + ACTIONS(1015), 1, + anon_sym_LBRACE, + ACTIONS(1028), 1, + anon_sym_DOT, + [17407] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(958), 1, + ACTIONS(1030), 1, anon_sym_COMMA, - ACTIONS(976), 1, - anon_sym_RPAREN, - STATE(96), 1, - sym__comma_symbol, - STATE(223), 1, - sym__rrb_symbol, - STATE(338), 1, + ACTIONS(1032), 1, + anon_sym_RPAREN2, + STATE(377), 1, aux_sym_argument_list_repeat1, - [14408] = 3, + [17423] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(978), 1, - anon_sym_DASH_GT, - ACTIONS(862), 4, + ACTIONS(1034), 1, anon_sym_SEMI, - anon_sym_RBRACK, - sym_expand_operator, - sym_attribute_access_operator, - [14421] = 6, + ACTIONS(1036), 1, + anon_sym_COLON_COLON2, + STATE(383), 1, + aux_sym_use_directive_repeat1, + [17439] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(962), 1, + ACTIONS(1038), 1, + anon_sym_DOT, + ACTIONS(987), 2, anon_sym_COMMA, - ACTIONS(980), 1, - anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(339), 1, - aux_sym_use_directive_repeat2, - STATE(440), 1, - sym__rcb_symbol, - [14440] = 6, + anon_sym_RPAREN2, + [17453] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(954), 1, + ACTIONS(1022), 1, anon_sym_COMMA, - ACTIONS(982), 1, + ACTIONS(1040), 1, anon_sym_RBRACE, - STATE(246), 1, - sym__rcb_symbol, - STATE(306), 1, - sym__comma_symbol, - STATE(340), 1, - aux_sym_enum_definition_repeat1, - [14459] = 5, + STATE(375), 1, + aux_sym_use_directive_repeat2, + [17469] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(984), 1, + ACTIONS(1042), 1, anon_sym_COMMA, - ACTIONS(986), 1, - anon_sym_GT, - STATE(315), 1, - sym__comma_symbol, - STATE(348), 1, - aux_sym_type_argument_list_definition_repeat1, - [14475] = 5, + ACTIONS(1045), 1, + anon_sym_RBRACE, + STATE(375), 1, + aux_sym_use_directive_repeat2, + [17485] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(988), 1, + ACTIONS(1022), 1, anon_sym_COMMA, - ACTIONS(990), 1, - anon_sym_GT, - STATE(138), 1, - sym__comma_symbol, - STATE(342), 1, - aux_sym_type_argument_list_repeat1, - [14491] = 5, + ACTIONS(1047), 1, + anon_sym_RBRACE, + STATE(391), 1, + aux_sym_use_directive_repeat2, + [17501] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(988), 1, + ACTIONS(1030), 1, anon_sym_COMMA, - ACTIONS(992), 1, - anon_sym_GT, - STATE(138), 1, - sym__comma_symbol, - STATE(336), 1, - aux_sym_type_argument_list_repeat1, - [14507] = 5, + ACTIONS(1049), 1, + anon_sym_RPAREN2, + STATE(384), 1, + aux_sym_argument_list_repeat1, + [17517] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(994), 1, + ACTIONS(750), 1, anon_sym_COMMA, - ACTIONS(997), 1, - anon_sym_RPAREN, - STATE(96), 1, - sym__comma_symbol, - STATE(338), 1, - aux_sym_argument_list_repeat1, - [14523] = 5, + ACTIONS(1051), 1, + anon_sym_RPAREN2, + STATE(379), 1, + aux_sym_function_call_expression_repeat1, + [17533] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(999), 1, + ACTIONS(1053), 1, anon_sym_COMMA, - ACTIONS(1002), 1, - anon_sym_RBRACE, - STATE(305), 1, - sym__comma_symbol, - STATE(339), 1, - aux_sym_use_directive_repeat2, - [14539] = 5, + ACTIONS(1056), 1, + anon_sym_RPAREN2, + STATE(379), 1, + aux_sym_function_call_expression_repeat1, + [17549] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1004), 1, + ACTIONS(756), 1, anon_sym_COMMA, - ACTIONS(1007), 1, + ACTIONS(1058), 1, anon_sym_RBRACE, - STATE(306), 1, - sym__comma_symbol, - STATE(340), 1, - aux_sym_enum_definition_repeat1, - [14555] = 5, + STATE(385), 1, + aux_sym_struct_expression_repeat1, + [17565] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(357), 1, - sym_expand_operator, - ACTIONS(920), 1, + ACTIONS(683), 1, + anon_sym_COLON_COLON, + ACTIONS(1015), 1, anon_sym_LBRACE, - ACTIONS(924), 1, - sym_attribute_access_operator, - STATE(233), 1, - sym__lcb_symbol, - [14571] = 5, + ACTIONS(1060), 1, + anon_sym_DOT, + [17581] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1009), 1, + ACTIONS(1062), 1, anon_sym_COMMA, - ACTIONS(1012), 1, - anon_sym_GT, - STATE(138), 1, - sym__comma_symbol, - STATE(342), 1, - aux_sym_type_argument_list_repeat1, - [14587] = 5, + ACTIONS(1064), 1, + anon_sym_RBRACE, + STATE(386), 1, + aux_sym_enum_definition_repeat1, + [17597] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(988), 1, - anon_sym_COMMA, - ACTIONS(1014), 1, - anon_sym_GT, - STATE(138), 1, - sym__comma_symbol, - STATE(342), 1, - aux_sym_type_argument_list_repeat1, - [14603] = 2, + ACTIONS(1066), 1, + anon_sym_SEMI, + ACTIONS(1068), 1, + anon_sym_COLON_COLON2, + STATE(394), 1, + aux_sym_use_directive_repeat1, + [17613] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1016), 4, - anon_sym_constructor, - anon_sym_proof, - anon_sym_uzumaki, - sym__identifier, - [14613] = 5, + ACTIONS(1070), 1, + anon_sym_COMMA, + ACTIONS(1073), 1, + anon_sym_RPAREN2, + STATE(384), 1, + aux_sym_argument_list_repeat1, + [17629] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1018), 1, + ACTIONS(1075), 1, anon_sym_COMMA, - ACTIONS(1021), 1, + ACTIONS(1078), 1, anon_sym_RBRACE, - STATE(239), 1, - sym__comma_symbol, - STATE(345), 1, + STATE(385), 1, aux_sym_struct_expression_repeat1, - [14629] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(357), 1, - sym_expand_operator, - ACTIONS(920), 1, - anon_sym_LBRACE, - ACTIONS(1023), 1, - sym_attribute_access_operator, - STATE(233), 1, - sym__lcb_symbol, - [14645] = 5, + [17645] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(984), 1, + ACTIONS(1062), 1, anon_sym_COMMA, - ACTIONS(1025), 1, - anon_sym_GT, - STATE(315), 1, - sym__comma_symbol, - STATE(335), 1, - aux_sym_type_argument_list_definition_repeat1, - [14661] = 5, + ACTIONS(1080), 1, + anon_sym_RBRACE, + STATE(388), 1, + aux_sym_enum_definition_repeat1, + [17661] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1027), 1, + ACTIONS(762), 1, anon_sym_COMMA, - ACTIONS(1030), 1, - anon_sym_GT, - STATE(315), 1, - sym__comma_symbol, - STATE(348), 1, - aux_sym_type_argument_list_definition_repeat1, - [14677] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1032), 1, - anon_sym_SEMI, - ACTIONS(1034), 1, - sym_expand_operator, - STATE(261), 1, - sym__terminal_symbol, - STATE(352), 1, - aux_sym_use_directive_repeat1, - [14693] = 5, + ACTIONS(1082), 1, + anon_sym_RBRACK, + STATE(367), 1, + aux_sym_array_literal_repeat1, + [17677] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(988), 1, + ACTIONS(1084), 1, anon_sym_COMMA, - ACTIONS(1036), 1, - anon_sym_GT, - STATE(138), 1, - sym__comma_symbol, - STATE(343), 1, - aux_sym_type_argument_list_repeat1, - [14709] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - ACTIONS(858), 2, - anon_sym_SEMI, - anon_sym_RBRACK, - [14721] = 5, + ACTIONS(1087), 1, + anon_sym_RBRACE, + STATE(388), 1, + aux_sym_enum_definition_repeat1, + [17693] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1038), 1, - anon_sym_SEMI, - ACTIONS(1040), 1, - sym_expand_operator, - STATE(267), 1, - sym__terminal_symbol, - STATE(364), 1, - aux_sym_use_directive_repeat1, - [14737] = 4, + ACTIONS(1022), 1, + anon_sym_COMMA, + ACTIONS(1089), 1, + anon_sym_RBRACE, + STATE(374), 1, + aux_sym_use_directive_repeat2, + [17709] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_LPAREN, - STATE(92), 1, - sym__lrb_symbol, - STATE(208), 1, - sym_argument_list, - [14750] = 4, + ACTIONS(1091), 1, + anon_sym_DASH_GT, + ACTIONS(993), 2, + anon_sym_COMMA, + anon_sym_RPAREN2, + [17723] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_LPAREN, - STATE(92), 1, - sym__lrb_symbol, - STATE(388), 1, - sym_argument_list, - [14763] = 2, + ACTIONS(1022), 1, + anon_sym_COMMA, + ACTIONS(1093), 1, + anon_sym_RBRACE, + STATE(375), 1, + aux_sym_use_directive_repeat2, + [17739] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(475), 3, - anon_sym_COMMA, - anon_sym_GT, - sym_attribute_access_operator, - [14772] = 4, + ACTIONS(692), 1, + anon_sym_COLON_COLON, + ACTIONS(1011), 1, + anon_sym_DOT, + ACTIONS(1015), 1, + anon_sym_LBRACE, + [17755] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(686), 1, + ACTIONS(750), 1, anon_sym_COMMA, - ACTIONS(1042), 1, - anon_sym_RPAREN, - STATE(392), 1, + ACTIONS(1095), 1, + anon_sym_RPAREN2, + STATE(379), 1, aux_sym_function_call_expression_repeat1, - [14785] = 4, + [17771] = 5, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1044), 1, + ACTIONS(1097), 1, anon_sym_SEMI, - ACTIONS(1046), 1, - sym_assign_operator, - STATE(85), 1, - sym__terminal_symbol, - [14798] = 4, + ACTIONS(1099), 1, + anon_sym_COLON_COLON2, + STATE(394), 1, + aux_sym_use_directive_repeat1, + [17787] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(686), 1, - anon_sym_COMMA, - ACTIONS(1048), 1, - anon_sym_RPAREN, - STATE(392), 1, - aux_sym_function_call_expression_repeat1, - [14811] = 4, + ACTIONS(880), 1, + anon_sym_LBRACE, + STATE(277), 1, + sym_block, + [17800] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(686), 1, - anon_sym_COMMA, - ACTIONS(1050), 1, - anon_sym_RPAREN, - STATE(392), 1, - aux_sym_function_call_expression_repeat1, - [14824] = 4, + ACTIONS(1102), 1, + anon_sym_SEMI, + ACTIONS(1104), 1, + anon_sym_EQ, + [17813] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(63), 1, + ACTIONS(33), 1, anon_sym_LBRACE, - STATE(7), 1, - sym__lcb_symbol, - STATE(78), 1, + STATE(103), 1, sym_block, - [14837] = 4, + [17826] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(63), 1, + ACTIONS(33), 1, anon_sym_LBRACE, - STATE(7), 1, - sym__lcb_symbol, - STATE(75), 1, + STATE(104), 1, sym_block, - [14850] = 4, + [17839] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(63), 1, + ACTIONS(33), 1, anon_sym_LBRACE, - STATE(7), 1, - sym__lcb_symbol, - STATE(79), 1, + STATE(105), 1, sym_block, - [14863] = 4, + [17852] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(63), 1, + ACTIONS(33), 1, anon_sym_LBRACE, - STATE(7), 1, - sym__lcb_symbol, - STATE(81), 1, + STATE(106), 1, sym_block, - [14876] = 4, + [17865] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1052), 1, - anon_sym_SEMI, - ACTIONS(1054), 1, - sym_expand_operator, - STATE(364), 1, - aux_sym_use_directive_repeat1, - [14889] = 4, + ACTIONS(530), 1, + anon_sym_LBRACE, + STATE(89), 1, + sym_block, + [17878] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(686), 1, - anon_sym_COMMA, - ACTIONS(1057), 1, - anon_sym_RPAREN, - STATE(392), 1, - aux_sym_function_call_expression_repeat1, - [14902] = 4, + ACTIONS(530), 1, + anon_sym_LBRACE, + STATE(90), 1, + sym_block, + [17891] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(860), 1, - sym_attribute_access_operator, - ACTIONS(1059), 1, - anon_sym_COLON, - STATE(42), 1, - sym__typedef_symbol, - [14915] = 4, + ACTIONS(1003), 1, + anon_sym_DOT, + ACTIONS(1106), 1, + anon_sym_RBRACK, + [17904] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, + ACTIONS(948), 1, anon_sym_LPAREN, - STATE(92), 1, - sym__lrb_symbol, - STATE(238), 1, + STATE(437), 1, sym_argument_list, - [14928] = 4, + [17917] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_LPAREN, - STATE(92), 1, - sym__lrb_symbol, - STATE(386), 1, - sym_argument_list, - [14941] = 4, + ACTIONS(1108), 1, + anon_sym_SEMI, + ACTIONS(1110), 1, + anon_sym_RBRACK, + [17930] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(241), 1, - sym_block, - [14954] = 4, + ACTIONS(1112), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [17941] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(242), 1, - sym_block, - [14967] = 4, + ACTIONS(1114), 2, + anon_sym_COMMA, + anon_sym_RPAREN2, + [17952] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1061), 1, - anon_sym_SEMI, - ACTIONS(1063), 1, - sym_assign_operator, - STATE(89), 1, - sym__terminal_symbol, - [14980] = 4, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(265), 1, + sym_argument_list, + [17965] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(249), 1, - sym_block, - [14993] = 4, + ACTIONS(1116), 2, + anon_sym_COMMA, + anon_sym_RPAREN2, + [17976] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(792), 1, - anon_sym_LBRACE, - STATE(2), 1, - sym__lcb_symbol, - STATE(257), 1, - sym_block, - [15006] = 2, + ACTIONS(1118), 2, + anon_sym_COMMA, + anon_sym_RPAREN2, + [17987] = 3, + ACTIONS(1120), 1, + anon_sym_DQUOTE, + ACTIONS(1122), 1, + sym__string_literal_content, + ACTIONS(5), 2, + sym_docstring, + sym_comment, + [17998] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(461), 3, + ACTIONS(1124), 2, anon_sym_COMMA, - anon_sym_GT, - sym_attribute_access_operator, - [15015] = 4, + anon_sym_RPAREN2, + [18009] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(692), 1, + ACTIONS(1003), 1, + anon_sym_DOT, + ACTIONS(1126), 1, + anon_sym_COLON, + [18022] = 3, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(1128), 2, anon_sym_COMMA, - ACTIONS(1065), 1, - anon_sym_RBRACK, - STATE(389), 1, - aux_sym_array_literal_repeat1, - [15028] = 4, + anon_sym_RPAREN2, + [18033] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(782), 1, + ACTIONS(530), 1, anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(293), 1, + STATE(88), 1, sym_block, - [15041] = 4, + [18046] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(782), 1, + ACTIONS(880), 1, anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(294), 1, + STATE(281), 1, sym_block, - [15054] = 4, + [18059] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(782), 1, - anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(295), 1, - sym_block, - [15067] = 4, + ACTIONS(1130), 2, + anon_sym_COMMA, + anon_sym_RPAREN2, + [18070] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(782), 1, - anon_sym_LBRACE, - STATE(6), 1, - sym__lcb_symbol, - STATE(296), 1, - sym_block, - [15080] = 4, + ACTIONS(69), 1, + anon_sym_DQUOTE, + STATE(461), 1, + sym_string_literal, + [18083] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(359), 1, + ACTIONS(864), 1, anon_sym_LBRACE, - STATE(9), 1, - sym__lcb_symbol, - STATE(61), 1, + STATE(351), 1, sym_block, - [15093] = 4, + [18096] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(359), 1, + ACTIONS(864), 1, anon_sym_LBRACE, - STATE(9), 1, - sym__lcb_symbol, - STATE(65), 1, + STATE(352), 1, sym_block, - [15106] = 4, + [18109] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(359), 1, - anon_sym_LBRACE, - STATE(9), 1, - sym__lcb_symbol, - STATE(63), 1, - sym_block, - [15119] = 4, + ACTIONS(1132), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [18120] = 4, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(1134), 1, + anon_sym_SEMI, + ACTIONS(1136), 1, + anon_sym_EQ, + [18133] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(359), 1, + ACTIONS(864), 1, anon_sym_LBRACE, - STATE(9), 1, - sym__lcb_symbol, - STATE(60), 1, + STATE(356), 1, sym_block, - [15132] = 4, + [18146] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, - anon_sym_LPAREN, - STATE(92), 1, - sym__lrb_symbol, - STATE(206), 1, - sym_argument_list, - [15145] = 3, + ACTIONS(69), 1, + anon_sym_DQUOTE, + STATE(445), 1, + sym_string_literal, + [18159] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1067), 1, - sym_attribute_access_operator, - ACTIONS(858), 2, - anon_sym_COMMA, - anon_sym_GT, - [15156] = 4, + ACTIONS(987), 1, + anon_sym_COLON_COLON, + ACTIONS(1138), 1, + anon_sym_DOT, + [18172] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(772), 1, + ACTIONS(993), 1, + anon_sym_COLON_COLON, + ACTIONS(1140), 1, anon_sym_DASH_GT, - ACTIONS(1069), 1, - anon_sym_SEMI, - STATE(140), 1, - sym_rightarrow_operator, - [15169] = 4, + [18185] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(860), 1, - sym_attribute_access_operator, - ACTIONS(1071), 1, - anon_sym_COLON, - STATE(37), 1, - sym__typedef_symbol, - [15182] = 3, + ACTIONS(864), 1, + anon_sym_LBRACE, + STATE(358), 1, + sym_block, + [18198] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1073), 1, - anon_sym_DASH_GT, - ACTIONS(862), 2, - anon_sym_COMMA, - anon_sym_GT, - [15193] = 4, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(338), 1, + sym_argument_list, + [18211] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(708), 1, - anon_sym_RBRACK, - ACTIONS(1075), 1, - anon_sym_COMMA, - STATE(389), 1, - aux_sym_array_literal_repeat1, - [15206] = 2, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(390), 1, + sym_argument_list, + [18224] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(467), 3, - anon_sym_COMMA, - anon_sym_GT, - sym_attribute_access_operator, - [15215] = 4, + ACTIONS(880), 1, + anon_sym_LBRACE, + STATE(285), 1, + sym_block, + [18237] = 3, + ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, + sym_comment, + ACTIONS(1142), 2, + anon_sym_SEMI, + anon_sym_COLON_COLON2, + [18248] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(950), 1, + ACTIONS(948), 1, anon_sym_LPAREN, - STATE(92), 1, - sym__lrb_symbol, - STATE(332), 1, + STATE(260), 1, sym_argument_list, - [15228] = 4, + [18261] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1078), 1, - anon_sym_COMMA, - ACTIONS(1081), 1, - anon_sym_RPAREN, - STATE(392), 1, - aux_sym_function_call_expression_repeat1, - [15241] = 2, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(426), 1, + sym_argument_list, + [18274] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1083), 2, - anon_sym_COMMA, - anon_sym_GT, - [15249] = 3, + ACTIONS(880), 1, + anon_sym_LBRACE, + STATE(288), 1, + sym_block, + [18287] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1085), 1, - anon_sym_SEMI, - ACTIONS(1087), 1, - anon_sym_RBRACK, - [15259] = 3, + ACTIONS(530), 1, + anon_sym_LBRACE, + STATE(87), 1, + sym_block, + [18300] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(860), 1, - sym_attribute_access_operator, - ACTIONS(1089), 1, - anon_sym_RBRACK, - [15269] = 3, + ACTIONS(948), 1, + anon_sym_LPAREN, + STATE(363), 1, + sym_argument_list, + [18313] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1091), 1, - anon_sym_COLON, - STATE(147), 1, - sym__typedef_symbol, - [15279] = 2, + ACTIONS(1144), 1, + anon_sym_SEMI, + ACTIONS(1146), 1, + anon_sym_DASH_GT, + [18326] = 4, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1093), 2, - anon_sym_COMMA, - anon_sym_GT, - [15287] = 3, + ACTIONS(1003), 1, + anon_sym_DOT, + ACTIONS(1148), 1, + anon_sym_COLON, + [18339] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(69), 1, - anon_sym_DQUOTE, - STATE(414), 1, - sym_string_literal, - [15297] = 3, + ACTIONS(692), 1, + anon_sym_COLON_COLON, + [18349] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1095), 1, + ACTIONS(1150), 1, anon_sym_SEMI, - STATE(77), 1, - sym__terminal_symbol, - [15307] = 2, + [18359] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1097), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15315] = 3, + ACTIONS(1152), 1, + anon_sym_LBRACE, + [18369] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1099), 1, + ACTIONS(1154), 1, anon_sym_COLON, - STATE(152), 1, - sym__typedef_symbol, - [15325] = 2, + [18379] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(357), 2, - sym_expand_operator, - sym_attribute_access_operator, - [15333] = 3, + ACTIONS(1156), 1, + anon_sym_EQ, + [18389] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1101), 1, - anon_sym_SEMI, - STATE(265), 1, - sym__terminal_symbol, - [15343] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1103), 1, - anon_sym_SEMI, - STATE(263), 1, - sym__terminal_symbol, - [15353] = 3, + ACTIONS(1158), 1, + anon_sym_SQUOTE, + [18399] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1105), 1, + ACTIONS(1160), 1, anon_sym_SEMI, - STATE(258), 1, - sym__terminal_symbol, - [15363] = 3, + [18409] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1107), 1, - anon_sym_LBRACE, - STATE(230), 1, - sym__lcb_symbol, - [15373] = 2, + ACTIONS(698), 1, + anon_sym_COLON_COLON, + [18419] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1109), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [15381] = 3, + ACTIONS(1162), 1, + anon_sym_COLON, + [18429] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1111), 1, + ACTIONS(1164), 1, anon_sym_COLON, - STATE(139), 1, - sym__typedef_symbol, - [15391] = 2, + [18439] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1113), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15399] = 3, + ACTIONS(1166), 1, + anon_sym_DQUOTE, + [18449] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1115), 1, - anon_sym_COLON, - STATE(148), 1, - sym__typedef_symbol, - [15409] = 2, + ACTIONS(1168), 1, + anon_sym_SEMI, + [18459] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1117), 2, + ACTIONS(1170), 1, anon_sym_SEMI, - sym_expand_operator, - [15417] = 3, + [18469] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1119), 1, + ACTIONS(1172), 1, anon_sym_SEMI, - STATE(70), 1, - sym__terminal_symbol, - [15427] = 3, + [18479] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1121), 1, + ACTIONS(1174), 1, anon_sym_LBRACE, - STATE(212), 1, - sym__lcb_symbol, - [15437] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1123), 1, - anon_sym_SEMI, - STATE(264), 1, - sym__terminal_symbol, - [15447] = 3, + [18489] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(69), 1, - anon_sym_DQUOTE, - STATE(403), 1, - sym_string_literal, - [15457] = 3, + ACTIONS(1176), 1, + anon_sym_RPAREN2, + [18499] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1125), 1, + ACTIONS(1178), 1, anon_sym_SEMI, - STATE(266), 1, - sym__terminal_symbol, - [15467] = 3, + [18509] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1127), 1, - anon_sym_SEMI, - STATE(250), 1, - sym__terminal_symbol, - [15477] = 3, + ACTIONS(874), 1, + anon_sym_if, + [18519] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1129), 1, - anon_sym_COLON, - STATE(155), 1, - sym__typedef_symbol, - [15487] = 3, + ACTIONS(1180), 1, + ts_builtin_sym_end, + [18529] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1131), 1, + ACTIONS(1182), 1, anon_sym_COLON, - STATE(142), 1, - sym__typedef_symbol, - [15497] = 2, + [18539] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1133), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15505] = 3, + ACTIONS(1184), 1, + anon_sym_from, + [18549] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1135), 1, + ACTIONS(1186), 1, anon_sym_SEMI, - STATE(262), 1, - sym__terminal_symbol, - [15515] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1137), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15523] = 3, + [18559] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1139), 1, - anon_sym_LBRACE, - STATE(311), 1, - sym__lcb_symbol, - [15533] = 2, + ACTIONS(1188), 1, + anon_sym_SEMI, + [18569] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1141), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15541] = 3, - ACTIONS(1143), 1, - anon_sym_DQUOTE, - ACTIONS(1145), 1, - sym__string_literal_content, - ACTIONS(1147), 1, - sym_comment, - [15551] = 2, + ACTIONS(1190), 1, + anon_sym_SQUOTE, + [18579] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1149), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [15559] = 2, + ACTIONS(1192), 1, + anon_sym_LBRACE, + [18589] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1151), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15567] = 3, + ACTIONS(1194), 1, + anon_sym_SEMI, + [18599] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1153), 1, - anon_sym_COLON, - STATE(151), 1, - sym__typedef_symbol, - [15577] = 3, + ACTIONS(1196), 1, + aux_sym_number_literal_token1, + [18609] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(7), 1, - anon_sym_fn, - STATE(286), 1, - sym_function_keyword, - [15587] = 2, + ACTIONS(1198), 1, + anon_sym_EQ, + [18619] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1089), 1, - anon_sym_RBRACK, - [15594] = 2, + ACTIONS(1200), 1, + anon_sym_SQUOTE, + [18629] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1155), 1, - sym_assign_operator, - [15601] = 2, + ACTIONS(1202), 1, + anon_sym_COLON, + [18639] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1157), 1, - aux_sym_number_literal_token1, - [15608] = 2, + ACTIONS(1204), 1, + anon_sym_EQ, + [18649] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1159), 1, - anon_sym_from, - [15615] = 2, + ACTIONS(1206), 1, + anon_sym_SEMI, + [18659] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1161), 1, - anon_sym_LPAREN, - [15622] = 2, + ACTIONS(1208), 1, + anon_sym_SEMI, + [18669] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1163), 1, - anon_sym_LPAREN, - [15629] = 2, + ACTIONS(1106), 1, + anon_sym_RBRACK, + [18679] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1165), 1, - sym_assign_operator, - [15636] = 2, + ACTIONS(683), 1, + anon_sym_COLON_COLON, + [18689] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1167), 1, - sym_assign_operator, - [15643] = 2, + ACTIONS(1210), 1, + anon_sym_from, + [18699] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1169), 1, - ts_builtin_sym_end, - [15650] = 2, + ACTIONS(1212), 1, + anon_sym_COLON, + [18709] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1171), 1, - anon_sym_LPAREN, - [15657] = 2, + ACTIONS(1214), 1, + anon_sym_EQ, + [18719] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1173), 1, - anon_sym_from, - [15664] = 2, + ACTIONS(1216), 1, + anon_sym_SQUOTE, + [18729] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1175), 1, - anon_sym_SEMI, - [15671] = 2, + ACTIONS(1218), 1, + anon_sym_fn, + [18739] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1177), 1, - sym_assign_operator, - [15678] = 2, + ACTIONS(1220), 1, + anon_sym_COLON, + [18749] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1179), 1, - anon_sym_SEMI, - [15685] = 2, + ACTIONS(1222), 1, + anon_sym_SQUOTE, + [18759] = 3, ACTIONS(3), 1, + sym_docstring, + ACTIONS(5), 1, sym_comment, - ACTIONS(1181), 1, + ACTIONS(1224), 1, anon_sym_SEMI, - [15692] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1183), 1, - anon_sym_DQUOTE, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(12)] = 0, - [SMALL_STATE(13)] = 99, - [SMALL_STATE(14)] = 195, - [SMALL_STATE(15)] = 291, - [SMALL_STATE(16)] = 384, - [SMALL_STATE(17)] = 477, - [SMALL_STATE(18)] = 570, - [SMALL_STATE(19)] = 663, - [SMALL_STATE(20)] = 756, - [SMALL_STATE(21)] = 849, - [SMALL_STATE(22)] = 942, - [SMALL_STATE(23)] = 1035, - [SMALL_STATE(24)] = 1128, - [SMALL_STATE(25)] = 1221, - [SMALL_STATE(26)] = 1314, - [SMALL_STATE(27)] = 1407, - [SMALL_STATE(28)] = 1500, - [SMALL_STATE(29)] = 1593, - [SMALL_STATE(30)] = 1686, - [SMALL_STATE(31)] = 1779, - [SMALL_STATE(32)] = 1872, - [SMALL_STATE(33)] = 1965, - [SMALL_STATE(34)] = 2058, - [SMALL_STATE(35)] = 2151, - [SMALL_STATE(36)] = 2244, - [SMALL_STATE(37)] = 2337, - [SMALL_STATE(38)] = 2430, - [SMALL_STATE(39)] = 2523, - [SMALL_STATE(40)] = 2616, - [SMALL_STATE(41)] = 2709, - [SMALL_STATE(42)] = 2802, - [SMALL_STATE(43)] = 2895, - [SMALL_STATE(44)] = 2990, - [SMALL_STATE(45)] = 3083, - [SMALL_STATE(46)] = 3176, - [SMALL_STATE(47)] = 3269, - [SMALL_STATE(48)] = 3362, - [SMALL_STATE(49)] = 3455, - [SMALL_STATE(50)] = 3548, - [SMALL_STATE(51)] = 3641, - [SMALL_STATE(52)] = 3734, - [SMALL_STATE(53)] = 3827, - [SMALL_STATE(54)] = 3920, - [SMALL_STATE(55)] = 4013, - [SMALL_STATE(56)] = 4106, - [SMALL_STATE(57)] = 4199, - [SMALL_STATE(58)] = 4254, - [SMALL_STATE(59)] = 4309, - [SMALL_STATE(60)] = 4362, - [SMALL_STATE(61)] = 4410, - [SMALL_STATE(62)] = 4458, - [SMALL_STATE(63)] = 4506, - [SMALL_STATE(64)] = 4554, - [SMALL_STATE(65)] = 4602, - [SMALL_STATE(66)] = 4650, - [SMALL_STATE(67)] = 4698, - [SMALL_STATE(68)] = 4799, - [SMALL_STATE(69)] = 4900, - [SMALL_STATE(70)] = 5001, - [SMALL_STATE(71)] = 5047, - [SMALL_STATE(72)] = 5093, - [SMALL_STATE(73)] = 5139, - [SMALL_STATE(74)] = 5185, - [SMALL_STATE(75)] = 5231, - [SMALL_STATE(76)] = 5277, - [SMALL_STATE(77)] = 5323, - [SMALL_STATE(78)] = 5369, - [SMALL_STATE(79)] = 5415, - [SMALL_STATE(80)] = 5461, - [SMALL_STATE(81)] = 5507, - [SMALL_STATE(82)] = 5553, - [SMALL_STATE(83)] = 5599, - [SMALL_STATE(84)] = 5645, - [SMALL_STATE(85)] = 5691, - [SMALL_STATE(86)] = 5737, - [SMALL_STATE(87)] = 5783, - [SMALL_STATE(88)] = 5829, - [SMALL_STATE(89)] = 5875, - [SMALL_STATE(90)] = 5921, - [SMALL_STATE(91)] = 5967, - [SMALL_STATE(92)] = 6013, - [SMALL_STATE(93)] = 6081, - [SMALL_STATE(94)] = 6130, - [SMALL_STATE(95)] = 6177, - [SMALL_STATE(96)] = 6219, - [SMALL_STATE(97)] = 6281, - [SMALL_STATE(98)] = 6323, - [SMALL_STATE(99)] = 6365, - [SMALL_STATE(100)] = 6407, - [SMALL_STATE(101)] = 6454, - [SMALL_STATE(102)] = 6495, - [SMALL_STATE(103)] = 6536, - [SMALL_STATE(104)] = 6574, - [SMALL_STATE(105)] = 6612, - [SMALL_STATE(106)] = 6650, - [SMALL_STATE(107)] = 6688, - [SMALL_STATE(108)] = 6726, - [SMALL_STATE(109)] = 6764, - [SMALL_STATE(110)] = 6802, - [SMALL_STATE(111)] = 6840, - [SMALL_STATE(112)] = 6878, - [SMALL_STATE(113)] = 6916, - [SMALL_STATE(114)] = 6954, - [SMALL_STATE(115)] = 6992, - [SMALL_STATE(116)] = 7030, - [SMALL_STATE(117)] = 7068, - [SMALL_STATE(118)] = 7112, - [SMALL_STATE(119)] = 7150, - [SMALL_STATE(120)] = 7188, - [SMALL_STATE(121)] = 7226, - [SMALL_STATE(122)] = 7264, - [SMALL_STATE(123)] = 7302, - [SMALL_STATE(124)] = 7342, - [SMALL_STATE(125)] = 7380, - [SMALL_STATE(126)] = 7424, - [SMALL_STATE(127)] = 7462, - [SMALL_STATE(128)] = 7500, - [SMALL_STATE(129)] = 7554, - [SMALL_STATE(130)] = 7596, - [SMALL_STATE(131)] = 7662, - [SMALL_STATE(132)] = 7730, - [SMALL_STATE(133)] = 7782, - [SMALL_STATE(134)] = 7844, - [SMALL_STATE(135)] = 7910, - [SMALL_STATE(136)] = 7974, - [SMALL_STATE(137)] = 8028, - [SMALL_STATE(138)] = 8088, - [SMALL_STATE(139)] = 8138, - [SMALL_STATE(140)] = 8188, - [SMALL_STATE(141)] = 8238, - [SMALL_STATE(142)] = 8288, - [SMALL_STATE(143)] = 8338, - [SMALL_STATE(144)] = 8388, - [SMALL_STATE(145)] = 8438, - [SMALL_STATE(146)] = 8516, - [SMALL_STATE(147)] = 8566, - [SMALL_STATE(148)] = 8616, - [SMALL_STATE(149)] = 8666, - [SMALL_STATE(150)] = 8708, - [SMALL_STATE(151)] = 8758, - [SMALL_STATE(152)] = 8808, - [SMALL_STATE(153)] = 8858, - [SMALL_STATE(154)] = 8908, - [SMALL_STATE(155)] = 8958, - [SMALL_STATE(156)] = 9008, - [SMALL_STATE(157)] = 9056, - [SMALL_STATE(158)] = 9100, - [SMALL_STATE(159)] = 9148, - [SMALL_STATE(160)] = 9192, - [SMALL_STATE(161)] = 9234, - [SMALL_STATE(162)] = 9300, - [SMALL_STATE(163)] = 9368, - [SMALL_STATE(164)] = 9420, - [SMALL_STATE(165)] = 9482, - [SMALL_STATE(166)] = 9548, - [SMALL_STATE(167)] = 9612, - [SMALL_STATE(168)] = 9662, - [SMALL_STATE(169)] = 9722, - [SMALL_STATE(170)] = 9772, - [SMALL_STATE(171)] = 9822, - [SMALL_STATE(172)] = 9872, - [SMALL_STATE(173)] = 9922, - [SMALL_STATE(174)] = 9964, - [SMALL_STATE(175)] = 10014, - [SMALL_STATE(176)] = 10051, - [SMALL_STATE(177)] = 10088, - [SMALL_STATE(178)] = 10160, - [SMALL_STATE(179)] = 10198, - [SMALL_STATE(180)] = 10270, - [SMALL_STATE(181)] = 10308, - [SMALL_STATE(182)] = 10380, - [SMALL_STATE(183)] = 10452, - [SMALL_STATE(184)] = 10524, - [SMALL_STATE(185)] = 10591, - [SMALL_STATE(186)] = 10660, - [SMALL_STATE(187)] = 10729, - [SMALL_STATE(188)] = 10798, - [SMALL_STATE(189)] = 10865, - [SMALL_STATE(190)] = 10934, - [SMALL_STATE(191)] = 11003, - [SMALL_STATE(192)] = 11072, - [SMALL_STATE(193)] = 11113, - [SMALL_STATE(194)] = 11182, - [SMALL_STATE(195)] = 11249, - [SMALL_STATE(196)] = 11318, - [SMALL_STATE(197)] = 11385, - [SMALL_STATE(198)] = 11417, - [SMALL_STATE(199)] = 11483, - [SMALL_STATE(200)] = 11515, - [SMALL_STATE(201)] = 11547, - [SMALL_STATE(202)] = 11610, - [SMALL_STATE(203)] = 11645, - [SMALL_STATE(204)] = 11676, - [SMALL_STATE(205)] = 11722, - [SMALL_STATE(206)] = 11768, - [SMALL_STATE(207)] = 11816, - [SMALL_STATE(208)] = 11864, - [SMALL_STATE(209)] = 11912, - [SMALL_STATE(210)] = 11960, - [SMALL_STATE(211)] = 11985, - [SMALL_STATE(212)] = 12026, - [SMALL_STATE(213)] = 12067, - [SMALL_STATE(214)] = 12109, - [SMALL_STATE(215)] = 12151, - [SMALL_STATE(216)] = 12193, - [SMALL_STATE(217)] = 12235, - [SMALL_STATE(218)] = 12273, - [SMALL_STATE(219)] = 12297, - [SMALL_STATE(220)] = 12339, - [SMALL_STATE(221)] = 12381, - [SMALL_STATE(222)] = 12408, - [SMALL_STATE(223)] = 12437, - [SMALL_STATE(224)] = 12457, - [SMALL_STATE(225)] = 12479, - [SMALL_STATE(226)] = 12499, - [SMALL_STATE(227)] = 12521, - [SMALL_STATE(228)] = 12541, - [SMALL_STATE(229)] = 12573, - [SMALL_STATE(230)] = 12592, - [SMALL_STATE(231)] = 12629, - [SMALL_STATE(232)] = 12648, - [SMALL_STATE(233)] = 12685, - [SMALL_STATE(234)] = 12714, - [SMALL_STATE(235)] = 12733, - [SMALL_STATE(236)] = 12752, - [SMALL_STATE(237)] = 12786, - [SMALL_STATE(238)] = 12806, - [SMALL_STATE(239)] = 12825, - [SMALL_STATE(240)] = 12848, - [SMALL_STATE(241)] = 12864, - [SMALL_STATE(242)] = 12880, - [SMALL_STATE(243)] = 12896, - [SMALL_STATE(244)] = 12912, - [SMALL_STATE(245)] = 12928, - [SMALL_STATE(246)] = 12944, - [SMALL_STATE(247)] = 12960, - [SMALL_STATE(248)] = 12976, - [SMALL_STATE(249)] = 12992, - [SMALL_STATE(250)] = 13008, - [SMALL_STATE(251)] = 13024, - [SMALL_STATE(252)] = 13040, - [SMALL_STATE(253)] = 13056, - [SMALL_STATE(254)] = 13072, - [SMALL_STATE(255)] = 13088, - [SMALL_STATE(256)] = 13104, - [SMALL_STATE(257)] = 13120, - [SMALL_STATE(258)] = 13136, - [SMALL_STATE(259)] = 13151, - [SMALL_STATE(260)] = 13166, - [SMALL_STATE(261)] = 13181, - [SMALL_STATE(262)] = 13196, - [SMALL_STATE(263)] = 13211, - [SMALL_STATE(264)] = 13226, - [SMALL_STATE(265)] = 13241, - [SMALL_STATE(266)] = 13256, - [SMALL_STATE(267)] = 13271, - [SMALL_STATE(268)] = 13286, - [SMALL_STATE(269)] = 13308, - [SMALL_STATE(270)] = 13328, - [SMALL_STATE(271)] = 13348, - [SMALL_STATE(272)] = 13372, - [SMALL_STATE(273)] = 13392, - [SMALL_STATE(274)] = 13414, - [SMALL_STATE(275)] = 13434, - [SMALL_STATE(276)] = 13454, - [SMALL_STATE(277)] = 13476, - [SMALL_STATE(278)] = 13496, - [SMALL_STATE(279)] = 13516, - [SMALL_STATE(280)] = 13536, - [SMALL_STATE(281)] = 13555, - [SMALL_STATE(282)] = 13574, - [SMALL_STATE(283)] = 13592, - [SMALL_STATE(284)] = 13612, - [SMALL_STATE(285)] = 13628, - [SMALL_STATE(286)] = 13642, - [SMALL_STATE(287)] = 13658, - [SMALL_STATE(288)] = 13680, - [SMALL_STATE(289)] = 13694, - [SMALL_STATE(290)] = 13710, - [SMALL_STATE(291)] = 13724, - [SMALL_STATE(292)] = 13738, - [SMALL_STATE(293)] = 13752, - [SMALL_STATE(294)] = 13766, - [SMALL_STATE(295)] = 13780, - [SMALL_STATE(296)] = 13794, - [SMALL_STATE(297)] = 13808, - [SMALL_STATE(298)] = 13822, - [SMALL_STATE(299)] = 13844, - [SMALL_STATE(300)] = 13860, - [SMALL_STATE(301)] = 13874, - [SMALL_STATE(302)] = 13890, - [SMALL_STATE(303)] = 13906, - [SMALL_STATE(304)] = 13922, - [SMALL_STATE(305)] = 13938, - [SMALL_STATE(306)] = 13954, - [SMALL_STATE(307)] = 13970, - [SMALL_STATE(308)] = 13988, - [SMALL_STATE(309)] = 14002, - [SMALL_STATE(310)] = 14024, - [SMALL_STATE(311)] = 14040, - [SMALL_STATE(312)] = 14056, - [SMALL_STATE(313)] = 14072, - [SMALL_STATE(314)] = 14088, - [SMALL_STATE(315)] = 14104, - [SMALL_STATE(316)] = 14120, - [SMALL_STATE(317)] = 14136, - [SMALL_STATE(318)] = 14152, - [SMALL_STATE(319)] = 14168, - [SMALL_STATE(320)] = 14184, - [SMALL_STATE(321)] = 14203, - [SMALL_STATE(322)] = 14222, - [SMALL_STATE(323)] = 14241, - [SMALL_STATE(324)] = 14260, - [SMALL_STATE(325)] = 14275, - [SMALL_STATE(326)] = 14294, - [SMALL_STATE(327)] = 14313, - [SMALL_STATE(328)] = 14332, - [SMALL_STATE(329)] = 14351, - [SMALL_STATE(330)] = 14370, - [SMALL_STATE(331)] = 14389, - [SMALL_STATE(332)] = 14408, - [SMALL_STATE(333)] = 14421, - [SMALL_STATE(334)] = 14440, - [SMALL_STATE(335)] = 14459, - [SMALL_STATE(336)] = 14475, - [SMALL_STATE(337)] = 14491, - [SMALL_STATE(338)] = 14507, - [SMALL_STATE(339)] = 14523, - [SMALL_STATE(340)] = 14539, - [SMALL_STATE(341)] = 14555, - [SMALL_STATE(342)] = 14571, - [SMALL_STATE(343)] = 14587, - [SMALL_STATE(344)] = 14603, - [SMALL_STATE(345)] = 14613, - [SMALL_STATE(346)] = 14629, - [SMALL_STATE(347)] = 14645, - [SMALL_STATE(348)] = 14661, - [SMALL_STATE(349)] = 14677, - [SMALL_STATE(350)] = 14693, - [SMALL_STATE(351)] = 14709, - [SMALL_STATE(352)] = 14721, - [SMALL_STATE(353)] = 14737, - [SMALL_STATE(354)] = 14750, - [SMALL_STATE(355)] = 14763, - [SMALL_STATE(356)] = 14772, - [SMALL_STATE(357)] = 14785, - [SMALL_STATE(358)] = 14798, - [SMALL_STATE(359)] = 14811, - [SMALL_STATE(360)] = 14824, - [SMALL_STATE(361)] = 14837, - [SMALL_STATE(362)] = 14850, - [SMALL_STATE(363)] = 14863, - [SMALL_STATE(364)] = 14876, - [SMALL_STATE(365)] = 14889, - [SMALL_STATE(366)] = 14902, - [SMALL_STATE(367)] = 14915, - [SMALL_STATE(368)] = 14928, - [SMALL_STATE(369)] = 14941, - [SMALL_STATE(370)] = 14954, - [SMALL_STATE(371)] = 14967, - [SMALL_STATE(372)] = 14980, - [SMALL_STATE(373)] = 14993, - [SMALL_STATE(374)] = 15006, - [SMALL_STATE(375)] = 15015, - [SMALL_STATE(376)] = 15028, - [SMALL_STATE(377)] = 15041, - [SMALL_STATE(378)] = 15054, - [SMALL_STATE(379)] = 15067, - [SMALL_STATE(380)] = 15080, - [SMALL_STATE(381)] = 15093, - [SMALL_STATE(382)] = 15106, - [SMALL_STATE(383)] = 15119, - [SMALL_STATE(384)] = 15132, - [SMALL_STATE(385)] = 15145, - [SMALL_STATE(386)] = 15156, - [SMALL_STATE(387)] = 15169, - [SMALL_STATE(388)] = 15182, - [SMALL_STATE(389)] = 15193, - [SMALL_STATE(390)] = 15206, - [SMALL_STATE(391)] = 15215, - [SMALL_STATE(392)] = 15228, - [SMALL_STATE(393)] = 15241, - [SMALL_STATE(394)] = 15249, - [SMALL_STATE(395)] = 15259, - [SMALL_STATE(396)] = 15269, - [SMALL_STATE(397)] = 15279, - [SMALL_STATE(398)] = 15287, - [SMALL_STATE(399)] = 15297, - [SMALL_STATE(400)] = 15307, - [SMALL_STATE(401)] = 15315, - [SMALL_STATE(402)] = 15325, - [SMALL_STATE(403)] = 15333, - [SMALL_STATE(404)] = 15343, - [SMALL_STATE(405)] = 15353, - [SMALL_STATE(406)] = 15363, - [SMALL_STATE(407)] = 15373, - [SMALL_STATE(408)] = 15381, - [SMALL_STATE(409)] = 15391, - [SMALL_STATE(410)] = 15399, - [SMALL_STATE(411)] = 15409, - [SMALL_STATE(412)] = 15417, - [SMALL_STATE(413)] = 15427, - [SMALL_STATE(414)] = 15437, - [SMALL_STATE(415)] = 15447, - [SMALL_STATE(416)] = 15457, - [SMALL_STATE(417)] = 15467, - [SMALL_STATE(418)] = 15477, - [SMALL_STATE(419)] = 15487, - [SMALL_STATE(420)] = 15497, - [SMALL_STATE(421)] = 15505, - [SMALL_STATE(422)] = 15515, - [SMALL_STATE(423)] = 15523, - [SMALL_STATE(424)] = 15533, - [SMALL_STATE(425)] = 15541, - [SMALL_STATE(426)] = 15551, - [SMALL_STATE(427)] = 15559, - [SMALL_STATE(428)] = 15567, - [SMALL_STATE(429)] = 15577, - [SMALL_STATE(430)] = 15587, - [SMALL_STATE(431)] = 15594, - [SMALL_STATE(432)] = 15601, - [SMALL_STATE(433)] = 15608, - [SMALL_STATE(434)] = 15615, - [SMALL_STATE(435)] = 15622, - [SMALL_STATE(436)] = 15629, - [SMALL_STATE(437)] = 15636, - [SMALL_STATE(438)] = 15643, - [SMALL_STATE(439)] = 15650, - [SMALL_STATE(440)] = 15657, - [SMALL_STATE(441)] = 15664, - [SMALL_STATE(442)] = 15671, - [SMALL_STATE(443)] = 15678, - [SMALL_STATE(444)] = 15685, - [SMALL_STATE(445)] = 15692, + [SMALL_STATE(11)] = 0, + [SMALL_STATE(12)] = 122, + [SMALL_STATE(13)] = 212, + [SMALL_STATE(14)] = 301, + [SMALL_STATE(15)] = 390, + [SMALL_STATE(16)] = 477, + [SMALL_STATE(17)] = 563, + [SMALL_STATE(18)] = 649, + [SMALL_STATE(19)] = 734, + [SMALL_STATE(20)] = 818, + [SMALL_STATE(21)] = 901, + [SMALL_STATE(22)] = 1003, + [SMALL_STATE(23)] = 1107, + [SMALL_STATE(24)] = 1209, + [SMALL_STATE(25)] = 1311, + [SMALL_STATE(26)] = 1410, + [SMALL_STATE(27)] = 1509, + [SMALL_STATE(28)] = 1608, + [SMALL_STATE(29)] = 1707, + [SMALL_STATE(30)] = 1806, + [SMALL_STATE(31)] = 1905, + [SMALL_STATE(32)] = 2004, + [SMALL_STATE(33)] = 2103, + [SMALL_STATE(34)] = 2202, + [SMALL_STATE(35)] = 2301, + [SMALL_STATE(36)] = 2400, + [SMALL_STATE(37)] = 2499, + [SMALL_STATE(38)] = 2598, + [SMALL_STATE(39)] = 2697, + [SMALL_STATE(40)] = 2796, + [SMALL_STATE(41)] = 2895, + [SMALL_STATE(42)] = 2994, + [SMALL_STATE(43)] = 3093, + [SMALL_STATE(44)] = 3192, + [SMALL_STATE(45)] = 3291, + [SMALL_STATE(46)] = 3390, + [SMALL_STATE(47)] = 3489, + [SMALL_STATE(48)] = 3588, + [SMALL_STATE(49)] = 3687, + [SMALL_STATE(50)] = 3786, + [SMALL_STATE(51)] = 3885, + [SMALL_STATE(52)] = 3984, + [SMALL_STATE(53)] = 4083, + [SMALL_STATE(54)] = 4182, + [SMALL_STATE(55)] = 4281, + [SMALL_STATE(56)] = 4380, + [SMALL_STATE(57)] = 4479, + [SMALL_STATE(58)] = 4578, + [SMALL_STATE(59)] = 4677, + [SMALL_STATE(60)] = 4776, + [SMALL_STATE(61)] = 4875, + [SMALL_STATE(62)] = 4974, + [SMALL_STATE(63)] = 5073, + [SMALL_STATE(64)] = 5172, + [SMALL_STATE(65)] = 5271, + [SMALL_STATE(66)] = 5370, + [SMALL_STATE(67)] = 5469, + [SMALL_STATE(68)] = 5568, + [SMALL_STATE(69)] = 5667, + [SMALL_STATE(70)] = 5766, + [SMALL_STATE(71)] = 5865, + [SMALL_STATE(72)] = 5964, + [SMALL_STATE(73)] = 6063, + [SMALL_STATE(74)] = 6162, + [SMALL_STATE(75)] = 6261, + [SMALL_STATE(76)] = 6360, + [SMALL_STATE(77)] = 6416, + [SMALL_STATE(78)] = 6471, + [SMALL_STATE(79)] = 6524, + [SMALL_STATE(80)] = 6576, + [SMALL_STATE(81)] = 6630, + [SMALL_STATE(82)] = 6684, + [SMALL_STATE(83)] = 6738, + [SMALL_STATE(84)] = 6787, + [SMALL_STATE(85)] = 6836, + [SMALL_STATE(86)] = 6905, + [SMALL_STATE(87)] = 6954, + [SMALL_STATE(88)] = 7003, + [SMALL_STATE(89)] = 7052, + [SMALL_STATE(90)] = 7101, + [SMALL_STATE(91)] = 7150, + [SMALL_STATE(92)] = 7198, + [SMALL_STATE(93)] = 7246, + [SMALL_STATE(94)] = 7294, + [SMALL_STATE(95)] = 7342, + [SMALL_STATE(96)] = 7390, + [SMALL_STATE(97)] = 7438, + [SMALL_STATE(98)] = 7486, + [SMALL_STATE(99)] = 7534, + [SMALL_STATE(100)] = 7582, + [SMALL_STATE(101)] = 7630, + [SMALL_STATE(102)] = 7700, + [SMALL_STATE(103)] = 7748, + [SMALL_STATE(104)] = 7796, + [SMALL_STATE(105)] = 7844, + [SMALL_STATE(106)] = 7892, + [SMALL_STATE(107)] = 7940, + [SMALL_STATE(108)] = 7988, + [SMALL_STATE(109)] = 8036, + [SMALL_STATE(110)] = 8084, + [SMALL_STATE(111)] = 8132, + [SMALL_STATE(112)] = 8180, + [SMALL_STATE(113)] = 8228, + [SMALL_STATE(114)] = 8298, + [SMALL_STATE(115)] = 8346, + [SMALL_STATE(116)] = 8394, + [SMALL_STATE(117)] = 8461, + [SMALL_STATE(118)] = 8530, + [SMALL_STATE(119)] = 8581, + [SMALL_STATE(120)] = 8631, + [SMALL_STATE(121)] = 8677, + [SMALL_STATE(122)] = 8727, + [SMALL_STATE(123)] = 8773, + [SMALL_STATE(124)] = 8841, + [SMALL_STATE(125)] = 8907, + [SMALL_STATE(126)] = 8972, + [SMALL_STATE(127)] = 9036, + [SMALL_STATE(128)] = 9098, + [SMALL_STATE(129)] = 9141, + [SMALL_STATE(130)] = 9183, + [SMALL_STATE(131)] = 9228, + [SMALL_STATE(132)] = 9269, + [SMALL_STATE(133)] = 9314, + [SMALL_STATE(134)] = 9361, + [SMALL_STATE(135)] = 9418, + [SMALL_STATE(136)] = 9472, + [SMALL_STATE(137)] = 9526, + [SMALL_STATE(138)] = 9580, + [SMALL_STATE(139)] = 9634, + [SMALL_STATE(140)] = 9688, + [SMALL_STATE(141)] = 9742, + [SMALL_STATE(142)] = 9796, + [SMALL_STATE(143)] = 9850, + [SMALL_STATE(144)] = 9924, + [SMALL_STATE(145)] = 9978, + [SMALL_STATE(146)] = 10052, + [SMALL_STATE(147)] = 10094, + [SMALL_STATE(148)] = 10148, + [SMALL_STATE(149)] = 10190, + [SMALL_STATE(150)] = 10244, + [SMALL_STATE(151)] = 10298, + [SMALL_STATE(152)] = 10372, + [SMALL_STATE(153)] = 10426, + [SMALL_STATE(154)] = 10480, + [SMALL_STATE(155)] = 10534, + [SMALL_STATE(156)] = 10588, + [SMALL_STATE(157)] = 10642, + [SMALL_STATE(158)] = 10696, + [SMALL_STATE(159)] = 10738, + [SMALL_STATE(160)] = 10778, + [SMALL_STATE(161)] = 10832, + [SMALL_STATE(162)] = 10886, + [SMALL_STATE(163)] = 10940, + [SMALL_STATE(164)] = 10979, + [SMALL_STATE(165)] = 11018, + [SMALL_STATE(166)] = 11057, + [SMALL_STATE(167)] = 11096, + [SMALL_STATE(168)] = 11135, + [SMALL_STATE(169)] = 11174, + [SMALL_STATE(170)] = 11213, + [SMALL_STATE(171)] = 11252, + [SMALL_STATE(172)] = 11291, + [SMALL_STATE(173)] = 11330, + [SMALL_STATE(174)] = 11369, + [SMALL_STATE(175)] = 11408, + [SMALL_STATE(176)] = 11447, + [SMALL_STATE(177)] = 11486, + [SMALL_STATE(178)] = 11525, + [SMALL_STATE(179)] = 11564, + [SMALL_STATE(180)] = 11603, + [SMALL_STATE(181)] = 11642, + [SMALL_STATE(182)] = 11684, + [SMALL_STATE(183)] = 11726, + [SMALL_STATE(184)] = 11765, + [SMALL_STATE(185)] = 11805, + [SMALL_STATE(186)] = 11843, + [SMALL_STATE(187)] = 11881, + [SMALL_STATE(188)] = 11918, + [SMALL_STATE(189)] = 11957, + [SMALL_STATE(190)] = 11993, + [SMALL_STATE(191)] = 12041, + [SMALL_STATE(192)] = 12093, + [SMALL_STATE(193)] = 12147, + [SMALL_STATE(194)] = 12185, + [SMALL_STATE(195)] = 12241, + [SMALL_STATE(196)] = 12291, + [SMALL_STATE(197)] = 12345, + [SMALL_STATE(198)] = 12387, + [SMALL_STATE(199)] = 12427, + [SMALL_STATE(200)] = 12463, + [SMALL_STATE(201)] = 12507, + [SMALL_STATE(202)] = 12546, + [SMALL_STATE(203)] = 12581, + [SMALL_STATE(204)] = 12634, + [SMALL_STATE(205)] = 12689, + [SMALL_STATE(206)] = 12738, + [SMALL_STATE(207)] = 12791, + [SMALL_STATE(208)] = 12842, + [SMALL_STATE(209)] = 12883, + [SMALL_STATE(210)] = 12922, + [SMALL_STATE(211)] = 12957, + [SMALL_STATE(212)] = 13000, + [SMALL_STATE(213)] = 13047, + [SMALL_STATE(214)] = 13089, + [SMALL_STATE(215)] = 13123, + [SMALL_STATE(216)] = 13175, + [SMALL_STATE(217)] = 13229, + [SMALL_STATE(218)] = 13277, + [SMALL_STATE(219)] = 13329, + [SMALL_STATE(220)] = 13379, + [SMALL_STATE(221)] = 13419, + [SMALL_STATE(222)] = 13457, + [SMALL_STATE(223)] = 13491, + [SMALL_STATE(224)] = 13537, + [SMALL_STATE(225)] = 13597, + [SMALL_STATE(226)] = 13657, + [SMALL_STATE(227)] = 13717, + [SMALL_STATE(228)] = 13777, + [SMALL_STATE(229)] = 13832, + [SMALL_STATE(230)] = 13887, + [SMALL_STATE(231)] = 13942, + [SMALL_STATE(232)] = 13997, + [SMALL_STATE(233)] = 14051, + [SMALL_STATE(234)] = 14097, + [SMALL_STATE(235)] = 14143, + [SMALL_STATE(236)] = 14197, + [SMALL_STATE(237)] = 14251, + [SMALL_STATE(238)] = 14305, + [SMALL_STATE(239)] = 14359, + [SMALL_STATE(240)] = 14413, + [SMALL_STATE(241)] = 14467, + [SMALL_STATE(242)] = 14521, + [SMALL_STATE(243)] = 14575, + [SMALL_STATE(244)] = 14629, + [SMALL_STATE(245)] = 14667, + [SMALL_STATE(246)] = 14705, + [SMALL_STATE(247)] = 14743, + [SMALL_STATE(248)] = 14778, + [SMALL_STATE(249)] = 14803, + [SMALL_STATE(250)] = 14828, + [SMALL_STATE(251)] = 14852, + [SMALL_STATE(252)] = 14874, + [SMALL_STATE(253)] = 14896, + [SMALL_STATE(254)] = 14918, + [SMALL_STATE(255)] = 14939, + [SMALL_STATE(256)] = 14960, + [SMALL_STATE(257)] = 14993, + [SMALL_STATE(258)] = 15026, + [SMALL_STATE(259)] = 15047, + [SMALL_STATE(260)] = 15080, + [SMALL_STATE(261)] = 15113, + [SMALL_STATE(262)] = 15142, + [SMALL_STATE(263)] = 15163, + [SMALL_STATE(264)] = 15196, + [SMALL_STATE(265)] = 15217, + [SMALL_STATE(266)] = 15250, + [SMALL_STATE(267)] = 15284, + [SMALL_STATE(268)] = 15318, + [SMALL_STATE(269)] = 15348, + [SMALL_STATE(270)] = 15374, + [SMALL_STATE(271)] = 15404, + [SMALL_STATE(272)] = 15434, + [SMALL_STATE(273)] = 15468, + [SMALL_STATE(274)] = 15498, + [SMALL_STATE(275)] = 15517, + [SMALL_STATE(276)] = 15536, + [SMALL_STATE(277)] = 15555, + [SMALL_STATE(278)] = 15574, + [SMALL_STATE(279)] = 15593, + [SMALL_STATE(280)] = 15612, + [SMALL_STATE(281)] = 15631, + [SMALL_STATE(282)] = 15650, + [SMALL_STATE(283)] = 15669, + [SMALL_STATE(284)] = 15688, + [SMALL_STATE(285)] = 15707, + [SMALL_STATE(286)] = 15726, + [SMALL_STATE(287)] = 15745, + [SMALL_STATE(288)] = 15764, + [SMALL_STATE(289)] = 15783, + [SMALL_STATE(290)] = 15802, + [SMALL_STATE(291)] = 15821, + [SMALL_STATE(292)] = 15840, + [SMALL_STATE(293)] = 15858, + [SMALL_STATE(294)] = 15876, + [SMALL_STATE(295)] = 15894, + [SMALL_STATE(296)] = 15912, + [SMALL_STATE(297)] = 15930, + [SMALL_STATE(298)] = 15948, + [SMALL_STATE(299)] = 15976, + [SMALL_STATE(300)] = 15994, + [SMALL_STATE(301)] = 16012, + [SMALL_STATE(302)] = 16030, + [SMALL_STATE(303)] = 16058, + [SMALL_STATE(304)] = 16076, + [SMALL_STATE(305)] = 16099, + [SMALL_STATE(306)] = 16124, + [SMALL_STATE(307)] = 16147, + [SMALL_STATE(308)] = 16172, + [SMALL_STATE(309)] = 16197, + [SMALL_STATE(310)] = 16220, + [SMALL_STATE(311)] = 16243, + [SMALL_STATE(312)] = 16266, + [SMALL_STATE(313)] = 16289, + [SMALL_STATE(314)] = 16312, + [SMALL_STATE(315)] = 16335, + [SMALL_STATE(316)] = 16358, + [SMALL_STATE(317)] = 16383, + [SMALL_STATE(318)] = 16406, + [SMALL_STATE(319)] = 16429, + [SMALL_STATE(320)] = 16452, + [SMALL_STATE(321)] = 16475, + [SMALL_STATE(322)] = 16498, + [SMALL_STATE(323)] = 16521, + [SMALL_STATE(324)] = 16544, + [SMALL_STATE(325)] = 16567, + [SMALL_STATE(326)] = 16589, + [SMALL_STATE(327)] = 16611, + [SMALL_STATE(328)] = 16633, + [SMALL_STATE(329)] = 16655, + [SMALL_STATE(330)] = 16677, + [SMALL_STATE(331)] = 16694, + [SMALL_STATE(332)] = 16713, + [SMALL_STATE(333)] = 16732, + [SMALL_STATE(334)] = 16751, + [SMALL_STATE(335)] = 16768, + [SMALL_STATE(336)] = 16785, + [SMALL_STATE(337)] = 16802, + [SMALL_STATE(338)] = 16821, + [SMALL_STATE(339)] = 16838, + [SMALL_STATE(340)] = 16857, + [SMALL_STATE(341)] = 16876, + [SMALL_STATE(342)] = 16895, + [SMALL_STATE(343)] = 16914, + [SMALL_STATE(344)] = 16933, + [SMALL_STATE(345)] = 16952, + [SMALL_STATE(346)] = 16971, + [SMALL_STATE(347)] = 16988, + [SMALL_STATE(348)] = 17007, + [SMALL_STATE(349)] = 17026, + [SMALL_STATE(350)] = 17043, + [SMALL_STATE(351)] = 17060, + [SMALL_STATE(352)] = 17077, + [SMALL_STATE(353)] = 17094, + [SMALL_STATE(354)] = 17113, + [SMALL_STATE(355)] = 17132, + [SMALL_STATE(356)] = 17149, + [SMALL_STATE(357)] = 17166, + [SMALL_STATE(358)] = 17185, + [SMALL_STATE(359)] = 17202, + [SMALL_STATE(360)] = 17221, + [SMALL_STATE(361)] = 17238, + [SMALL_STATE(362)] = 17257, + [SMALL_STATE(363)] = 17273, + [SMALL_STATE(364)] = 17289, + [SMALL_STATE(365)] = 17305, + [SMALL_STATE(366)] = 17324, + [SMALL_STATE(367)] = 17343, + [SMALL_STATE(368)] = 17359, + [SMALL_STATE(369)] = 17375, + [SMALL_STATE(370)] = 17391, + [SMALL_STATE(371)] = 17407, + [SMALL_STATE(372)] = 17423, + [SMALL_STATE(373)] = 17439, + [SMALL_STATE(374)] = 17453, + [SMALL_STATE(375)] = 17469, + [SMALL_STATE(376)] = 17485, + [SMALL_STATE(377)] = 17501, + [SMALL_STATE(378)] = 17517, + [SMALL_STATE(379)] = 17533, + [SMALL_STATE(380)] = 17549, + [SMALL_STATE(381)] = 17565, + [SMALL_STATE(382)] = 17581, + [SMALL_STATE(383)] = 17597, + [SMALL_STATE(384)] = 17613, + [SMALL_STATE(385)] = 17629, + [SMALL_STATE(386)] = 17645, + [SMALL_STATE(387)] = 17661, + [SMALL_STATE(388)] = 17677, + [SMALL_STATE(389)] = 17693, + [SMALL_STATE(390)] = 17709, + [SMALL_STATE(391)] = 17723, + [SMALL_STATE(392)] = 17739, + [SMALL_STATE(393)] = 17755, + [SMALL_STATE(394)] = 17771, + [SMALL_STATE(395)] = 17787, + [SMALL_STATE(396)] = 17800, + [SMALL_STATE(397)] = 17813, + [SMALL_STATE(398)] = 17826, + [SMALL_STATE(399)] = 17839, + [SMALL_STATE(400)] = 17852, + [SMALL_STATE(401)] = 17865, + [SMALL_STATE(402)] = 17878, + [SMALL_STATE(403)] = 17891, + [SMALL_STATE(404)] = 17904, + [SMALL_STATE(405)] = 17917, + [SMALL_STATE(406)] = 17930, + [SMALL_STATE(407)] = 17941, + [SMALL_STATE(408)] = 17952, + [SMALL_STATE(409)] = 17965, + [SMALL_STATE(410)] = 17976, + [SMALL_STATE(411)] = 17987, + [SMALL_STATE(412)] = 17998, + [SMALL_STATE(413)] = 18009, + [SMALL_STATE(414)] = 18022, + [SMALL_STATE(415)] = 18033, + [SMALL_STATE(416)] = 18046, + [SMALL_STATE(417)] = 18059, + [SMALL_STATE(418)] = 18070, + [SMALL_STATE(419)] = 18083, + [SMALL_STATE(420)] = 18096, + [SMALL_STATE(421)] = 18109, + [SMALL_STATE(422)] = 18120, + [SMALL_STATE(423)] = 18133, + [SMALL_STATE(424)] = 18146, + [SMALL_STATE(425)] = 18159, + [SMALL_STATE(426)] = 18172, + [SMALL_STATE(427)] = 18185, + [SMALL_STATE(428)] = 18198, + [SMALL_STATE(429)] = 18211, + [SMALL_STATE(430)] = 18224, + [SMALL_STATE(431)] = 18237, + [SMALL_STATE(432)] = 18248, + [SMALL_STATE(433)] = 18261, + [SMALL_STATE(434)] = 18274, + [SMALL_STATE(435)] = 18287, + [SMALL_STATE(436)] = 18300, + [SMALL_STATE(437)] = 18313, + [SMALL_STATE(438)] = 18326, + [SMALL_STATE(439)] = 18339, + [SMALL_STATE(440)] = 18349, + [SMALL_STATE(441)] = 18359, + [SMALL_STATE(442)] = 18369, + [SMALL_STATE(443)] = 18379, + [SMALL_STATE(444)] = 18389, + [SMALL_STATE(445)] = 18399, + [SMALL_STATE(446)] = 18409, + [SMALL_STATE(447)] = 18419, + [SMALL_STATE(448)] = 18429, + [SMALL_STATE(449)] = 18439, + [SMALL_STATE(450)] = 18449, + [SMALL_STATE(451)] = 18459, + [SMALL_STATE(452)] = 18469, + [SMALL_STATE(453)] = 18479, + [SMALL_STATE(454)] = 18489, + [SMALL_STATE(455)] = 18499, + [SMALL_STATE(456)] = 18509, + [SMALL_STATE(457)] = 18519, + [SMALL_STATE(458)] = 18529, + [SMALL_STATE(459)] = 18539, + [SMALL_STATE(460)] = 18549, + [SMALL_STATE(461)] = 18559, + [SMALL_STATE(462)] = 18569, + [SMALL_STATE(463)] = 18579, + [SMALL_STATE(464)] = 18589, + [SMALL_STATE(465)] = 18599, + [SMALL_STATE(466)] = 18609, + [SMALL_STATE(467)] = 18619, + [SMALL_STATE(468)] = 18629, + [SMALL_STATE(469)] = 18639, + [SMALL_STATE(470)] = 18649, + [SMALL_STATE(471)] = 18659, + [SMALL_STATE(472)] = 18669, + [SMALL_STATE(473)] = 18679, + [SMALL_STATE(474)] = 18689, + [SMALL_STATE(475)] = 18699, + [SMALL_STATE(476)] = 18709, + [SMALL_STATE(477)] = 18719, + [SMALL_STATE(478)] = 18729, + [SMALL_STATE(479)] = 18739, + [SMALL_STATE(480)] = 18749, + [SMALL_STATE(481)] = 18759, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(402), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(391), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(412), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(280), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(316), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), - [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(360), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(361), - [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(363), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), - [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), - [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [89] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(402), - [92] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(123), - [95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(12), - [98] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(391), - [101] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(43), - [104] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(27), - [107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(412), - [110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(280), - [113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(316), - [116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(318), - [119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(15), - [122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(11), - [125] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(32), - [128] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(360), - [131] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(361), - [134] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(362), - [137] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(363), - [140] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(191), - [143] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(33), - [146] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(432), - [149] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(7), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), - [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(119), - [157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(425), - [160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(122), - [163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(98), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(351), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, 0, 43), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, 0, 43), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), - [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 56), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 56), - [282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), - [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 63), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 63), - [288] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 63), SHIFT_REPEAT(34), - [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unique_block, 2, 0, 18), - [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unique_block, 2, 0, 18), - [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_forall_block, 2, 0, 18), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_forall_block, 2, 0, 18), - [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, 0, 33), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, 0, 33), - [303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_exists_block, 2, 0, 18), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exists_block, 2, 0, 18), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), - [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assume_block, 2, 0, 18), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assume_block, 2, 0, 18), - [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 3, 0, 68), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 3, 0, 68), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), - [351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [369] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2, 0, 0), - [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2, 0, 0), - [373] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 7, 0, 39), - [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 7, 0, 39), - [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_definition, 7, 0, 39), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_definition, 7, 0, 39), - [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 8, 0, 78), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 8, 0, 78), - [385] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_loop_statement, 3, 0, 44), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop_statement, 3, 0, 44), - [389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, 0, 19), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, 0, 19), - [393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_statement, 5, 0, 8), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_statement, 5, 0, 8), - [397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_loop_statement, 2, 0, 18), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop_statement, 2, 0, 18), - [401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_statement, 4, 0, 59), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_statement, 4, 0, 59), - [405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0), - [409] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 62), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 62), - [413] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 5, 0, 8), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 5, 0, 8), - [417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 45), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 45), - [421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_statement, 3, 0, 0), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), - [425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 6, 0, 67), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 6, 0, 67), - [429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 69), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 69), - [433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(322), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [443] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), - [445] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), - [447] = {.entry = {.count = 1, .reusable = false}}, SHIFT(281), - [449] = {.entry = {.count = 1, .reusable = false}}, SHIFT(210), - [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_name, 1, 0, 0), - [453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_name, 1, 0, 0), - [455] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__simple_name, 1, 0, 0), SHIFT(174), - [458] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__simple_name, 1, 0, 0), SHIFT(269), - [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_name, 2, 0, 9), - [463] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generic_name, 2, 0, 9), - [465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(422), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list, 3, 0, 17), - [469] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_argument_list, 3, 0, 17), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1, 0, 0), - [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1, 0, 0), - [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list, 4, 0, 29), - [477] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_argument_list, 4, 0, 29), - [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1, 0, 0), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 0), - [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_index_access_expression, 4, 0, 57), - [489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_index_access_expression, 4, 0, 57), - [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_access_expression, 3, 0, 46), - [493] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_access_expression, 3, 0, 46), - [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 5, 1500, 64), - [497] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 5, 1500, 64), - [499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 5, 1500, 66), - [501] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 5, 1500, 66), - [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 2, 0, 0), - [505] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 2, 0, 0), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, 0, 0), - [509] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, 0, 0), - [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 6, 1500, 70), - [513] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 6, 1500, 70), - [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 6, 1500, 71), - [517] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 6, 1500, 71), - [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_expression, 6, 0, 72), - [521] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_expression, 6, 0, 72), - [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 7, 1500, 74), - [525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 7, 1500, 74), - [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 7, 1500, 75), - [529] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 7, 1500, 75), - [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_expression, 7, 0, 76), - [533] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_expression, 7, 0, 76), - [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), - [537] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), - [539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 8, 1500, 79), - [541] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 8, 1500, 79), - [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3, 0, 0), - [545] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3, 0, 0), - [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 3, 1500, 48), - [549] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 3, 1500, 48), - [551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_member_access_expression, 3, 0, 46), REDUCE(sym_qualified_name, 3, 0, 23), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_name, 3, 0, 23), - [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_name, 3, 0, 23), - [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, 0, 0), - [560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, 0, 0), - [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_literal, 1, 0, 0), - [564] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_literal, 1, 0, 0), - [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_expression, 3, 0, 49), - [568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_expression, 3, 0, 49), - [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, 0, 0), - [572] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, 0, 0), - [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 1, 0, 0), - [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 1, 0, 0), - [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unit_literal, 1, 0, 0), - [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unit_literal, 1, 0, 0), - [582] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_type_unit, 1, 0, 0), REDUCE(sym_unit_literal, 1, 0, 0), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 2, 0, 0), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 2, 0, 0), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__lval_expression, 1, 0, 0), - [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__lval_expression, 1, 0, 0), - [593] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__lval_expression, 1, 0, 0), REDUCE(sym__name, 1, 0, 0), - [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name, 1, 0, 0), - [598] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__name, 1, 0, 0), - [600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 4, 1500, 58), - [602] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 4, 1500, 58), - [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 4, 1500, 60), - [606] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 4, 1500, 60), - [608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 47), - [610] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 47), - [612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [622] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [624] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [634] = {.entry = {.count = 1, .reusable = false}}, SHIFT(393), - [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(354), - [638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(443), - [640] = {.entry = {.count = 1, .reusable = false}}, SHIFT(444), - [642] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), - [644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437), - [646] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), - [648] = {.entry = {.count = 1, .reusable = false}}, SHIFT(394), - [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [656] = {.entry = {.count = 1, .reusable = false}}, SHIFT(357), - [658] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371), - [660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_prefix_unary_expression, 2, 0, 32), - [662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_prefix_unary_expression, 2, 0, 32), - [664] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), - [666] = {.entry = {.count = 1, .reusable = false}}, SHIFT(431), - [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), - [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213), - [672] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), - [674] = {.entry = {.count = 1, .reusable = false}}, SHIFT(420), - [676] = {.entry = {.count = 1, .reusable = false}}, SHIFT(417), - [678] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), - [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337), - [682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), - [684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(350), - [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 2, 0, 21), - [702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 0), - [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [716] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 4, 0, 73), - [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_expression_repeat1, 4, 0, 80), - [726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_greater_operator, 1, 0, 0), - [728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_greater_operator, 1, 0, 0), - [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [732] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sub_operator, 1, 0, 0), - [734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub_operator, 1, 0, 0), - [736] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_less_operator, 1, 0, 0), - [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_less_operator, 1, 0, 0), - [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_unit, 1, 0, 0), - [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), - [746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), - [748] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(344), - [751] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(301), - [754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(299), - [757] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(302), - [760] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(303), - [763] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(304), - [766] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(429), - [769] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(273), - [772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), - [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), - [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), - [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), - [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), - [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), - [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), - [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), - [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [798] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(344), - [801] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(301), - [804] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(299), - [807] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(303), - [810] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(304), - [813] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(429), - [816] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), - [818] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_rightarrow_operator, 1, 0, 0), - [820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rightarrow_operator, 1, 0, 0), - [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 36), - [828] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), - [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_qualified_name, 3, 0, 24), - [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_qualified_name, 3, 0, 24), - [834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 21), - [836] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344), - [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [840] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array, 5, 0, 52), - [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), - [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_fn, 4, 0, 38), - [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array, 3, 0, 17), - [850] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 13), SHIFT_REPEAT(344), - [853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 13), - [855] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 13), SHIFT_REPEAT(210), - [858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1, 0, 0), - [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_fn, 2, 0, 7), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 51), - [868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 22), - [870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 4, 0, 2), - [872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 6, 0, 26), - [874] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 31), - [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, 0, 6), - [878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 5, 0, 10), - [880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 5, 0, 12), - [882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function_definition, 5, 0, 14), - [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function_definition, 7, 0, 40), - [886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 8, 0, 55), - [888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_definition, 4, 0, 2), - [890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_definition, 5, 0, 2), - [892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 3, 0, 1), - [894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 9, 0, 61), - [896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 8, 0, 54), - [898] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 7, 0, 41), - [900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 8, 0, 53), - [902] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 7, 0, 42), - [904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 4, 0, 4), - [906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [908] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), - [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [914] = {.entry = {.count = 1, .reusable = false}}, SHIFT(284), - [916] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), - [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), - [922] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, 0, 6), - [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), - [926] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [928] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 22), - [930] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 31), - [932] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 51), - [934] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 1, 0, 3), - [936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 1, 0, 3), - [938] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), - [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [944] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 11), - [946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 11), - [948] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), - [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), - [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), - [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), - [974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416), - [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), - [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), - [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), - [994] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), SHIFT_REPEAT(96), - [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), - [999] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat2, 2, 0, 16), SHIFT_REPEAT(305), - [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat2, 2, 0, 16), - [1004] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, 0, 27), SHIFT_REPEAT(306), - [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, 0, 27), - [1009] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_argument_list_repeat1, 2, 0, 30), SHIFT_REPEAT(138), - [1012] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_repeat1, 2, 0, 30), - [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_keyword, 1, 0, 0), - [1018] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_expression_repeat1, 2, 0, 77), SHIFT_REPEAT(239), - [1021] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_expression_repeat1, 2, 0, 77), - [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), - [1027] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 30), SHIFT_REPEAT(315), - [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 30), - [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), - [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [1038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [1042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [1044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [1046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [1048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [1050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [1052] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat1, 2, 0, 5), - [1054] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat1, 2, 0, 5), SHIFT_REPEAT(314), - [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [1063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [1065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [1067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), - [1069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [1071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [1073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [1075] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(30), - [1078] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 2, 0, 65), SHIFT_REPEAT(35), - [1081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 2, 0, 65), - [1083] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_repeat1, 2, 0, 17), - [1085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [1087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [1089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [1091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [1093] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 17), - [1095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [1097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_self_reference, 2, 0, 20), - [1099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [1101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), - [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [1107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [1109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat2, 2, 0, 15), - [1111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [1113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_self_reference, 1, 0, 0), - [1115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [1117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat1, 2, 0, 1), - [1119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [1121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [1123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [1125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), - [1127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [1129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [1131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [1133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ignore_argument, 3, 0, 35), - [1135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [1137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 21), - [1139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), - [1141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_declaration, 4, 0, 50), - [1143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [1145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), - [1147] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, 0, 25), - [1151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_declaration, 3, 0, 28), - [1153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [1155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [1157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [1159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), - [1161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list_definition, 3, 0, 17), - [1163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list_definition, 4, 0, 29), - [1165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [1169] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [1173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), - [1175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [1177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_field, 3, 0, 28), - [1181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), - [1183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(446), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(433), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(464), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(325), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(361), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(348), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(398), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [77] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(446), + [80] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(22), + [83] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(21), + [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(433), + [89] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(7), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), + [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(31), + [97] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(464), + [100] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(465), + [103] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(325), + [106] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(361), + [109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(348), + [112] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(397), + [115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(398), + [118] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(399), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(400), + [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(40), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(11), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(24), + [133] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(238), + [136] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(42), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(171), + [142] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(411), + [145] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(163), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, 0, 34), SHIFT_REPEAT(76), + [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(473), + [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(480), + [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__simple_name, 1, 0, 0), SHIFT(308), + [176] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__simple_name, 1, 0, 0), SHIFT(141), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_name, 1, 0, 0), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(436), + [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_name, 1, 0, 0), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324), + [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(462), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(439), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1, 0, 0), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1, 0, 0), + [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 62), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 62), + [319] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 62), SHIFT_REPEAT(456), + [322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 54), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 54), + [326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257), + [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, 0, 41), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, 0, 41), + [332] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263), + [334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, 0, 33), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, 0, 33), + [338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 4, 0, 70), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 4, 0, 70), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), + [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assume_block, 2, 0, 13), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assume_block, 2, 0, 13), + [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_forall_block, 2, 0, 13), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_forall_block, 2, 0, 13), + [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_exists_block, 2, 0, 13), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exists_block, 2, 0, 13), + [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unique_block, 2, 0, 13), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unique_block, 2, 0, 13), + [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 8, 0, 75), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 8, 0, 75), + [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 67), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 67), + [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 5, 0, 16), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 5, 0, 16), + [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 7, 0, 49), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 7, 0, 49), + [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 43), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 43), + [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_statement, 4, 0, 57), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_statement, 4, 0, 57), + [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_statement, 3, 0, 0), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), + [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2, 0, 0), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2, 0, 0), + [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2, 0, 0), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), + [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_statement, 5, 0, 16), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_statement, 5, 0, 16), + [410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_loop_statement, 2, 0, 13), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop_statement, 2, 0, 13), + [414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_loop_statement, 3, 0, 42), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop_statement, 3, 0, 42), + [418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_definition, 7, 0, 49), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_definition, 7, 0, 49), + [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, 0, 12), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, 0, 12), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 61), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 61), + [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 6, 0, 66), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 6, 0, 66), + [436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371), + [438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(429), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414), + [444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(458), + [446] = {.entry = {.count = 1, .reusable = false}}, SHIFT(326), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_repeat1, 2, 0, 35), + [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_argument_list_repeat1, 2, 0, 35), + [452] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_argument_list_repeat1, 2, 0, 35), SHIFT_REPEAT(162), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list, 3, 0, 15), + [457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_argument_list, 3, 0, 15), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_name, 2, 0, 11), + [463] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generic_name, 2, 0, 11), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list, 2, 0, 3), + [467] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_argument_list, 2, 0, 3), + [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_repeat1, 3, 0, 24), + [471] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_argument_list_repeat1, 3, 0, 24), + [473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(412), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_access_expression, 3, 0, 46), + [481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_access_expression, 3, 0, 46), + [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_index_access_expression, 4, 0, 56), + [485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_index_access_expression, 4, 0, 56), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__lval_expression, 1, 0, 0), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name, 1, 0, 0), + [491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__name, 1, 0, 0), + [493] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__lval_expression, 1, 0, 0), + [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_member_access_expression, 3, 0, 46), + [497] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_member_access_expression, 3, 0, 46), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1, 0, 0), + [505] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 0), + [507] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_member_access_expression, 3, 0, 46), REDUCE(sym_qualified_name, 3, 0, 28), + [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_name, 3, 0, 28), + [512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_name, 3, 0, 28), + [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), + [516] = {.entry = {.count = 1, .reusable = false}}, SHIFT(469), + [518] = {.entry = {.count = 1, .reusable = false}}, SHIFT(460), + [520] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), + [522] = {.entry = {.count = 1, .reusable = false}}, SHIFT(428), + [524] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [526] = {.entry = {.count = 1, .reusable = false}}, SHIFT(405), + [528] = {.entry = {.count = 1, .reusable = false}}, SHIFT(422), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [538] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [540] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [548] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [552] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), + [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [566] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), + [578] = {.entry = {.count = 1, .reusable = false}}, SHIFT(470), + [580] = {.entry = {.count = 1, .reusable = false}}, SHIFT(476), + [582] = {.entry = {.count = 1, .reusable = false}}, SHIFT(410), + [584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(455), + [586] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271), + [588] = {.entry = {.count = 1, .reusable = false}}, SHIFT(270), + [590] = {.entry = {.count = 1, .reusable = false}}, SHIFT(481), + [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__non_lval_expression, 1, 0, 0), + [594] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__non_lval_expression, 1, 0, 0), + [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [598] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [600] = {.entry = {.count = 1, .reusable = false}}, SHIFT(417), + [602] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), + [604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(467), + [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 1, 0, 0), + [608] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 1, 0, 0), + [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_expression, 3, 0, 47), + [612] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_expression, 3, 0, 47), + [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 4, 1500, 55), + [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 4, 1500, 55), + [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 6, 1500, 68), + [620] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 6, 1500, 68), + [622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_expression, 6, 0, 69), + [624] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_expression, 6, 0, 69), + [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, 0, 0), + [628] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, 0, 0), + [630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_prefix_unary_expression, 2, 0, 32), + [632] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_prefix_unary_expression, 2, 0, 32), + [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unit_literal, 2, 0, 0), + [636] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unit_literal, 2, 0, 0), + [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_literal, 1, 0, 0), + [640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_literal, 1, 0, 0), + [642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, 0, 0), + [644] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, 0, 0), + [646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 5, 1500, 63), + [648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 5, 1500, 63), + [650] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 7, 1500, 72), + [652] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 7, 1500, 72), + [654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_expression, 7, 0, 73), + [656] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_expression, 7, 0, 73), + [658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expression, 3, 1500, 45), + [660] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expression, 3, 1500, 45), + [662] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_literal, 2, 0, 0), + [664] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_literal, 2, 0, 0), + [666] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, 0, 0), + [668] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, 0, 0), + [670] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 2, 0, 0), + [672] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 2, 0, 0), + [674] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3, 0, 0), + [676] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3, 0, 0), + [678] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__lval_expression, 1, 0, 0), REDUCE(sym__name, 1, 0, 0), + [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [689] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__simple_name, 1, 0, 0), SHIFT(258), + [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 44), + [696] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 44), + [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [700] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [704] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [706] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [714] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [718] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [732] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [738] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [742] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 0), + [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 4, 0, 71), + [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_expression_repeat1, 4, 0, 76), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 2, 0, 10), + [774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), + [782] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(340), + [785] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(354), + [788] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(332), + [791] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(345), + [794] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(343), + [797] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(353), + [800] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(478), + [803] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(328), + [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [826] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(340), + [829] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), + [831] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(354), + [834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(332), + [837] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(343), + [840] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(353), + [843] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(478), + [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_qualified_name, 3, 0, 30), + [850] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_qualified_name, 3, 0, 30), + [852] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 10), + [854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), + [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 26), + [858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_unit, 2, 0, 0), + [860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_fn, 4, 0, 39), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__bracketed_generic_name, 3, 0, 0), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416), + [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array, 3, 0, 24), + [896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array, 5, 0, 53), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [900] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359), + [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [904] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [906] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 20), SHIFT_REPEAT(359), + [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 20), + [911] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 20), SHIFT_REPEAT(250), + [914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 4, 0, 4), + [918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 31), + [920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 5, 0, 19), + [922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function_definition, 5, 0, 21), + [924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 48), + [926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function_definition, 7, 0, 50), + [928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 14), + [930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, 0, 2), + [932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 6, 0, 37), + [934] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 5, 0, 17), + [936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 9, 0, 65), + [938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 3, 0, 1), + [940] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 8, 0, 59), + [942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 8, 0, 58), + [944] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 8, 0, 60), + [946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 4, 0, 6), + [948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_definition, 4, 0, 4), + [952] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 7, 0, 52), + [954] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_directive, 7, 0, 51), + [956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_definition, 5, 0, 4), + [958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 35), + [960] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 35), SHIFT_REPEAT(250), + [963] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list_definition, 3, 0, 15), + [965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument_list_definition, 2, 0, 3), + [969] = {.entry = {.count = 1, .reusable = false}}, SHIFT(342), + [971] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), + [973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [979] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 31), + [981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 18), + [983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2, 0, 18), + [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1, 0, 0), + [989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, 0, 2), + [991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_fn, 2, 0, 8), + [995] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_struct_definition_repeat1, 1, 0, 5), + [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 1, 0, 5), + [999] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 14), + [1001] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 48), + [1003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 3), + [1009] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_argument_list_definition_repeat1, 2, 0, 3), + [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [1013] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [1015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [1017] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [1019] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(30), + [1022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), + [1028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), + [1038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), + [1042] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat2, 2, 0, 23), SHIFT_REPEAT(357), + [1045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat2, 2, 0, 23), + [1047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [1049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [1053] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 2, 0, 64), SHIFT_REPEAT(32), + [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expression_repeat1, 2, 0, 64), + [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [1060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [1062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [1070] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 27), SHIFT_REPEAT(124), + [1073] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 27), + [1075] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_expression_repeat1, 2, 0, 74), SHIFT_REPEAT(269), + [1078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_expression_repeat1, 2, 0, 74), + [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [1084] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, 0, 38), SHIFT_REPEAT(331), + [1087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, 0, 38), + [1089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), + [1091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [1093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), + [1095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [1097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat1, 2, 0, 7), + [1099] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat1, 2, 0, 7), SHIFT_REPEAT(341), + [1102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [1112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat2, 2, 0, 22), + [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_self_reference, 2, 0, 9), + [1116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_declaration, 4, 0, 40), + [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ignore_argument, 3, 0, 25), + [1120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), + [1122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(449), + [1124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 10), + [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [1128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_self_reference, 1, 0, 0), + [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_declaration, 3, 0, 29), + [1132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, 0, 36), + [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_directive_repeat1, 2, 0, 1), + [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [1152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [1154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [1158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [1180] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [1192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [1196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [1198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [1206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [1208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [1210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [1216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [1218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [1220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [1222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [1224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_field, 3, 0, 29), }; #ifdef __cplusplus diff --git a/test/corpus/definitions/const.txt b/test/corpus/definitions/const.txt index ee2658c..a82d167 100644 --- a/test/corpus/definitions/const.txt +++ b/test/corpus/definitions/const.txt @@ -10,7 +10,6 @@ const MAX_MEM : i64 = 1000; (constant_definition (identifier) (type_i64) - (assign_operator) (number_literal))) === @@ -24,7 +23,6 @@ const X : i32 = -1; (constant_definition (identifier) (type_i32) - (assign_operator) (number_literal))) === @@ -38,7 +36,6 @@ const UNIT : () = (); (constant_definition (identifier) (type_unit) - (assign_operator) (unit_literal))) === @@ -54,7 +51,6 @@ const arr : [i32;3] = [1,2,3]; (type_array (type_i32) (number_literal)) - (assign_operator) (array_literal (number_literal) (number_literal) @@ -78,7 +74,6 @@ const EMPTY_BOARD : [[bool; 3]; 3] = (type_bool) (number_literal)) (number_literal)) - (assign_operator) (array_literal (array_literal (bool_literal) diff --git a/test/corpus/definitions/expression.txt b/test/corpus/definitions/expression.txt index 7d0a054..24e9483 100644 --- a/test/corpus/definitions/expression.txt +++ b/test/corpus/definitions/expression.txt @@ -9,18 +9,15 @@ fn valid_Address(a: Address) -> Address { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (identifier) (block (assign_statement (identifier) - (assign_operator) (prefix_unary_expression (unary_not) (identifier))) @@ -38,7 +35,6 @@ fn get_first(xs: [i32; 3]) -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -46,7 +42,6 @@ fn get_first(xs: [i32; 3]) -> i32 { (type_array (type_i32) (number_literal)))) - (rightarrow_operator) (type_i32) (block (return_statement diff --git a/test/corpus/definitions/function.txt b/test/corpus/definitions/function.txt index 94be335..735f409 100644 --- a/test/corpus/definitions/function.txt +++ b/test/corpus/definitions/function.txt @@ -10,10 +10,8 @@ fn func() -> i32 { (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_i32) (block))) @@ -29,7 +27,6 @@ fn func() { (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block))) @@ -46,13 +43,11 @@ fn func(x: i32) -> i32 { (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (block))) @@ -66,7 +61,6 @@ fn func(x: i32, y: i32) -> i32 { (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -75,7 +69,6 @@ fn func(x: i32, y: i32) -> i32 { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (block))) @@ -89,10 +82,8 @@ fn func() -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_i32) (block (return_statement @@ -108,10 +99,8 @@ fn func() -> bool { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_bool) (block (return_statement @@ -125,10 +114,8 @@ fn constructor() -> some_spec { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block))) @@ -141,7 +128,6 @@ fn add(a : i32, b : i32) -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -150,13 +136,11 @@ fn add(a : i32, b : i32) -> i32 { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier)))))) === @@ -168,7 +152,6 @@ fn add(a : i32, b : i32) -> i32 forall { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -177,14 +160,12 @@ fn add(a : i32, b : i32) -> i32 forall { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (forall_block (block (return_statement (binary_expression (identifier) - (add_operator) (identifier))))))) === Function with assume block @@ -199,13 +180,11 @@ fn procuring_sorted(func: sf) -> () forall { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (type_unit) (forall_block (block @@ -213,19 +192,16 @@ fn procuring_sorted(func: sf) -> () forall { (block (assign_statement (identifier) - (assign_operator) (function_call_expression (identifier))) (assign_statement (identifier) - (assign_operator) (function_call_expression (identifier))) (assert_statement (parenthesized_expression (binary_expression (identifier) - (less_equal_operator) (identifier)))))))))) === @@ -237,10 +213,8 @@ fn func() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (return_statement @@ -255,7 +229,6 @@ fn concatInts(xss : [[i64]]) -> [i64] { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -263,7 +236,6 @@ fn concatInts(xss : [[i64]]) -> [i64] { (type_array (type_array (type_i64))))) - (rightarrow_operator) (type_array (type_i64)) (block))) @@ -278,10 +250,8 @@ fn func() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (unique_block @@ -289,7 +259,6 @@ fn func() -> () { (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal))))))) @@ -305,7 +274,6 @@ fn ignore_first(_: i32, x : i32) -> i32 { (source_file (function_definition - (function_keyword) (identifier) (argument_list (ignore_argument @@ -313,7 +281,6 @@ fn ignore_first(_: i32, x : i32) -> i32 { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (block (return_statement @@ -333,13 +300,12 @@ fn ignore_first(_, x : i32) -> i32 { === Generic function with one parameter === -fn func(x: T) -> T { +fn func T' (x: T) -> T { return x; } --- (source_file (function_definition - (function_keyword) (identifier) (type_argument_list_definition (identifier)) @@ -347,7 +313,6 @@ fn func(x: T) -> T { (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (identifier) (block (return_statement @@ -356,13 +321,12 @@ fn func(x: T) -> T { === Generic function with multiple parameters === -fn func(x: T, y: U) -> T { +fn func T' U' (x: T, y: U) -> T { return x; } --- (source_file (function_definition - (function_keyword) (identifier) (type_argument_list_definition (identifier) @@ -374,7 +338,6 @@ fn func(x: T, y: U) -> T { (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (identifier) (block (return_statement diff --git a/test/corpus/definitions/spec.txt b/test/corpus/definitions/spec.txt index ee6c01a..9b8cff7 100644 --- a/test/corpus/definitions/spec.txt +++ b/test/corpus/definitions/spec.txt @@ -25,12 +25,10 @@ spec some_spec { (spec_definition (identifier) (external_function_definition - (function_keyword) (identifier) (argument_list (identifier) (identifier)) - (rightarrow_operator) (identifier)))) === @@ -47,5 +45,4 @@ spec some_spec { (identifier) (type_definition_statement (identifier) - (assign_operator) (identifier)))) diff --git a/test/corpus/definitions/struct.txt b/test/corpus/definitions/struct.txt index 5107e36..d923062 100644 --- a/test/corpus/definitions/struct.txt +++ b/test/corpus/definitions/struct.txt @@ -98,10 +98,8 @@ struct identity { (identifier) (identifier)) (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block (return_statement @@ -129,20 +127,16 @@ struct Wrapi32 { (identifier) (type_i32)) (function_definition - (function_keyword) (identifier) (argument_list (self_reference)) - (rightarrow_operator) (type_i32) (block (return_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier))))) (function_definition - (function_keyword) (identifier) (argument_list (self_reference @@ -154,13 +148,9 @@ struct Wrapi32 { (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (binary_expression (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (add_operator) (identifier))))))) diff --git a/test/corpus/directive/use.txt b/test/corpus/directive/use.txt index 4c44ae1..1c1c8cd 100644 --- a/test/corpus/directive/use.txt +++ b/test/corpus/directive/use.txt @@ -9,7 +9,6 @@ use inference::std; (source_file (use_directive (identifier) - (expand_operator) (identifier))) === @@ -23,11 +22,8 @@ use inference::std::algorithms::sort; (source_file (use_directive (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier))) === @@ -68,10 +64,7 @@ use inference::std::algorithms::{sort,hash}; (source_file (use_directive (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier) (identifier))) diff --git a/test/corpus/expressions/binary.txt b/test/corpus/expressions/binary.txt index b8a85ed..1643bba 100644 --- a/test/corpus/expressions/binary.txt +++ b/test/corpus/expressions/binary.txt @@ -7,18 +7,14 @@ fn spec_assign() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (identifier))))) === @@ -30,18 +26,14 @@ fn assign_from_fn_call() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (function_call_expression (identifier)))))) @@ -54,10 +46,8 @@ fn return_fn_call_with_param() -> Type { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block (return_statement @@ -74,10 +64,8 @@ fn fn_call_with_multiple_params() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (expression_statement @@ -101,101 +89,80 @@ fn constructor() -> some_spec { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) - (member_access_expression + (type_member_access_expression (identifier) - (expand_operator) (identifier))) (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) - (member_access_expression + (type_member_access_expression (identifier) - (expand_operator) (identifier))) (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (binary_expression (number_literal) - (pow_operator) (number_literal)))))) === Create and assign Array without parameters === fn constructor() -> some_spec { - self.mem = Array::new(); + self.mem = Array u32'::new(); } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (function_call_expression - (member_access_expression + (type_member_access_expression (generic_name (identifier) (type_argument_list (type_u32))) - (expand_operator) (identifier))))))) === Create and assign Array with one parameter === fn constructor() -> some_spec { - self.mem = Array::new(10); + self.mem = Array i64'::new(10); } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (function_call_expression - (member_access_expression + (type_member_access_expression (generic_name (identifier) (type_argument_list (type_i64))) - (expand_operator) (identifier)) (number_literal)))))) @@ -203,30 +170,25 @@ fn constructor() -> some_spec { Create and assign Array with multiple parameters === fn constructor() -> some_spec { - self.mem = Array::new(10, a, false, get_name("abc"), "str", Array::new(10 * 2)); + self.mem = (Array u64')::new(10, a, false, get_name("abc"), "str", (Array i32')::new(10 * 2)); } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (identifier) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (function_call_expression - (member_access_expression + (type_member_access_expression (generic_name (identifier) (type_argument_list (type_u64))) - (expand_operator) (identifier)) (number_literal) (identifier) @@ -236,16 +198,14 @@ fn constructor() -> some_spec { (string_literal)) (string_literal) (function_call_expression - (member_access_expression + (type_member_access_expression (generic_name (identifier) (type_argument_list (type_i32))) - (expand_operator) (identifier)) (binary_expression (number_literal) - (mul_operator) (number_literal)))))))) === @@ -260,13 +220,11 @@ fn valid_Address(a: Address) -> Address { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (identifier) (block (assert_statement @@ -274,16 +232,12 @@ fn valid_Address(a: Address) -> Address { (binary_expression (binary_expression (identifier) - (less_operator) (member_access_expression (identifier) - (attribute_access_operator) (identifier))) - (and_operator) (parenthesized_expression (binary_expression (identifier) - (mod_operator) (number_literal)))))) (return_statement (identifier))))) @@ -300,13 +254,11 @@ fn valid_Address(a: Address) -> Address { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (identifier) (block (assert_statement @@ -315,20 +267,15 @@ fn valid_Address(a: Address) -> Address { (binary_expression (binary_expression (identifier) - (less_operator) (member_access_expression (identifier) - (attribute_access_operator) (identifier))) - (and_operator) (prefix_unary_expression (unary_not) (parenthesized_expression (binary_expression (identifier) - (mod_operator) (number_literal))))) - (and_operator) (prefix_unary_expression (unary_not) (identifier))))) @@ -346,15 +293,12 @@ fn main() -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_i32) (block (return_statement (binary_expression (number_literal) - (sub_operator) (number_literal)))))) diff --git a/test/corpus/expressions/struct.txt b/test/corpus/expressions/struct.txt index 5bb7530..05962cd 100644 --- a/test/corpus/expressions/struct.txt +++ b/test/corpus/expressions/struct.txt @@ -4,21 +4,19 @@ Struct expression fn main() { let res: Structure = Structure { a: 1, - b: [], /// empty array literal - c: "" /// empty string literal + b: [], // empty array literal + c: "" // empty string literal }; } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (identifier) - (assign_operator) (struct_expression (identifier) (identifier) diff --git a/test/corpus/spec/basic_concepts.txt b/test/corpus/spec/basic_concepts.txt index 82bd0f9..7be591c 100644 --- a/test/corpus/spec/basic_concepts.txt +++ b/test/corpus/spec/basic_concepts.txt @@ -23,7 +23,6 @@ spec BasicConcepts { (spec_definition (identifier) (external_function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -32,18 +31,14 @@ spec BasicConcepts { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32)) (external_function_definition - (function_keyword) (identifier) (argument_list (type_i32) (type_i32)) - (rightarrow_operator) (type_i32)) (function_definition - (function_keyword) (identifier) (argument_list) (forall_block @@ -51,12 +46,10 @@ spec BasicConcepts { (variable_definition_statement (identifier) (type_i32) - (assign_operator) (uzumaki_keyword)) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (uzumaki_keyword)) (assert_statement (parenthesized_expression @@ -65,10 +58,8 @@ spec BasicConcepts { (identifier) (identifier) (identifier)) - (equals_operator) (binary_expression (identifier) - (add_operator) (identifier))))) (assert_statement (parenthesized_expression @@ -77,13 +68,10 @@ spec BasicConcepts { (identifier) (identifier) (identifier)) - (equals_operator) (binary_expression (identifier) - (sub_operator) (identifier)))))))) (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -99,14 +87,13 @@ fn foo() { forall { let y: u32 = @; foobar(param1 : @, param2: 5); - /// + // } } } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -115,14 +102,12 @@ fn foo() { (variable_definition_statement (identifier) (type_u32) - (assign_operator) (uzumaki_keyword)) (forall_block (block (variable_definition_statement (identifier) (type_u32) - (assign_operator) (uzumaki_keyword)) (expression_statement (function_call_expression diff --git a/test/corpus/spec/constants.txt b/test/corpus/spec/constants.txt index f4613af..39f566d 100644 --- a/test/corpus/spec/constants.txt +++ b/test/corpus/spec/constants.txt @@ -19,35 +19,28 @@ spec Constants { (constant_definition (identifier) (type_i32) - (assign_operator) (number_literal)) (constant_definition (identifier) (type_bool) - (assign_operator) (bool_literal)) (constant_definition (identifier) (type_u32) - (assign_operator) (number_literal)) (function_definition - (function_keyword) (identifier) (argument_list) (block (constant_definition (identifier) (type_i32) - (assign_operator) (number_literal)) (constant_definition (identifier) (type_bool) - (assign_operator) (bool_literal)) (constant_definition (identifier) (type_u32) - (assign_operator) (number_literal)))))) diff --git a/test/corpus/spec/definitions.txt b/test/corpus/spec/definitions.txt index 0f5ce02..69ef447 100644 --- a/test/corpus/spec/definitions.txt +++ b/test/corpus/spec/definitions.txt @@ -11,7 +11,6 @@ spec Definitions { (constant_definition (identifier) (type_u32) - (assign_operator) (number_literal)))) === @@ -23,7 +22,6 @@ fn sum(a: u32, b: u32) -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -32,13 +30,11 @@ fn sum(a: u32, b: u32) -> u32 { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier)))))) === @@ -52,7 +48,6 @@ spec Definitions { (spec_definition (identifier) (external_function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -61,7 +56,6 @@ spec Definitions { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32)))) === @@ -76,7 +70,6 @@ spec Definitions { (identifier) (type_definition_statement (identifier) - (assign_operator) (type_u32)))) === @@ -111,12 +104,10 @@ spec AuctionSpec { (constant_definition (identifier) (type_u64) - (assign_operator) (number_literal)) (constant_definition (identifier) (type_u64) - (assign_operator) (number_literal)) (struct_definition (identifier) @@ -131,13 +122,11 @@ spec AuctionSpec { (identifier) (identifier)) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (type_bool) (block (return_statement @@ -145,35 +134,26 @@ spec AuctionSpec { (binary_expression (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (greater_equal_operator) (identifier)) - (and_operator) (binary_expression (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (less_equal_operator) (identifier)))))) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (type_bool) (block (return_statement (binary_expression (identifier) - (equals_operator) - (member_access_expression + (type_member_access_expression (identifier) - (expand_operator) (identifier)))))))) === @@ -221,20 +201,16 @@ struct Account { (identifier) (type_u64)) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (type_u64))) - (rightarrow_operator) (type_bool) (block (return_statement (binary_expression (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (greater_equal_operator) (identifier))))))) diff --git a/test/corpus/spec/directives.txt b/test/corpus/spec/directives.txt index 8b11124..97de8f7 100644 --- a/test/corpus/spec/directives.txt +++ b/test/corpus/spec/directives.txt @@ -8,11 +8,8 @@ use inference::std::algorithms::{sort, hash}; (source_file (use_directive (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier)) (use_directive (identifier) @@ -20,10 +17,7 @@ use inference::std::algorithms::{sort, hash}; (string_literal)) (use_directive (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier) - (expand_operator) (identifier) (identifier))) diff --git a/test/corpus/spec/expressions.txt b/test/corpus/spec/expressions.txt index 0e4576f..48c99bc 100644 --- a/test/corpus/spec/expressions.txt +++ b/test/corpus/spec/expressions.txt @@ -20,19 +20,16 @@ fn get_balance(account: Account) -> u64 { (identifier) (type_u64))) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (type_u64) (block (return_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)))))) === @@ -44,7 +41,6 @@ fn get_element(arr: [u32; 10], index: u32) -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -55,7 +51,6 @@ fn get_element(arr: [u32; 10], index: u32) -> u32 { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32) (block (return_statement @@ -79,7 +74,6 @@ fn example() -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -88,25 +82,20 @@ fn example() -> u32 { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier))))) (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_u32) (block (variable_definition_statement (identifier) (type_u32) - (assign_operator) (function_call_expression (identifier) (number_literal) @@ -114,7 +103,6 @@ fn example() -> u32 { (variable_definition_statement (identifier) (type_u32) - (assign_operator) (function_call_expression (identifier) (identifier) @@ -124,7 +112,6 @@ fn example() -> u32 { (variable_definition_statement (identifier) (type_u32) - (assign_operator) (function_call_expression (identifier) (uzumaki_keyword) @@ -145,10 +132,8 @@ fn example() -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_u32) (block (return_statement @@ -156,9 +141,7 @@ fn example() -> u32 { (parenthesized_expression (binary_expression (number_literal) - (add_operator) (number_literal))) - (mul_operator) (number_literal)))))) === @@ -171,16 +154,13 @@ fn example() -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_i32) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (return_statement (identifier))))) @@ -212,161 +192,121 @@ fn example() -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_u32) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (pow_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (mul_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (mod_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (add_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (sub_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (number_literal) - (less_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (number_literal) - (less_equal_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (number_literal) - (equals_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (number_literal) - (not_equals_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (number_literal) - (greater_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (number_literal) - (greater_equal_operator) (number_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (bool_literal) - (and_operator) (bool_literal))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (binary_expression (bool_literal) - (or_operator) (bool_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (shift_left_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (shift_right_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (bit_xor_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (bit_or_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (number_literal) - (bit_and_operator) (number_literal))) (return_statement (binary_expression (number_literal) - (add_operator) (binary_expression (number_literal) - (mul_operator) (number_literal))))))) diff --git a/test/corpus/spec/functions.txt b/test/corpus/spec/functions.txt index f740c6d..b8afcd8 100644 --- a/test/corpus/spec/functions.txt +++ b/test/corpus/spec/functions.txt @@ -6,12 +6,11 @@ fn sum(a: u32, b: u32) -> u32 { } spec Bridge { - /// Spec-specific functions + // Spec-specific functions } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -20,13 +19,11 @@ spec Bridge { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier))))) (spec_definition (identifier) @@ -57,7 +54,6 @@ spec Hasher { --- (source_file (external_function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -65,14 +61,12 @@ spec Hasher { (type_array (type_u8) (number_literal)))) - (rightarrow_operator) (type_array (type_u8) (number_literal))) (spec_definition (identifier) (function_definition - (function_keyword) (identifier) (argument_list) (forall_block @@ -82,14 +76,12 @@ spec Hasher { (type_array (type_u8) (number_literal)) - (assign_operator) (uzumaki_keyword)) (variable_definition_statement (identifier) (type_array (type_u8) (number_literal)) - (assign_operator) (function_call_expression (identifier) (identifier))) @@ -98,38 +90,32 @@ spec Hasher { (type_array (type_u8) (number_literal)) - (assign_operator) (uzumaki_keyword)) (variable_definition_statement (identifier) (type_array (type_u8) (number_literal)) - (assign_operator) (function_call_expression (identifier) (identifier))) (if_statement (binary_expression (identifier) - (equals_operator) (identifier)) (block (assert_statement (parenthesized_expression (binary_expression (identifier) - (equals_operator) (identifier))))) (block (assert_statement (parenthesized_expression (binary_expression (identifier) - (not_equals_operator) (identifier))))))))) (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -158,7 +144,6 @@ fn bubble_sort(arr: [i32;10], compare_function: fn(left: i32, right: i32) -> i32 --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -177,49 +162,39 @@ fn bubble_sort(arr: [i32;10], compare_function: fn(left: i32, right: i32) -> i32 (identifier) (type_i32))) (type_i32)))) - (rightarrow_operator) (type_unit) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (identifier) (block (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (number_literal))) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (binary_expression (binary_expression (identifier) - (sub_operator) (identifier)) - (sub_operator) (number_literal)) (block (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (number_literal))) (if_statement (binary_expression @@ -232,15 +207,12 @@ fn bubble_sort(arr: [i32;10], compare_function: fn(left: i32, right: i32) -> i32 (identifier) (binary_expression (identifier) - (add_operator) (number_literal)))) - (greater_operator) (number_literal)) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (array_index_access_expression (identifier) (identifier))) @@ -248,21 +220,17 @@ fn bubble_sort(arr: [i32;10], compare_function: fn(left: i32, right: i32) -> i32 (array_index_access_expression (identifier) (identifier)) - (assign_operator) (array_index_access_expression (identifier) (binary_expression (identifier) - (add_operator) (number_literal)))) (assign_statement (array_index_access_expression (identifier) (binary_expression (identifier) - (add_operator) (number_literal))) - (assign_operator) (identifier))))))))))) === @@ -299,7 +267,6 @@ spec HashContext { (identifier) (type_definition_statement (identifier) - (assign_operator) (type_fn (argument_list (type_array @@ -309,13 +276,11 @@ spec HashContext { (type_u8) (number_literal)))) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (type_unit) (block (variable_definition_statement @@ -323,14 +288,12 @@ spec HashContext { (type_array (type_u8) (number_literal)) - (assign_operator) (uzumaki_keyword)) (variable_definition_statement (identifier) (type_array (type_u8) (number_literal)) - (assign_operator) (function_call_expression (identifier) (identifier))) @@ -339,41 +302,34 @@ spec HashContext { (type_array (type_u8) (number_literal)) - (assign_operator) (uzumaki_keyword)) (variable_definition_statement (identifier) (type_array (type_u8) (number_literal)) - (assign_operator) (function_call_expression (identifier) (identifier))) (if_statement (binary_expression (identifier) - (equals_operator) (identifier)) (block (assert_statement (parenthesized_expression (binary_expression (identifier) - (equals_operator) (identifier))))) (block (assert_statement (parenthesized_expression (binary_expression (identifier) - (not_equals_operator) (identifier)))))))) (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (forall_block (block @@ -401,7 +357,6 @@ fn example() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -410,16 +365,13 @@ fn example() { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier))))) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -428,16 +380,13 @@ fn example() { (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_i32) (block (return_statement (binary_expression (identifier) - (sub_operator) (identifier))))) (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -448,7 +397,6 @@ fn example() { (type_i32) (type_i32)) (type_i32)) - (assign_operator) (identifier)) (variable_definition_statement (identifier) @@ -457,11 +405,9 @@ fn example() { (type_i32) (type_i32)) (type_i32)) - (assign_operator) (identifier)) (assert_statement (parenthesized_expression (binary_expression (identifier) - (equals_operator) (identifier))))))) diff --git a/test/corpus/spec/general-description.txt b/test/corpus/spec/general-description.txt index fbd92eb..7ffa043 100644 --- a/test/corpus/spec/general-description.txt +++ b/test/corpus/spec/general-description.txt @@ -21,22 +21,20 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (forall_block (block - (comment) - (comment) + (docstring) + (docstring) (variable_definition_statement (identifier) (type_u32) - (assign_operator) (uzumaki_keyword)) - (comment) - (comment) - (comment) + (docstring) + (docstring) + (docstring) (if_statement (uzumaki_keyword) (block @@ -49,8 +47,8 @@ fn main() { (function_call_expression (identifier) (identifier))))))) - (comment) - (comment) + (docstring) + (docstring) (expression_statement (function_call_expression (identifier) @@ -60,13 +58,13 @@ fn main() { === fn main() { exists { - /// Here computation splits into 2^32 subpaths, - /// with `x` holding distinct value on each + // Here computation splits into 2^32 subpaths, + // with `x` holding distinct value on each let x: u32 = @; - /// Here each computation splits further, independently - /// checking both required properties for every possible - /// value of `x` on separate execution paths. + // Here each computation splits further, independently + // checking both required properties for every possible + // value of `x` on separate execution paths. if @ { check_foo(x); } else { check_bar(x); } } @@ -78,7 +76,6 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -89,7 +86,6 @@ fn main() { (variable_definition_statement (identifier) (type_u32) - (assign_operator) (uzumaki_keyword)) (comment) (comment) @@ -106,8 +102,8 @@ fn main() { (function_call_expression (identifier) (identifier))))))) - (comment) - (comment) + (docstring) + (docstring) (expression_statement (function_call_expression (identifier) @@ -117,28 +113,27 @@ fn main() { === fn main() { forall { - /// Here computation splits into 2^32 subpaths, - /// with `x` holding distinct value on each + // Here computation splits into 2^32 subpaths, + // with `x` holding distinct value on each let x: u32 = @; - /// Here we filter only execution paths, where given - /// precondition is met, indicated by successfull termination - /// of function. + // Here we filter only execution paths, where given + // precondition is met, indicated by successfull termination + // of function. assume { check_foo(x); } - /// Here we check given implication of precondition above + // Here we check given implication of precondition above check_bar(x); } - /// This point is reached iff every value of x that successfully - /// pass through `check_foo` also successfully pass through - /// `check_bar`. + // This point is reached iff every value of x that successfully + // pass through `check_foo` also successfully pass through + // `check_bar`. print("Success!"); } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -149,7 +144,6 @@ fn main() { (variable_definition_statement (identifier) (type_u32) - (assign_operator) (uzumaki_keyword)) (comment) (comment) @@ -183,46 +177,41 @@ fn main() { let user_input: bool = @; if user_input { - /// Handle true case + // Handle true case } else { - /// Handle false case + // Handle false case } let mut choice: i32 = @; choice = choice % 3; if (choice == 0) { - /// Handle case 0 + // Handle case 0 } else if (choice == 1) { - /// Handle case 1 + // Handle case 1 } else { - /// Handle case 2 + // Handle case 2 } } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (uzumaki_keyword)) (assert_statement (parenthesized_expression (binary_expression (binary_expression (identifier) - (add_operator) (number_literal)) - (greater_operator) (identifier)))) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (uzumaki_keyword)) (if_statement (identifier) @@ -234,27 +223,22 @@ fn main() { (mut_keyword) (identifier) (type_i32) - (assign_operator) (uzumaki_keyword)) (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (mod_operator) (number_literal))) (if_statement (parenthesized_expression (binary_expression (identifier) - (equals_operator) (number_literal))) (block (comment)) (parenthesized_expression (binary_expression (identifier) - (equals_operator) (number_literal))) (block (comment)) diff --git a/test/corpus/spec/lexical_structure.txt b/test/corpus/spec/lexical_structure.txt index 18f11d2..3742307 100644 --- a/test/corpus/spec/lexical_structure.txt +++ b/test/corpus/spec/lexical_structure.txt @@ -8,19 +8,16 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_u32) - (assign_operator) (number_literal)) (variable_definition_statement (identifier) (type_i64) - (assign_operator) (number_literal))))) === @@ -28,11 +25,11 @@ fn main() { === fn main() { let a: spec::AuctionSpec = spec::AuctionSpec::new(); + let b: spec::AuctionSpec = spec.field.method(); } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -40,16 +37,23 @@ fn main() { (identifier) (type_qualified_name (identifier) - (expand_operator) (identifier)) - (assign_operator) + (function_call_expression + (type_member_access_expression + (type_member_access_expression + (identifier) + (identifier)) + (identifier)))) + (variable_definition_statement + (identifier) + (type_qualified_name + (identifier) + (identifier)) (function_call_expression (member_access_expression - (member_access_expression + (qualified_name (identifier) - (expand_operator) (identifier)) - (expand_operator) (identifier))))))) === @@ -75,44 +79,35 @@ fn main() { (identifier) (type_u32)) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (identifier) (block (assign_statement (member_access_expression (identifier) - (attribute_access_operator) (identifier)) - (assign_operator) (identifier))))) (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (identifier) - (assign_operator) (function_call_expression - (member_access_expression + (type_member_access_expression (identifier) - (expand_operator) (identifier)) (number_literal))) (variable_definition_statement (identifier) (type_u32) - (assign_operator) (member_access_expression (identifier) - (attribute_access_operator) (identifier)))))) === @@ -126,24 +121,20 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_bool) - (assign_operator) (bool_literal)) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (bool_literal)) (variable_definition_statement (identifier) (identifier) - (assign_operator) (unit_literal))))) === @@ -155,7 +146,6 @@ fn add(a: u32, b: u32) -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -164,20 +154,18 @@ fn add(a: u32, b: u32) -> u32 { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier)))))) === 4.10 Braces === fn curly_braces_example() { - /// code block + // code block } fn block_braces_example(a: u32, b: u32) -> u32 { @@ -190,23 +178,21 @@ fn square_braces_example() { let c: u32 = a[0]; } -fn triangular_braces_example(a: T) { - /// code block +fn triangular_braces_example T' (a: T) { + // code block } -fn foo(a: T) { - /// code block +fn foo T' (a: T) { + // code block } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (comment))) (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -215,30 +201,25 @@ fn foo(a: T) { (argument_declaration (identifier) (type_u32))) - (rightarrow_operator) (type_u32) (block (return_statement (binary_expression (identifier) - (add_operator) (identifier))))) (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_unit) - (assign_operator) (unit_literal)) (variable_definition_statement (identifier) (type_array (type_u32) (number_literal)) - (assign_operator) (array_literal (number_literal) (number_literal) @@ -246,12 +227,10 @@ fn foo(a: T) { (variable_definition_statement (identifier) (type_u32) - (assign_operator) (array_index_access_expression (identifier) (number_literal))))) (function_definition - (function_keyword) (identifier) (type_argument_list_definition (identifier)) @@ -262,7 +241,6 @@ fn foo(a: T) { (block (comment))) (function_definition - (function_keyword) (identifier) (type_argument_list_definition (identifier)) diff --git a/test/corpus/spec/statements.txt b/test/corpus/spec/statements.txt index afeb6b1..c64fd46 100644 --- a/test/corpus/spec/statements.txt +++ b/test/corpus/spec/statements.txt @@ -9,21 +9,17 @@ fn example() -> u32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_u32) (block (variable_definition_statement (identifier) (type_u32) - (assign_operator) (number_literal)) (variable_definition_statement (identifier) (type_u32) - (assign_operator) (identifier)) (return_statement (identifier))))) @@ -31,39 +27,36 @@ fn example() -> u32 { 9.1.2 Examples (Block) === fn foo() { - /// This is the function body block + // This is the function body block } fn bar() { let flag: bool = true; if flag { - /// This is the 'if' block + // This is the 'if' block } else { - /// This is the 'else' block + // This is the 'else' block } let i: i32 = 10; loop i { - /// This is the loop block + // This is the loop block } } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (comment))) (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_bool) - (assign_operator) (bool_literal)) (if_statement (identifier) @@ -74,7 +67,6 @@ fn bar() { (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (identifier) @@ -91,16 +83,13 @@ fn foo() -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_i32) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (return_statement (identifier))))) @@ -114,22 +103,20 @@ fn foo(i: i32) -> () forall { assert i > 0; } - /// This is equivalent to: + // This is equivalent to: if !(i > 0) { - /// Terminate the function or handle the case accordingly + // Terminate the function or handle the case accordingly return (); } } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (type_i32))) - (rightarrow_operator) (type_unit) (forall_block (block @@ -138,7 +125,6 @@ fn foo(i: i32) -> () forall { (assert_statement (binary_expression (identifier) - (greater_operator) (number_literal))))) (comment) (if_statement @@ -147,7 +133,6 @@ fn foo(i: i32) -> () forall { (parenthesized_expression (binary_expression (identifier) - (greater_operator) (number_literal)))) (block (comment) @@ -158,24 +143,24 @@ fn foo(i: i32) -> () forall { === fn loop_example() { loop 10 { - /// This block will be executed 10 times + // This block will be executed 10 times } loop 0 { - /// This block will not be executed + // This block will not be executed } let i: i32 = 10; loop i { - /// This block will be executed 10 times - /// Modifying 'i' inside the loop is not allowed + // This block will be executed 10 times + // Modifying 'i' inside the loop is not allowed } } fn infinite_loop_example() forall { assume { loop () { - /// Infinite loop body + // Infinite loop body break; } } @@ -183,7 +168,6 @@ fn infinite_loop_example() forall { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -198,7 +182,6 @@ fn infinite_loop_example() forall { (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (identifier) @@ -206,7 +189,6 @@ fn infinite_loop_example() forall { (comment) (comment))))) (function_definition - (function_keyword) (identifier) (argument_list) (forall_block @@ -225,22 +207,20 @@ fn infinite_loop_example() forall { fn foo() { let flag: bool = true; if flag { - /// This block will be executed + // This block will be executed } else { - /// This block will not be executed + // This block will not be executed } } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_bool) - (assign_operator) (bool_literal)) (if_statement (identifier) @@ -255,24 +235,21 @@ fn foo() { fn foo() { let x: i32 = 10; let y: i32 = @; - /// 'y' can be any possible i32 value + // 'y' can be any possible i32 value } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (uzumaki_keyword)) (comment)))) @@ -284,7 +261,6 @@ type Address = u32; (source_file (type_definition_statement (identifier) - (assign_operator) (type_u32))) === @@ -297,20 +273,17 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_u32) - (assign_operator) (number_literal)) (assert_statement (parenthesized_expression (binary_expression (identifier) - (less_equal_operator) (number_literal))))))) === @@ -321,5 +294,4 @@ type Address = u32; (source_file (type_definition_statement (identifier) - (assign_operator) (type_u32))) diff --git a/test/corpus/spec/types.txt b/test/corpus/spec/types.txt index 5f87d16..39c693d 100644 --- a/test/corpus/spec/types.txt +++ b/test/corpus/spec/types.txt @@ -7,14 +7,12 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_unit) - (assign_operator) (unit_literal))))) === @@ -22,28 +20,24 @@ fn foo() { === fn foo() { let a: bool = true; - let b: bool = (1 == 2); /// false + let b: bool = (1 == 2); // false } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_bool) - (assign_operator) (bool_literal)) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (parenthesized_expression (binary_expression (number_literal) - (equals_operator) (number_literal)))) (comment)))) @@ -51,68 +45,55 @@ fn foo() { 6.2.2.2 Examples (Integers) === fn foo() { - let a: i8 = (2 ** 7) - 1; /// 127 - let b: i16 = (2 ** 15) - 1; /// 32,767 - let c: i32 = (2 ** 31) - 1; /// 2,147,483,647 - let d: i64 = (2 ** 63) - 1; /// 9,223,372,036,854,775,807 + let a: i8 = (2 ** 7) - 1; // 127 + let b: i16 = (2 ** 15) - 1; // 32,767 + let c: i32 = (2 ** 31) - 1; // 2,147,483,647 + let d: i64 = (2 ** 63) - 1; // 9,223,372,036,854,775,807 } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i8) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment) (variable_definition_statement (identifier) (type_i16) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment) (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment) (variable_definition_statement (identifier) (type_i64) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment)))) @@ -120,68 +101,55 @@ fn foo() { 6.2.3.2 Examples (Unsigned Integers) === fn foo() { - let a: u8 = (2 ** 8) - 1; /// 255 - let b: u16 = (2 ** 16) - 1; /// 65,535 - let c: u32 = (2 ** 32) - 1; /// 4,294,967,295 - let d: u64 = (2 ** 64) - 1; /// 18,446,744,073,709,551,615 + let a: u8 = (2 ** 8) - 1; // 255 + let b: u16 = (2 ** 16) - 1; // 65,535 + let c: u32 = (2 ** 32) - 1; // 4,294,967,295 + let d: u64 = (2 ** 64) - 1; // 18,446,744,073,709,551,615 } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_u8) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment) (variable_definition_statement (identifier) (type_u16) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment) (variable_definition_statement (identifier) (type_u32) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment) (variable_definition_statement (identifier) (type_u64) - (assign_operator) (binary_expression (parenthesized_expression (binary_expression (number_literal) - (pow_operator) (number_literal))) - (sub_operator) (number_literal))) (comment)))) === @@ -193,7 +161,6 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -202,7 +169,6 @@ fn foo() { (type_array (type_i32) (number_literal)) - (assign_operator) (array_literal (number_literal) (number_literal) diff --git a/test/corpus/spec/variables.txt b/test/corpus/spec/variables.txt index 2f4840f..24bc3d6 100644 --- a/test/corpus/spec/variables.txt +++ b/test/corpus/spec/variables.txt @@ -8,19 +8,16 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (variable_definition_statement (identifier) (type_bool) - (assign_operator) (bool_literal))))) === @@ -33,7 +30,6 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -42,7 +38,6 @@ fn foo() { (type_array (type_i32) (number_literal)) - (assign_operator) (array_literal (number_literal) (number_literal) @@ -52,7 +47,6 @@ fn foo() { (type_array (type_bool) (number_literal)) - (assign_operator) (array_literal (bool_literal) (bool_literal)))))) @@ -67,21 +61,18 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_u32) - (assign_operator) (uzumaki_keyword)) (variable_definition_statement (identifier) (type_array (type_i32) (identifier)) - (assign_operator) (uzumaki_keyword))))) @@ -107,52 +98,42 @@ fn foo() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (variable_definition_statement (mut_keyword) (identifier) (type_bool) - (assign_operator) (bool_literal)) (variable_definition_statement (mut_keyword) (identifier) (type_i32) - (assign_operator) (number_literal)) (variable_definition_statement (mut_keyword) (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (identifier) (block (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (number_literal))) (assign_statement (identifier) - (assign_operator) (binary_expression (binary_expression (identifier) - (mod_operator) (number_literal)) - (equals_operator) (number_literal))) (if_statement (identifier) @@ -160,17 +141,13 @@ fn foo() { (variable_definition_statement (identifier) (type_i32) - (assign_operator) (binary_expression (identifier) - (mul_operator) (number_literal))) (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (identifier)))))))))) === @@ -186,7 +163,6 @@ fn inverse_bool_array(mut bool_arr: [bool; 10]) { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -200,7 +176,6 @@ fn inverse_bool_array(mut bool_arr: [bool; 10]) { (mut_keyword) (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (number_literal) @@ -209,7 +184,6 @@ fn inverse_bool_array(mut bool_arr: [bool; 10]) { (array_index_access_expression (identifier) (identifier)) - (assign_operator) (prefix_unary_expression (unary_not) (array_index_access_expression @@ -217,8 +191,6 @@ fn inverse_bool_array(mut bool_arr: [bool; 10]) { (identifier)))) (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (number_literal)))))))) diff --git a/test/corpus/statement/assert.txt b/test/corpus/statement/assert.txt index c00b8b9..c5747e5 100644 --- a/test/corpus/statement/assert.txt +++ b/test/corpus/statement/assert.txt @@ -9,20 +9,17 @@ fn valid_Address(a: Address) -> Address { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration (identifier) (identifier))) - (rightarrow_operator) (identifier) (block (assert_statement (parenthesized_expression (binary_expression (identifier) - (less_operator) (number_literal)))) (return_statement (identifier))))) @@ -38,14 +35,11 @@ fn proof() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (assert_statement (binary_expression (identifier) - (less_operator) (number_literal)))))) diff --git a/test/corpus/statement/if_else.txt b/test/corpus/statement/if_else.txt index 40d9ad7..7f95549 100644 --- a/test/corpus/statement/if_else.txt +++ b/test/corpus/statement/if_else.txt @@ -15,19 +15,16 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (if_statement (binary_expression (identifier) - (less_operator) (number_literal)) (block (expression_statement @@ -55,19 +52,16 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (if_statement (binary_expression (identifier) - (less_operator) (number_literal)) (block (expression_statement diff --git a/test/corpus/statement/loop.txt b/test/corpus/statement/loop.txt index 214c0be..d674f23 100644 --- a/test/corpus/statement/loop.txt +++ b/test/corpus/statement/loop.txt @@ -11,7 +11,6 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -36,7 +35,6 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -63,7 +61,6 @@ fn main() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -71,17 +68,14 @@ fn main() { (mut_keyword) (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (identifier) (block (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (number_literal))) (expression_statement (function_call_expression @@ -105,7 +99,6 @@ fn sum_all(xs: [i32; 10]) -> i32 { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list (argument_declaration @@ -113,38 +106,31 @@ fn sum_all(xs: [i32; 10]) -> i32 { (type_array (type_i32) (number_literal)))) - (rightarrow_operator) (type_i32) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (number_literal)) (variable_definition_statement (mut_keyword) (identifier) (type_i32) - (assign_operator) (number_literal)) (loop_statement (number_literal) (block (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (array_index_access_expression (identifier) (identifier)))) (assign_statement (identifier) - (assign_operator) (binary_expression (identifier) - (add_operator) (number_literal))))) (return_statement (identifier))))) diff --git a/test/corpus/statement/variable_declaration.txt b/test/corpus/statement/variable_declaration.txt index 8fda74f..2a091fe 100644 --- a/test/corpus/statement/variable_declaration.txt +++ b/test/corpus/statement/variable_declaration.txt @@ -9,16 +9,13 @@ fn proof() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (variable_definition_statement (identifier) (identifier) - (assign_operator) (number_literal))))) === @@ -32,14 +29,11 @@ fn proof() -> () { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) - (rightarrow_operator) (type_unit) (block (variable_definition_statement (identifier) (type_i32) - (assign_operator) (uzumaki_keyword))))) diff --git a/test/corpus/statement/variable_definition.txt b/test/corpus/statement/variable_definition.txt index ccf42d3..1dc841f 100644 --- a/test/corpus/statement/variable_definition.txt +++ b/test/corpus/statement/variable_definition.txt @@ -9,7 +9,6 @@ fn test() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -22,13 +21,12 @@ fn test() { Multi-dimensional arrays === fn test() { - let 3d_array : [[[u32]]]; + let array_3d : [[[u32]]]; } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -43,12 +41,11 @@ fn test() { Array of non-primitive types === fn test() { - let x : [Optional; 4]; + let x : [Optional someNamespace::String'; 4]; } --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -60,7 +57,6 @@ fn test() { (type_argument_list (type_qualified_name (identifier) - (expand_operator) (identifier)))) (number_literal)))))) === @@ -72,7 +68,6 @@ fn test() { --- (source_file (function_definition - (function_keyword) (identifier) (argument_list) (block @@ -81,7 +76,6 @@ fn test() { (type_array (type_i32) (number_literal)) - (assign_operator) (array_literal (number_literal) (identifier)